46
CONTINUOUS DELIVERY Chez REX Sur l’outillage

REX sur l'outilage Continuous Delivery

Embed Size (px)

Citation preview

Page 1: REX sur l'outilage Continuous Delivery

CONTINUOUS DELIVERYChez

REXSur l’outillage

Page 2: REX sur l'outilage Continuous Delivery

Sommaire

• Introduction• Github Flow• Continuous Integration• Production• DevBox• Conclusion

Page 3: REX sur l'outilage Continuous Delivery

Sommaire

• Introduction• Github Flow• Continuous Integration• Production• DevBox• Conclusion

Page 4: REX sur l'outilage Continuous Delivery

Introduction

• Qu’est ce que le Continuous Integration ?

• Qu’est ce que le Continuous Delivery ?

• L’architecture microservice

Page 5: REX sur l'outilage Continuous Delivery

Continuous Integration

Page 6: REX sur l'outilage Continuous Delivery

Continuous Delivery

Page 7: REX sur l'outilage Continuous Delivery

Architecture Microservice

PetitAutonomeFait une chose et le fait bienVision Business

Page 8: REX sur l'outilage Continuous Delivery

Architecture MicroserviceAvantages

• Possibilités d’utiliser différentes technologies• Résiliente• Scalable• Simple à déployer• Remplacement simple

Page 9: REX sur l'outilage Continuous Delivery

Les livres

Page 10: REX sur l'outilage Continuous Delivery

Sommaire

• Introduction• Github Flow• Continuous Integration• Production• DevBox• Conclusion

Page 11: REX sur l'outilage Continuous Delivery

Github Flow

• Git flow• Découverte du Github Flow• Présentation du Github Flow• Utilisation du Github Flow chez TraxAir

Page 12: REX sur l'outilage Continuous Delivery

Github Flow

Fork du git flow

Page 13: REX sur l'outilage Continuous Delivery

Github Flow

Comment on a découvert le github flow ?

Page 14: REX sur l'outilage Continuous Delivery

Github Flow

Création de la branche (feature, hotfix …)

Page 15: REX sur l'outilage Continuous Delivery

Github Flow

Commits (développements)

Page 16: REX sur l'outilage Continuous Delivery

Github Flow

Ouverture de la pull request (Release candidate)

Page 17: REX sur l'outilage Continuous Delivery

Github Flow

Revue du code & discution

Page 18: REX sur l'outilage Continuous Delivery

Github Flow

Déploiement de la release

Page 19: REX sur l'outilage Continuous Delivery

Github Flow

Merge de la release

Page 20: REX sur l'outilage Continuous Delivery

Github FlowComment est utilisé github chez traxair

Phase de déploiment & merge confondue

Un kanban

Page 21: REX sur l'outilage Continuous Delivery

Github FlowComment est utilisé github chez traxair

Page 22: REX sur l'outilage Continuous Delivery

Sommaire

• Introduction• Github Flow• Continuous Integration• Production• DevBox• Conclusion

Page 23: REX sur l'outilage Continuous Delivery

Continuous integration

• Anatomie d’un container• L’architecture• Le workflow de la CI

Page 24: REX sur l'outilage Continuous Delivery

L’anatomie d’un container

Image de base

La configuration

L’applicationComposants

Le script de démarrage

Paramètres de démarrage

Page 25: REX sur l'outilage Continuous Delivery

Continuous Integration

Page 26: REX sur l'outilage Continuous Delivery

Continuous IntegrationArchitecture

Page 27: REX sur l'outilage Continuous Delivery

Continuous IntegrationDétection du changement

Page 28: REX sur l'outilage Continuous Delivery

Continuous IntegrationQu’est ce qui doit être testé ?

Relation d’ordre topologique sur composants connexes du graphe orienté acyclique

Page 29: REX sur l'outilage Continuous Delivery

Continuous IntegrationLes tests

Environnement isolé et propre

• Test unitaire• Service• End to end

Temps moyen d’un test 2-3 minutes

Page 30: REX sur l'outilage Continuous Delivery

Continuous IntegrationLes tests

Emulation d’un microservice (stub)

Page 31: REX sur l'outilage Continuous Delivery

Continuous IntegrationLe build

Temps moyen d’un build• Librairie : 1 minute• Microservice : 4 minutes• Image de base : 30 minutes

Page 32: REX sur l'outilage Continuous Delivery

Continuous Integration

Page 33: REX sur l'outilage Continuous Delivery

Continuous Integration

Page 34: REX sur l'outilage Continuous Delivery

Continuous Integration

Code ReviewQualité de code

Page 35: REX sur l'outilage Continuous Delivery

Sommaire

• Introduction• Github Flow• Continuous Integration• Production• Conclusion

Page 36: REX sur l'outilage Continuous Delivery

ProductionL’infrastructure

Page 37: REX sur l'outilage Continuous Delivery

ProductionLe déploiement

• Swarm• Compose

Page 38: REX sur l'outilage Continuous Delivery

ProductionLe monitoring

• Datadog, monitoring as a service• ELK, centralisation des logs

Page 39: REX sur l'outilage Continuous Delivery

Sommaire

• Introduction• Github Flow• Continuous Integration• Production• DevBox• Conclusion

Page 40: REX sur l'outilage Continuous Delivery

DevBox

Page 41: REX sur l'outilage Continuous Delivery

Devbox

Docker ComposeMakefile

Page 42: REX sur l'outilage Continuous Delivery

DevboxFicher compose

Service_X: image: registry.com/Service_X ports: - "443:443" volumes: - Service_X/app:/app - Service_X/Service_X.env:/Service_X.env command: dev

Page 43: REX sur l'outilage Continuous Delivery

Sommaire

• Introduction• Github Flow• Continuous Integration• Production• Conclusion

Page 44: REX sur l'outilage Continuous Delivery

ConclusionLes difficultés rencontrées

• les microservices, c'est bien, mais c'est difficile à mettre en place (et ça nous a ralenti).

• L’intégration continue

Page 45: REX sur l'outilage Continuous Delivery

ConclusionLes difficultés rencontrées

• On a fait une itération pour tout le système au lieu de le faire en plusieurs itérations

• La communication

Page 46: REX sur l'outilage Continuous Delivery

ConclusionCe qu’on prévoit