Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservices avec Spring Cloud

Microservices avec Spring Cloud

Introduction aux microservices et exemple de mise en oeuvre avec Spring Cloud.

Florian Beaufumé

September 01, 2019
Tweet

More Decks by Florian Beaufumé

Other Decks in Programming

Transcript

  1. Microservices avec Spring Cloud
    Florian Beaufumé
    @fbeaufume
    09/2019
    v1.1

    View Slide

  2. • Architecte logiciel et expert Java
    • Freelance
    • Brown bag lunch
    • @fbeaufume
    Florian Beaufumé

    View Slide

  3. Monolithe vs microservices
    @fbeaufume

    View Slide

  4. Un modèle d'architecture basé sur l'utilisation de services
    indépendants, limités, orientés métier et communicants
    Microservices
    @fbeaufume

    View Slide

  5. • Cycles de développement indépendants
    • Builds et livraisons simplifiés et moins risqués
    • Isolation runtime
    • Configuration fine
    • Scaling horizontal fin
    • Robustesse
    • Migrations techniques
    • Programmation polyglotte
    Bénéfices
    @fbeaufume

    View Slide

  6. • Identification et découper les services et données
    • Communications entre services
    • Cohérence des données
    • Event driven
    • Automatisation
    • Besoins de monitoring
    Difficultés
    @fbeaufume

    View Slide

  7. Spring Kubernetes & Istio
    Boot Cloud Netflix
    Solutions
    @fbeaufume

    View Slide

  8. Spring Cloud
    @fbeaufume

    View Slide

  9. Client
    applications
    Gateway
    Order Stock
    Mongo
    H2
    Service
    registry
    Config server
    Git
    Spring Boot Spring Boot
    Spring Boot
    Spring Cloud Gateway
    Spring Boot
    Netflix Eureka
    Spring Boot
    Spring Cloud Config
    Lookup
    Register
    Get config
    8081 8082
    8080
    8888
    8761
    Architecture
    Spring Cloud Netflix
    @fbeaufume

    View Slide

  10. https://github.com/fbeaufume/microshop

    View Slide

  11. pom.xml
    main
    application.yml
    Config server
    @fbeaufume

    View Slide

  12. @fbeaufume

    View Slide

  13. http://localhost:8888/order/default
    @fbeaufume

    View Slide

  14. Service registry
    pom.xml
    main
    @fbeaufume

    View Slide

  15. http://localhost:8761/

    View Slide

  16. http://localhost:8761/eureka/apps/order
    @fbeaufume

    View Slide

  17. Microservice métier
    pom.xml
    boostrap.xml
    @fbeaufume

    View Slide

  18. Load balancer et circuit breaker
    @Configuration
    RestConfiguration
    @Service
    OrderService
    2
    3
    4
    1

    View Slide

  19. Gateway
    pom.xml
    main
    application.yml
    @fbeaufume

    View Slide

  20. Routage
    • Par cookie
    • Par header
    • Par host
    • Par date
    • Etc.
    @fbeaufume

    View Slide

  21. Filtrage
    Served GET 'http://localhost:8080/api/orders' as 200 in 16 msec
    2
    3
    4
    5
    1

    View Slide

  22. Traces distribuées
    Gateway
    Order
    Stock
    pom.xml
    @fbeaufume

    View Slide

  23. http://localhost:9411/zipkin/
    Zipkin
    application.yml
    @fbeaufume

    View Slide

  24. @fbeaufume

    View Slide

  25. @Component @Aspect ZipkinTracingAspect
    Interception des méthodes
    1
    2
    3
    5
    4

    View Slide

  26. Spring Boot Admin
    http://localhost:8090/

    View Slide

  27. View Slide

  28. Merci
    @fbeaufume

    View Slide