Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda...
Transcript of Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda...
© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Rudy Krol, Solutions Architect, AWS
@rkrol
Rendez votre entreprise agile
avec le DevOps
Jean-Marc Brebant, IT VP Marketing & Sales, Danone
Ludovic Jeanson, Digital Manager IS, Danone
Cycle de livraison d’une application monolithique
développeurs
releasetestbuild
pipeline de livraisonapplication
Architecture orientée
services (SOA)
Primitives
Connecté via des APIs
Découplage fort
Microservices
“Two-pizza teams”
(équipes Service)
Pluridisciplinaires
Startups internes
“You build it, you run it”
DevOps
Equipes Service internes
Microservices (API, building blocks)
Self-service
Agnostique à la technologie
Encourager les bonnes pratiques
Service de déploiement
Pas d’interruption de service
Healthchecks
Versioning des artéfacts
Rollbacks
PipelinesService de livraison
continue
Processus de livraison
automatisé
Des livraisons plus
rapides et plus fiables
Utilisé par >90% des
équipes
Cycle de vie des microservices
développeurs pipeline de livraisonservices
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
= 50 millions de déploiements par an(1,5 déploiement par seconde)
Des centaines d’équipes
× Architecture microservices
× Livraison continue
× Environnements multiples
Comment faire pareil dans mon entreprise?
Mise en place d’un pipeline de livraison continu
Testing Staging Production
dep
loy
de
plo
y
de
plo
y
Source Build
release
AWS CodeDeploy
AWS CodePipeline
AWS
CodeCommit
Partenaires AWS Code*
Service de livraison continue pour des
releases rapides et fiables
Modélisation et visualisation de votre
processus de release
Build, test, et déploiement de votre code à
chaque changement de code
Approbation manuelle et notification de
déploiements
AWS CodePipeline
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
CodeDeploy
PipelineStageAction
Transition
CodePipeline
MyApplication
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
CodeDeploy
NotifyDevelopers
Lambda
CodePipeline
MyApplication
Actions parallèles
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
CodeDeploy
NotifyDevelopers
Lambda
TestAPI
Runscope
CodePipeline
MyApplication
Actions séquentielles
Automatisation du déploiement d’applications
sur une flotte d’instances scalable
Déploiement sans interruption de service
Gestion du rollback en cas d’erreur
Déploiement sur des instances EC2 ou des
serveurs on-premises et support de tous les
langages et plateformes
AWS CodeDeploy
Exemple de fichier appspec.yml
version: 1.0os: linuxfiles:- source: /
destination: /var/www/htmlpermissions:- object: /var/www/htmlpattern: “*.html”owner: rootgroup: rootmode: 755
hooks:ApplicationStop:
- location: scripts/deregister_from_elb.shBeforeInstall:
- location: scripts/install_dependencies.shApplicationStart:
- location: scripts/start_httpd.shValidateService:
- location: scripts/test_site.sh- location: scripts/register_with_elb.sh
• Suppression/ajout de l’instance à
l’Elastic Load Balancer
• Installation des dépendances
• Démarrage de l’application
• Validation du déploiement
• …
• Copie des fichiers dans des
répertoires
• Définition des permissions sur
les répertoires et fichiers
v2 v2 v2 v2 v2 v2
one at a time
half at a time
all at once
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1 Agent Agent
Groupe de déploiement Dev
OUGroupe de déploiement Prod
Agent
AgentAgent
Agent Agent
Agent
Configuration de la stratégie de déploiement
Amazon ECS: Déploiement de conteneurs Docker
Déploiement de conteneurs Docker sur des
instances EC2 dans votre VPC
Scalabilité automatique des conteneurs
Scheduler flexible intégré ou customisable
Intégration avec ECR, ELB, EFS, IAM,
Security Groups, etc.
Intégrer Amazon ECS à AWS CodePipeline
Amazon ECR1. Un “git push”
déclenche l’exécution
du pipeline
2. Un service ECS build
une image de conteneur
Amazon ECS
AWS
CodePipeline
4. Une fonction Lambda
déploie la nouvelle image de
conteneur, en mettant à jour
le service ECS
Amazon ECS
3. Lorsque l’image est
créée, elle est stockée sur
Amazon ECR (registre de
conteneurs Docker privé
AWS)
AWS Lambda : Architecture Serverless
Scalabilité gérée nativementPas de serveurs à gérer
Lambda scale automatiquement
votre application en exécutant le
code en réponse aux évènements.
Votre code tourne en parallèle et
traite chaque évènement
individuellement, en adaptant
automatiquement les ressources
en fonction de la charge.
Facturation à la requête
Avec Lambda, vous êtes
facturé pour chaque
100ms d’exécution de
code et en fonction du
nombre d’exécutions. Vous
ne payez rien tant que
votre code n’est pas
exécuté.
Lambda exécute
automatiquement votre
code sans avoir à
provisionner ou gérer des
serveurs. Implémentez
votre code et uploader le
sur Lambda.
Merci!
Rudy Krol, Solutions Architect, AWS
@rkrol
Jean-Marc Brebant, IT VP Marketing & Sales, Danone
Ludovic Jeanson, Digital Manager IS, Danone