REX sur l'outilage Continuous Delivery
-
Upload
damien-goldenberg -
Category
Engineering
-
view
1.009 -
download
0
Transcript of REX sur l'outilage Continuous Delivery
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