XebiConFr 15 - Le challenge des microservices

1 076 vues

Publié le

L’approche microservices devient de plus en plus présente dans nos conceptions d’architectures.

Souvent critiqué pour sa ressemblance avec l’approche Service Oriented Architecture (SOA), les microservices rencontrent les mêmes problématiques que son ainé (catalogue de services, communication, versionning, etc).

Basé sur un retour d’expérience, je vous propose de parcourir ensemble les challenges à remplir pour mettre en place avec succès des architectures microservices. Nous nous interrogerons également pourquoi et comment les microservices ont une chance de fonctionner là où la SOA a échoué.

Par Nicolas Jozwiak, Directeur de projets, Xebia

La vidéo de la conférence est à retrouver sur : http://www.xebicon.fr/programme.html

Publié dans : Logiciels
  • Soyez le premier à commenter

XebiConFr 15 - Le challenge des microservices

  1. 1. Les challenges des microservices #XebiConFr @njozwiak
  2. 2. #XebiConFr Speaker @njozwiak 2
  3. 3. #XebiConFr Les challenges des microservices 3
  4. 4. #XebiConFr Agenda • Définition des microservices • Pourquoi les microservices ? • Les challenges organisationnels et techniques • Comment mettre en place les microservices ? 4
  5. 5. #XebiConFr Définition 5
  6. 6. #XebiConFr In computing, microservices is a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs.These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building. Définition Wikipédia 6
  7. 7. #XebiConFr service-oriented architecture composed of loosely coupled elements that have bounded contexts Définition Adrian Cockcroft 7
  8. 8. #XebiConFr Pourquoi les microservices ? 8
  9. 9. #XebiConFr • Besoins IT augmentent • Clients exigeants • Plus rapide que la concurrence Pourquoi les microservices ? 9
  10. 10. #XebiConFr • Application monolithique complexe • Maturité des technologies • Langages et bases de données 10 Pourquoi les microservices ?
  11. 11. #XebiConFr • 57 millions de membres • 1 milliards d’évènements / jour • Cycles de déploiements longs • Besoin d’évoluer rapidement 11 Pourquoi les microservices ?
  12. 12. #XebiConFr Les challenges organisationnels 12
  13. 13. #XebiConFr Loi de Conway « Organizations which design systems are constrained to produce systems which are copies of the communication structures of these organizations. » 13
  14. 14. #XebiConFr Communication 14
  15. 15. #XebiConFr Compétences 15
  16. 16. #XebiConFr Équipes Dev Team Product Manager Ops Team QA Team 16
  17. 17. #XebiConFr Developer Product Manager Équipes 17
  18. 18. #XebiConFr Culture 18
  19. 19. #XebiConFr Agilité 19
  20. 20. #XebiConFr Les challenges techniques 20
  21. 21. #XebiConFr Les challenges techniques Microservices Automatiser Monitorer 12 facteurs app Tolérer et isoler les pannes Découverte de service 21
  22. 22. #XebiConFr22
  23. 23. #XebiConFr Les challenges techniques Microservices Automatiser Monitorer 12 facteurs app Tolérer et isoler les pannes Découverte de service 23
  24. 24. #XebiConFr Automatiser 1 mois 3 mois 12 mois 24
  25. 25. #XebiConFr Automatiser 25
  26. 26. #XebiConFr Automatiser 26
  27. 27. #XebiConFr Les challenges techniques Microservices Automatiser Monitorer 12 facteurs app Tolérer et isoler les pannes Découverte de service 27
  28. 28. #XebiConFr Tolérer et isoler les pannes App App client App commande App facture Requests App client App commande App facture X28
  29. 29. #XebiConFr Tolérer et isoler les pannes Client Commande Facture App Requests Circuit breaker 29
  30. 30. #XebiConFr Tolérer et isoler les pannes 30
  31. 31. #XebiConFr Tolérer et isoler les pannes 31
  32. 32. #XebiConFr Les challenges techniques Microservices Automatiser Monitorer 12 facteurs app Tolérer et isoler les pannes Découverte de service 32
  33. 33. #XebiConFr Découverte de services Client Commande Facture App Quels hosts ? 33
  34. 34. #XebiConFr Découverte de services Catalogue de services Client Commande Facture Eureka 34
  35. 35. #XebiConFr Découverte de services 35 Mesos master Mesos slave / Marathon Mesos slave / Marathon commande client commande facture client Http post
  36. 36. #XebiConFr Découverte de services { "id": "provisioning", "instances": 1, "cpus": 2.0, "mem": 512, "ports":[9000], "container": { "type": "DOCKER", "docker": { "image": "project/web 0crec10a90724f791caaf95cbc62ea61abbd6376", "network": "BRIDGE", "portMappings": [ { "containerPort": 9000, "servicePort": 9000, "hostPort": 0, "protocol": "tcp" } ] } } } 36
  37. 37. #XebiConFr Découverte de services 37
  38. 38. #XebiConFr Les challenges techniques Microservices Automatiser Monitorer 12 facteurs app Tolérer et isoler les pannes Découverte de service 38
  39. 39. #XebiConFr Monitoring • Trafic • Aggréger les logs • Id unique 39
  40. 40. #XebiConFr Monitoring 40
  41. 41. #XebiConFr Monitoring 41
  42. 42. #XebiConFr Comment mettre en place les microservices ? 42
  43. 43. #XebiConFr Stratégies 43 REST API
  44. 44. #XebiConFr Stratégies 44
  45. 45. #XebiConFr Stratégies Identifier un pilote Première release Deuxième release N release 45
  46. 46. #XebiConFr Première release 46
  47. 47. #XebiConFr Première release App Requests App client App commande App facture 47
  48. 48. #XebiConFr Première release Client Commande Facture App Requests 48
  49. 49. #XebiConFr Première release Contrats 49
  50. 50. #XebiConFr Première release 50
  51. 51. #XebiConFr Datacenter Des mois Des Virtuel et Container Des Première release 51
  52. 52. #XebiConFr Première release 52
  53. 53. #XebiConFr Première release 53
  54. 54. #XebiConFr En résumé • Intégration continue • Favoriser les tests par contrats • Contrôler les dépendances • Livrer en production • Monitorer et analyser 54
  55. 55. #XebiConFr Deuxième release Client Commande Facture App Requests 55
  56. 56. #XebiConFr Deuxième release Client Commande Facture App Requests Commande Commande Client 56
  57. 57. #XebiConFr Deuxième release « No direct database access is allowed from outside the service, and there’s no data sharing among the services » Werner Vogels, CTO et Vice président de amazon.com 57
  58. 58. #XebiConFr Deuxième release Client Commande Facture App Requests 58
  59. 59. #XebiConFr Deuxième release 59
  60. 60. #XebiConFr En résumé • Savoir quand créer un nouveau service • Définir le degré d’isolation • Réduire la barrière d’entrée • Construire ce que vous pouvez supporter 60
  61. 61. #XebiConFr N release Commande Facture App Client Client Commande Facture 61
  62. 62. #XebiConFr Tester l’infrastructure 62
  63. 63. #XebiConFr Gestion des mises à jour 63
  64. 64. #XebiConFr En résumé • Scaler votre architecture • Tester votre infrastructure • Stratégie de mises à jour 64
  65. 65. #XebiConFr Conclusion 65
  66. 66. #XebiConFr Questions ? 66
  67. 67. #XebiConFr Références • http://fr.slideshare.net/InfoQ/migrating-to-microservices • http://fr.slideshare.net/InfoQ/scalable-microservices-at-netflix-challenges- and-tools-of-the-trade • http://fr.slideshare.net/ThoughtWorks/delivering-with-microservices-how-to- iterate-towards-sophistication 67

×