Upgrade to Pro — share decks privately, control downloads, hide ads and more …

REX Déploiements Blue/Green de µ-services par Stéphane Teyssier

WeScale
October 30, 2018

REX Déploiements Blue/Green de µ-services par Stéphane Teyssier

Présentation d'un retour d'expérience sur le déploiement Blue/Green de micro services chez Oui.SNCF :
Le déploiement Blue/Green est souvent illustré, mais en la théorie et la réalité il y a un écart!
Ce REX sur un an de projet, vous permettra de découvrir les différentes évolutions du déploiement pour arriver au blue/green ultime!
Nous parlerons aussi des sujets qui fâchent : les batchs, les schéma relationnel...
Côté technos, il s'agira d'AWS ECS, Consul, Terraform et Jenkins.

WeScale

October 30, 2018
Tweet

More Decks by WeScale

Other Decks in Technology

Transcript

  1. REX déploiements Blue/Green ”Eviter les approches étoile de la mort”

    [email protected] @steyssier Je me présente ... Mon parcours développeur consultant technique architecte infrastructure cloud builder
  2. Worldwide Utilisateurs dans le monde entier Des spécificités par marché

    (langue, produits, ergonomie …) à adresser de manière souple Business Maîtrise et réduction de coûts Elasticité face aux pics de charge Test & learn: tester de nouveaux marchés, mesurer et décider IT Haute disponibilité Fiabilité Performance Fréquence de déploiement Niveau de confiance élevée dans les livrables Les enjeux Contexte projet Le tout dans un contexte multi-sites/international REX déploiements Blue/Green
  3. Limitation des frontières entre les métiers historiques de développeur et

    d’opérationnel • Partage des rôles et des responsabilités • Participation collégiale aux choix d’architecture, au backlog grooming, .. • L’ops code avec l’aide du développeur, le développeur met en production avec l’ops • Intégration complète de l’ops au cœur de l’équipe de dev (co-localisation) DEV -> OPS • Les développeurs participent à toutes les mises en production • Les développeurs mettent en place et utilisent les solutions de monitoring en hors production • Les développeurs participent au suivi de production au quotidien et aux astreintes OPS -> DEV • Pipeline as code • Infrastructure as code • Automatisation de tests Devops is not devOOPS ! Contexte projet REX déploiements Blue/Green
  4. En rébus. Je suis ... Contexte technique , , Le

    nuage, avant en dés, j’ai aujourd’hui la banane REX déploiements Blue/Green A 1
  5. Un composant = un micro-service = 1 module terraform Le

    rolling update Composant • Service applicatif • (Target group) • Alarmes • Log • Scaling • (DataStores) Environnement • Load balancers • DNS • Ensemble de composants REX déploiements Blue/Green
  6. Batch size, draining et healthcheck Le rolling update n n

    n+1 n+1 n n n+1 n+1 n+1 n+1 Minimum healthy, maximum tasks REX déploiements Blue/Green
  7. • Commons (workspace=rollingupdate) ◦ Load balancer public ◦ DNS •

    guestbook-service (workspace=rollingupdate) ◦ Redis Elasticache ◦ Service ECS ▪ min healthy : 100% ▪ max tasks : 200% Demo Le rolling update REX déploiements Blue/Green
  8. Impossible de tester n+1 Rollback suppose un redéploiement Le code

    applicatif doit supporter une rétro-compatibilité des données En conclusion Le rolling update REX déploiements Blue/Green
  9. Impossible de tester n+1 Rollback suppose un redéploiement Le code

    applicatif doit supporter une rétro-compatibilité des données Pourquoi? Le blue/green REX déploiements Blue/Green
  10. Principe Le blue/green • Suppose un élément de routage entre

    environnements Blue et Green (DNS, proxy dynamique, …) • Cycle de vie des “datastores” != applications • Maintien d’état blue et green REX déploiements Blue/Green
  11. Consul ou AWS Parameter store :-) • Machine à état

    • Qui est a | b ? Stockage des états Le blue/green REX déploiements Blue/Green
  12. Démo Le blue/green • Commons (workspace=blue-green) ◦ Load balancer public

    A/B ◦ DNS ◦ Gestion des états dans Consul • guestbook-datastore (workspace=blue-green) ◦ Redis Elasticache • guestbook-service (workspace=blue-green-a|b) ◦ Service ECS ▪ min healthy : 100% ▪ max tasks : 200% REX déploiements Blue/Green
  13. Rien de magique sur les data. Rien de magique pour

    les batchs. MEP plus sereines mais n’affranchit pas des tests fonctionnels. DNS c’est bien, mais un certain flottement. Pour aller plus loin : canary, proxy pilotable (ZUL). En conclusion Le blue/green REX déploiements Blue/Green
  14. Stratégie de versioning CI/CD Mono repository: pipelines, IaC, micro-service, configuration

    feat 1 feat 2 stabilization production blue/green REX déploiements Blue/Green
  15. Les pipelines CI/CD • Pipeline composant ◦ Exécuté sur chaque

    commit de branche ◦ Construit et valide un composant de manière isolé dans un contexte dédié • Pipeline d’intégration ◦ Exécuté plusieurs fois par jour ◦ Valide l’intégration des composants et l’intégration avec les partenaires ◦ Base pour release • Pipeline de production ◦ Exécuté deux fois par semaine ◦ Publication d’une version de production ◦ Vérification des déploiements ◦ Communication REX déploiements Blue/Green
  16. • Déploiement multi-régions • CDN • Pop-up de mise à

    jour côté FRONT Prochaines étapes REX déploiements Blue/Green