Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Container Day 2016 - De la construction au déploiement d’applications avec des containers
1. @ContainerDay16 @ModuloM @jpthiery @kodokojo
De la construction au déploiement
d’applications avec des containers
Antoine Le Taxin
Jean-Pascal Thiery
6. Dark ages du devOps
• Sprint 0
• Pas le choix des outils
• Faire la queue dans le bureau du SI ou la méthode shadow IT ?
@ContainerDay16 @ModuloM @jpthiery @kodokojo
7. Démocratisation des containers
• Conteneuriser des agents de build
• Conteneuriser le Jenkins
• Conteneuriser toute une usine logicielle ?
@ContainerDay16 @ModuloM @jpthiery @kodokojo
8. Germination de l’écosystème des conteneurs
• Piloter un ensemble de containers sur un ensemble de machines
• Outils d’infrastructure
@ContainerDay16 @ModuloM @jpthiery @kodokojo
9. Et paf
• Une usine partageable et utilisable par tous
• Simplicité d’utilisation avec une UI centralisée
• Kodo Kojo, une usine Open Source en 3 clics !
@ContainerDay16 @ModuloM @jpthiery @kodokojo
13. Synergie front / back ?
@ContainerDay16 @ModuloM @jpthiery @kodokojo
14. Faire une image du front pour le backeux
! C’est l’image qui prend en charge la gestion des
versions des dépendances
! Les tests et les étapes de build conditionnent la création de l’image
! Facilite le partage de la partie front pour le reste de l’équipe
@ContainerDay16 @ModuloM @jpthiery @kodokojo
15. Faire « une » image du back pour le fronteux
! Pas besoin d’installer tous les outils pour développer la partie front
! Grâce à docker-compose, on peut facilement lancer
toutes les images qui constituent la stack back
! Une flexibilité qui permet de lancer un back utilisant
un cluster local ou un cluster dans le cloud
! Facilite l’accès aux logs de la partie back
@ContainerDay16 @ModuloM @jpthiery @kodokojo
17. 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
@ContainerDay16 @ModuloM @jpthiery @kodokojo
18. 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
@ContainerDay16 @ModuloM @jpthiery @kodokojo
19. 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, …)
@ContainerDay16 @ModuloM @jpthiery @kodokojo
24. @ContainerDay16 @ModuloM @jpthiery @kodokojo
De la construction au déploiement
d’applications avec des containers
Antoine Le Taxin
Jean-Pascal Thiery
Notes de l'éditeur
A votre avis, combien d’étapes pour monter une usine logicielle complète à la main ?
Qui dit moins de 5 ? Entre 5 et 10 ? Plus de 10 ? Plus de 100 ?
Liste des trucs à faire :
- télécharger chaque binaire, qui a besoin d’un environnement d’exec différent (ruby pour Gitlab, java pour Jenkins, ...)
- les déposés sur le ou les serveurs (peut y’en avoir plusieurs)
- les configurer chacune des briques (qui ont bien sûr chacun leur petite façon de faire)
- j’ai une instance qui tourne… mais les compte par défaut, tout le monde les connais
- ll faut donc créer des comptes et enlever les comptes par défaut, mais pour pour faire l’authentification, il faut mettre en place du https (générer les certificats, les installer sur chaque brique, de manière à chaque fois différente)
- Du coup seulement maintenant je peux ajouter des comptes sur mes briques (fois n brique !!)
- Ouf, j’ai une usine qui (normalement) devrait fonctionner… Et encore je n’ai pas de monitoring
Ca fait en gros 17 étapes …
Je vais vous montrer comment on peut le faire en 3 cliques sur Kodo Kojo ! =>
- création d’un compte
- nom du projet + liste des briques (pour le moment limitées)
- lancement des images gitlab / jenkins / nexus =
- chacune fait sont initialitsation interne et peut prendre du temps (Gitlab = onmibus, etc.)
- on crée les urls sécurisés, conventionné (nom brique tiret nom projet) vers chaque conteneurs
- on sécurise les briques > https + les users sont déjà créer et l’utilisateur par défaut est modifié
- on ajoute le compte créer comme administrateur