REX sur l'outilage Continuous Delivery

Preview:

Citation preview

CONTINUOUS DELIVERYChez

REXSur l’outillage

Sommaire

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

Sommaire

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

Introduction

• Qu’est ce que le Continuous Integration ?

• Qu’est ce que le Continuous Delivery ?

• L’architecture microservice

Continuous Integration

Continuous Delivery

Architecture Microservice

PetitAutonomeFait une chose et le fait bienVision Business

Architecture MicroserviceAvantages

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

Les livres

Sommaire

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

Github Flow

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

Github Flow

Fork du git flow

Github Flow

Comment on a découvert le github flow ?

Github Flow

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

Github Flow

Commits (développements)

Github Flow

Ouverture de la pull request (Release candidate)

Github Flow

Revue du code & discution

Github Flow

Déploiement de la release

Github Flow

Merge de la release

Github FlowComment est utilisé github chez traxair

Phase de déploiment & merge confondue

Un kanban

Github FlowComment est utilisé github chez traxair

Sommaire

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

Continuous integration

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

L’anatomie d’un container

Image de base

La configuration

L’applicationComposants

Le script de démarrage

Paramètres de démarrage

Continuous Integration

Continuous IntegrationArchitecture

Continuous IntegrationDétection du changement

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

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

Continuous IntegrationLes tests

Environnement isolé et propre

• Test unitaire• Service• End to end

Temps moyen d’un test 2-3 minutes

Continuous IntegrationLes tests

Emulation d’un microservice (stub)

Continuous IntegrationLe build

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

Continuous Integration

Continuous Integration

Continuous Integration

Code ReviewQualité de code

Sommaire

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

ProductionL’infrastructure

ProductionLe déploiement

• Swarm• Compose

ProductionLe monitoring

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

Sommaire

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

DevBox

Devbox

Docker ComposeMakefile

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

Sommaire

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

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

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

ConclusionCe qu’on prévoit

Recommended