du docker dans notre workflow de dev

31
Du Docker dans mon workflow de Dev

Upload: kodo-kojo

Post on 12-Apr-2017

43 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Du Docker dans notre workflow de dev

Du Docker dans mon workflow de Dev

Page 2: Du Docker dans notre workflow de dev

L’équipe Kodo Kojo

Jean-Pascal THIERY@jpthiery

2

Antoine LE TAXIN@modulom

Page 3: Du Docker dans notre workflow de dev

?

Page 4: Du Docker dans notre workflow de dev

4

Page 5: Du Docker dans notre workflow de dev

Démocratisation de la conteneurisation

● Conteneuriser des agents de build

● Conteneuriser Jenkins

● Conteneuriser toute une usine logicielle ?

5

Page 6: Du Docker dans notre workflow de dev

6

Page 7: Du Docker dans notre workflow de dev

Orchestration, le chaînon manquant

● Piloter un ensemble de conteneurssur un ensemble de machines

7

● Outils d’infrastructure

Page 8: Du Docker dans notre workflow de dev

De nouvelles solutions d’usines...

● La fin du Jenkins hyper-mutualisé inmaintenable

● La fin de la ferme de Jenkins qui n’est utilisée que 2 h / jour

8

Page 9: Du Docker dans notre workflow de dev

9

Page 10: Du Docker dans notre workflow de dev

… avec quelques contraintes

10

● Le monitoring dans tout ça ?

● La gestion de mes différents projets ?

● La gestion de mes utilisateurs ?

Page 11: Du Docker dans notre workflow de dev

11

Page 12: Du Docker dans notre workflow de dev

12

Page 13: Du Docker dans notre workflow de dev

Et les tests ?

● Node, npm● Java / Maven● Redis● Mesos / Marathon / Docker● Gitlab / Ruby● Jenkins● Nexus● ...

13

Page 14: Du Docker dans notre workflow de dev

Tester le front

Tests unitaires, tests d’intégration (composants), Style Guide...

● Pour monter en local l’UI avec un backend ?

● Pour tester l’intégration avec l’API ?

14

Page 15: Du Docker dans notre workflow de dev

Tester le back

Tests unitaires

● Interactions avec les briques (Gitlab, etc.) ?

● Interactions avec Marathon ?

15

Page 16: Du Docker dans notre workflow de dev

Docker (encore ?)

Page 17: Du Docker dans notre workflow de dev

Tests - Tu te mock ?

● Avoir la main sur le comportement des scénarios de tests

● Implémenter tous les comportements de tous les outils…et les maintenir tout le temps

17

Page 18: Du Docker dans notre workflow de dev

Lancer chaque type de service sur le poste

● Pouvoir lancer de vrais tests d’intégration

● Maintenir les versions à jour

● Il faut s’assurer à la main de l’état initial entre chaque test

18

Page 19: Du Docker dans notre workflow de dev

Les containers à la rescousse !

● Pouvoir lancer les tests de la même manière quel que soit l’environnement

● L’état initial d’un test est reproductible très facilement

● Pouvoir paralléliser l’exécution des tests

● Introduit de la complexité (gestion réseau, logs, …)

19

Page 20: Du Docker dans notre workflow de dev

Frontend, comment tester l’intégration de l’API ?

=> Tests fonctionnels (ou e2e)

=> API pour développement

● Monter en local le cluster avec docker-compose

● Se brancher sur l’API d’un serveur distant (environnement de dev)

● Se brancher sur un serveur de mock (kodokojo-mocks)

20

Page 21: Du Docker dans notre workflow de dev

Backend, objectif des tests d’intégration

● Interaction avec les briques d’une usines logicielle

● Couvrir plus de code

○ API Rest

○ Configuration des briques

21

Page 22: Du Docker dans notre workflow de dev

Backend

22

Page 23: Du Docker dans notre workflow de dev

Backend

23

Page 24: Du Docker dans notre workflow de dev

Le build

Page 25: Du Docker dans notre workflow de dev

● Gestion isolée des versions des dépendances

● Délégation des étapes de tests

● Facilite le partage de la partie front

Faire une image du front pour le backeux

25

Page 26: Du Docker dans notre workflow de dev

● Creer une image de build

● Packager l’application dans une image de déploiement

Construire l’image front en deux étapes

26

Page 27: Du Docker dans notre workflow de dev

Faire « une » image du back pour le fronteux

● Pas besoin d’installer toute la stack back (Java, Maven, etc.)

● Grâce à docker-compose, on peut lancer toutes les images qui constituent la stack back

● Facilite l’accès aux logs

27

Page 28: Du Docker dans notre workflow de dev

Les gains du build avec Docker

● Tests reproductibles

● Build reproductible

● Pas besoin s’installer toutes la stack, juste Docker

● Pas besoin de savoir comment le composant est contruit: lancer le build.sh et utiliser l’image en sortie

28

Page 29: Du Docker dans notre workflow de dev

Intégration continue avec Docker

● Jenkins

○ Multi-branch pipeline plugin

○ Jenkinsfile

29

Page 30: Du Docker dans notre workflow de dev

Conclusion

● Développement puis intégration Front <-> Back

● Docker -> deploy anywhere !

● Test d’intégration continu avec d’autres briques technologiques tierces(Redis, RabbitMq, Marathon, …)

30

Page 31: Du Docker dans notre workflow de dev

31

Merci ! https://kodokojo.io

https://github.com/kodokojo

https://gitter.im/kodokojo/kodokojo

@kodokojo