Microservices IRL - Devoxx-fr 2016

909 vues

Publié le

Microservices IRL: ça marche chez un client, on vous dit comment!
Par Stéphane Lagraulet et Olivier Revial, Ippon Bordeaux

Publié dans : Internet
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
909
Sur SlideShare
0
Issues des intégrations
0
Intégrations
34
Actions
Partages
0
Téléchargements
14
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Microservices IRL - Devoxx-fr 2016

  1. 1. #DevoxxFR 1 Stéphane Lagraulet Olivier Revial Ippon Bordeaux Microservices IRL Ça marche chez un client, on vous dit comment!
  2. 2. #DevoxxFR Vous allez voir... ● Notre contexte client ● Pourquoi les micro services pour notre client ? ● Les challenges à relever ● Nos premiers choix techniques ● Notre architecture actuelle ● Notre roadmap 2
  3. 3. #DevoxxFR Qui sommes nous? 3 Stéphane Lagraulet ● Architecte SI ● Chez Ippon depuis 2013 ● Code en Java depuis 2000 ● @stephlag Olivier Revial ● Développeur ● Chez Ippon depuis 2013 ● Code en Java depuis le berceau ● @pommedouze
  4. 4. #DevoxxFR Ippon Technologies 4 ● 220 ingénieurs en France, aux USA et bientôt en Australie ○ Paris, Nantes, Bordeaux ○ Richmond (Virginie), Washington (DC) ● Expertise ○ Digital, Big Data, Cloud ○ Java, Agilité, DevOps ● Projets open source ○ Tatami ○ JHipster (3!) ● @ippontech, @ipponusa
  5. 5. #DevoxxFR Le projet 5 ● Component Team en charge du moteur de recherche d’un site de e-commerce ● Architecture de microservices pour alimenter, interroger et superviser les composants du moteur ● Projet multi-plateformes et multilingue (multi-tenants) ● Démarrage début 2015, déploiement s’étendant maintenant à d’autres équipes
  6. 6. #DevoxxFR Contexte technologique historique 6 Historiquement environnement full Microsoft: .Net SQL Server Windows Server
  7. 7. #DevoxxFR Contexte technologique actuel 7
  8. 8. #DevoxxFR Pourquoi les microservices? 8
  9. 9. #DevoxxFR Convergence de mouvements 9 ● Agilité ● DevOps ● Complexité du SI ● Architecture Web ● Cloud ● Conteneurs ● Provisionning
  10. 10. #DevoxxFR Une définition “Les microservices sont définis comme une architecture de services faiblement couplés avec des contextes fonctionnels définis.” Adrian Cockroft 10
  11. 11. #DevoxxFR Challenges à relever 11 ● Organisation ● Découverte de services ● Surveillance ● Programmation distribuée ● Gestion des pannes ● Stratégie de test ● Versionning, compatibilité ● Déploiement en continu
  12. 12. #DevoxxFR Des anti-patterns ● Nécessité ? ● Monolithe distribué ● Transactions distribuées ● Tables partagées - CQRS ● Découverte globale ● DRY 12
  13. 13. #DevoxxFR Loi de conway “ Toute organisation qui construit un système... produira inévitablement une architecture dont la structure est une copie de la structure de communication de cette organisation.“ Melvin Conway - 1968 13
  14. 14. #DevoxxFR Le défi organisationnel 14
  15. 15. #DevoxxFR Une première architecture de microservices 15
  16. 16. #DevoxxFR Notre première boite à outils 16 ● Découverte de services ● Surveillance ● Programmation distribuée
  17. 17. #DevoxxFR Notre cas d’utilisation 17
  18. 18. #DevoxxFR Discovery avec Zookeeper ● Réserver des ressources dédiées ● Isoler les instances pour les microservices ● Bien utiliser le mécanisme de Curator (ServiceInstance) ● Marquer les instances “Down” ● Système CP ● Doit être surveillé ● Bien nettoyer les logs (zkCleanup) 18
  19. 19. #DevoxxFR Problème : Multi tenancy (1) Tenant-specific : /discovery/tenants/ /be-fr/ /kpi-service/... /loader-service/... /be-nl/ /kpi-service/... /loader-service/… Multi-tenant : /discovery/notenant/monitoring-agent/... 19
  20. 20. #DevoxxFR Problème : Multi tenancy (2) 20
  21. 21. #DevoxxFR Tolérance aux pannes avec le circuit breaker 21
  22. 22. #DevoxxFR Tolérance aux pannes avec le circuit breaker 22 Fermé Ouvert Semi ouvert Échecs rapides Tentative de fermeture Déclenchement ouverture Échec ré-ouverture Fermeture
  23. 23. #DevoxxFR Tester avec Wiremock / Saboteur 23
  24. 24. #DevoxxFR Continuous Delivery (1) 24 Releases Config ServeursSources Versionning Releases
  25. 25. #DevoxxFR Aller plus loin avec Spring Cloud et les librairies Netflix 25
  26. 26. #DevoxxFR Enrichir notre boite à outils 26 ● Découverte et exposition de services ● Surveillance dynamique des services ● Routage des requêtes
  27. 27. #DevoxxFR Spring Cloud 27
  28. 28. #DevoxxFR Evolution du cas d’utilisation 28
  29. 29. #DevoxxFR Multi tenancy avec spring cloud 29 Tenant-specific (specified in zk connect-string): /fr/services/discovery/ /services-gateway/... /kpi-service/... /loader-service/... /be/services/discovery/ /services-gateway/... /kpi-service/... /loader-service/…
  30. 30. #DevoxxFR Multi tenancy avec spring cloud 30
  31. 31. #DevoxxFR Live Demo… … no video backup 31
  32. 32. #DevoxxFR Notre roadmap Déploiement, conteneurs, provisionning, communication 3 2
  33. 33. #DevoxxFR Continuous Delivery (2) 33 Releases Config ServeursSources Versionning Releases
  34. 34. #DevoxxFR Spinnaker 34
  35. 35. #DevoxxFR Déploiement Docker Swarm / Docker Compose ? Mesos / Marathon ? Kubernetes / Rancher ? 35
  36. 36. #DevoxxFR Discovery Keep Zookeeper? Eureka ? Consul ? Etcd / CoreOs ? 36
  37. 37. #DevoxxFR Communication Plain Json ? Protobuf ? Avro ? Thrift ? 37
  38. 38. #DevoxxFR Merci ! Des questions ? github.com/orevial/devoxx-microservices blog.ippon.fr 38

×