XebiConFr 15 - Le challenge des microservices

67
Les challenges des microservices #XebiConFr @njozwiak

Transcript of XebiConFr 15 - Le challenge des microservices

Page 1: XebiConFr 15 - Le challenge des microservices

Les challenges des microservices

#XebiConFr@njozwiak

Page 2: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Speaker

@njozwiak

2

Page 3: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges des microservices

3

Page 4: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Agenda

• Définition des microservices

• Pourquoi les microservices ?

• Les challenges organisationnels et techniques

• Comment mettre en place les microservices ?

4

Page 5: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Définition

5

Page 6: XebiConFr 15 - Le challenge des microservices

#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

Page 7: XebiConFr 15 - Le challenge des microservices

#XebiConFr

service-oriented architecture composed of loosely coupled elements that have bounded contexts

Définition Adrian Cockcroft

7

Page 8: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Pourquoi les microservices ?

8

Page 9: XebiConFr 15 - Le challenge des microservices

#XebiConFr

• Besoins IT augmentent

• Clients exigeants

• Plus rapide que la concurrence

Pourquoi les microservices ?

9

Page 10: XebiConFr 15 - Le challenge des microservices

#XebiConFr

• Application monolithique complexe

• Maturité des technologies

• Langages et bases de données

10

Pourquoi les microservices ?

Page 11: XebiConFr 15 - Le challenge des microservices

#XebiConFr

• 57 millions de membres

• 1 milliards d’évènements / jour

• Cycles de déploiements longs

• Besoin d’évoluer rapidement

11

Pourquoi les microservices ?

Page 12: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges organisationnels

12

Page 13: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Loi de Conway

« Organizations which design systems areconstrained to produce systems which arecopies of the communication structures of

these organizations. »13

Page 14: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Communication

14

Page 15: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Compétences

15

Page 16: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Équipes

Dev Team

Product Manager

Ops Team

QA Team

16

Page 17: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Developer

Product Manager

Équipes

17

Page 18: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Culture

18

Page 19: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Agilité

19

Page 20: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges techniques

20

Page 21: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges techniques

Microservices

Automatiser

Monitorer

12 facteurs app

Tolérer et isoler les pannes

Découverte de service

21

Page 22: XebiConFr 15 - Le challenge des microservices

#XebiConFr22

Page 23: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges techniques

Microservices

Automatiser

Monitorer

12 facteurs app

Tolérer et isoler les pannes

Découverte de service

23

Page 24: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Automatiser

1 mois 3 mois 12 mois

24

Page 25: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Automatiser

25

Page 26: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Automatiser

26

Page 27: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges techniques

Microservices

Automatiser

Monitorer

12 facteurs app

Tolérer et isoler les pannes

Découverte de service

27

Page 28: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Tolérer et isoler les pannes

App

App client App commande App facture

Requests

App client App commande App factureX28

Page 29: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Tolérer et isoler les pannes

Client Commande Facture

App

Requests

Circuit breaker

29

Page 30: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Tolérer et isoler les pannes

30

Page 31: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Tolérer et isoler les pannes

31

Page 32: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges techniques

Microservices

Automatiser

Monitorer

12 facteurs app

Tolérer et isoler les pannes

Découverte de service

32

Page 33: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Découverte de services

Client Commande Facture

App

Quels hosts ?

33

Page 34: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Découverte de services

Catalogue de services

Client

Commande

Facture

Eureka

34

Page 35: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Découverte de services

35

Mesos master

Mesos slave / Marathon Mesos slave / Marathon

commande client

commande facture

client

Http post

Page 36: XebiConFr 15 - Le challenge des microservices

#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

Page 37: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Découverte de services

37

Page 38: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Les challenges techniques

Microservices

Automatiser

Monitorer

12 facteurs app

Tolérer et isoler les pannes

Découverte de service

38

Page 39: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Monitoring

• Trafic

• Aggréger les logs

• Id unique

39

Page 40: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Monitoring

40

Page 41: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Monitoring

41

Page 42: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Comment mettre en place les microservices ?

42

Page 43: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Stratégies

43

RESTAPI

Page 44: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Stratégies

44

Page 45: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Stratégies

Identifier un pilote Première release Deuxième release N release

45

Page 46: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Première release

46

Page 47: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Première release

App

Requests

App client App commande App facture

47

Page 48: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Première release

Client Commande Facture

App

Requests

48

Page 49: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Première release

Contrats

49

Page 50: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Première release

50

Page 51: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Datacenter

Des mois Des

Virtuel et Container

Des

Première release

51

Page 52: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Première release

52

Page 53: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Première release

53

Page 54: XebiConFr 15 - Le challenge des microservices

#XebiConFr

En résumé

• Intégration continue

• Favoriser les tests par contrats

• Contrôler les dépendances

• Livrer en production

• Monitorer et analyser

54

Page 55: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Deuxième release

Client Commande Facture

App

Requests

55

Page 56: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Deuxième release

Client Commande Facture

App

Requests

CommandeCommandeClient

56

Page 57: XebiConFr 15 - Le challenge des microservices

#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

Page 58: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Deuxième release

Client Commande Facture

App

Requests

58

Page 59: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Deuxième release

59

Page 60: XebiConFr 15 - Le challenge des microservices

#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

Page 61: XebiConFr 15 - Le challenge des microservices

#XebiConFr

N release

Commande Facture

App

Client Client Commande Facture

61

Page 62: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Tester l’infrastructure

62

Page 63: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Gestion des mises à jour

63

Page 64: XebiConFr 15 - Le challenge des microservices

#XebiConFr

En résumé

• Scaler votre architecture

• Tester votre infrastructure

• Stratégie de mises à jour

64

Page 65: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Conclusion

65

Page 66: XebiConFr 15 - Le challenge des microservices

#XebiConFr

Questions ?

66

Page 67: XebiConFr 15 - Le challenge des microservices

#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