Les challenges des
microservices
#XebiConFr
@njozwiak
#XebiConFr
Speaker
@njozwiak
2
#XebiConFr
Les challenges des microservices
3
#XebiConFr
Agenda
• Définition des microservices
• Pourquoi les microservices ?
• Les challenges organisationnels et techni...
#XebiConFr
Définition
5
#XebiConFr
In computing, microservices is a software architecture style in
which complex applications are composed of smal...
#XebiConFr
service-oriented architecture composed of loosely coupled
elements that have bounded contexts
Définition Adrian ...
#XebiConFr
Pourquoi les
microservices ?
8
#XebiConFr
• Besoins IT augmentent
• Clients exigeants
• Plus rapide que la
concurrence
Pourquoi les microservices ?
9
#XebiConFr
• Application monolithique complexe
• Maturité des technologies
• Langages et bases de données
10
Pourquoi les ...
#XebiConFr
• 57 millions de membres
• 1 milliards d’évènements / jour
• Cycles de déploiements longs
• Besoin d’évoluer ra...
#XebiConFr
Les challenges
organisationnels
12
#XebiConFr
Loi de Conway
« Organizations which design systems are
constrained to produce systems which are
copies of the c...
#XebiConFr
Communication
14
#XebiConFr
Compétences
15
#XebiConFr
Équipes
Dev Team
Product Manager
Ops Team
QA Team
16
#XebiConFr
Developer
Product Manager
Équipes
17
#XebiConFr
Culture
18
#XebiConFr
Agilité
19
#XebiConFr
Les challenges
techniques
20
#XebiConFr
Les challenges techniques
Microservices
Automatiser
Monitorer
12 facteurs app
Tolérer et isoler
les pannes
Déco...
#XebiConFr22
#XebiConFr
Les challenges techniques
Microservices
Automatiser
Monitorer
12 facteurs app
Tolérer et isoler
les pannes
Déco...
#XebiConFr
Automatiser
1 mois 3 mois 12 mois
24
#XebiConFr
Automatiser
25
#XebiConFr
Automatiser
26
#XebiConFr
Les challenges techniques
Microservices
Automatiser
Monitorer
12 facteurs app
Tolérer et isoler
les pannes
Déco...
#XebiConFr
Tolérer et isoler les pannes
App
App client App commande App facture
Requests
App client App commande App factu...
#XebiConFr
Tolérer et isoler les pannes
Client Commande Facture
App
Requests
Circuit
breaker
29
#XebiConFr
Tolérer et isoler les pannes
30
#XebiConFr
Tolérer et isoler les pannes
31
#XebiConFr
Les challenges techniques
Microservices
Automatiser
Monitorer
12 facteurs app
Tolérer et isoler
les pannes
Déco...
#XebiConFr
Découverte de services
Client Commande Facture
App
Quels hosts ?
33
#XebiConFr
Découverte de services
Catalogue de
services
Client
Commande
Facture
Eureka
34
#XebiConFr
Découverte de services
35
Mesos master
Mesos slave / Marathon Mesos slave / Marathon
commande client
commande
f...
#XebiConFr
Découverte de services
{
"id": "provisioning",
"instances": 1,
"cpus": 2.0,
"mem": 512,
"ports":[9000],
"contai...
#XebiConFr
Découverte de services
37
#XebiConFr
Les challenges techniques
Microservices
Automatiser
Monitorer
12 facteurs app
Tolérer et isoler
les pannes
Déco...
#XebiConFr
Monitoring
• Trafic
• Aggréger les logs
• Id unique
39
#XebiConFr
Monitoring
40
#XebiConFr
Monitoring
41
#XebiConFr
Comment mettre en
place les microservices ?
42
#XebiConFr
Stratégies
43
REST
API
#XebiConFr
Stratégies
44
#XebiConFr
Stratégies
Identifier un
pilote
Première release Deuxième release N release
45
#XebiConFr
Première release
46
#XebiConFr
Première release
App
Requests
App client App commande App facture
47
#XebiConFr
Première release
Client Commande Facture
App
Requests
48
#XebiConFr
Première release
Contrats
49
#XebiConFr
Première release
50
#XebiConFr
Datacenter
Des mois Des
Virtuel et Container
Des
Première release
51
#XebiConFr
Première release
52
#XebiConFr
Première release
53
#XebiConFr
En résumé
• Intégration continue
• Favoriser les tests par contrats
• Contrôler les dépendances
• Livrer en pro...
#XebiConFr
Deuxième release
Client Commande Facture
App
Requests
55
#XebiConFr
Deuxième release
Client Commande Facture
App
Requests
Commande
Commande
Client
56
#XebiConFr
Deuxième release
« No direct database access is allowed from outside the service,
and there’s no data sharing a...
#XebiConFr
Deuxième release
Client Commande Facture
App
Requests
58
#XebiConFr
Deuxième release
59
#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
...
#XebiConFr
N release
Commande Facture
App
Client Client Commande Facture
61
#XebiConFr
Tester l’infrastructure
62
#XebiConFr
Gestion des mises à jour
63
#XebiConFr
En résumé
• Scaler votre architecture
• Tester votre infrastructure
• Stratégie de mises à jour
64
#XebiConFr
Conclusion
65
#XebiConFr
Questions ?
66
#XebiConFr
Références
• http://fr.slideshare.net/InfoQ/migrating-to-microservices
• http://fr.slideshare.net/InfoQ/scalabl...
Prochain SlideShare
Chargement dans…5
×

XebiConFr 15 - Le challenge des microservices

853 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
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
853
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
44
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×