Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Monolithe vs microservices @fbeaufume

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

• 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

Slide 6

Slide 6 text

• 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

Slide 7

Slide 7 text

Spring Kubernetes & Istio Boot Cloud Netflix Solutions @fbeaufume

Slide 8

Slide 8 text

Spring Cloud @fbeaufume

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

https://github.com/fbeaufume/microshop

Slide 11

Slide 11 text

pom.xml main application.yml Config server @fbeaufume

Slide 12

Slide 12 text

@fbeaufume

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Service registry pom.xml main @fbeaufume

Slide 15

Slide 15 text

http://localhost:8761/

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Gateway pom.xml main application.yml @fbeaufume

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

@fbeaufume

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Spring Boot Admin http://localhost:8090/

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Merci @fbeaufume