Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda...

26

Transcript of Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda...

Page 1: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon
Page 2: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

© 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Rudy Krol, Solutions Architect, AWS

[email protected]

@rkrol

Rendez votre entreprise agile

avec le DevOps

Jean-Marc Brebant, IT VP Marketing & Sales, Danone

Ludovic Jeanson, Digital Manager IS, Danone

Page 3: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon
Page 4: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Cycle de livraison d’une application monolithique

développeurs

releasetestbuild

pipeline de livraisonapplication

Page 5: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Architecture orientée

services (SOA)

Primitives

Connecté via des APIs

Découplage fort

Microservices

Page 6: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

“Two-pizza teams”

(équipes Service)

Pluridisciplinaires

Startups internes

“You build it, you run it”

DevOps

Page 7: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Equipes Service internes

Microservices (API, building blocks)

Self-service

Agnostique à la technologie

Encourager les bonnes pratiques

Page 8: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Service de déploiement

Pas d’interruption de service

Healthchecks

Versioning des artéfacts

Rollbacks

Page 9: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

PipelinesService de livraison

continue

Processus de livraison

automatisé

Des livraisons plus

rapides et plus fiables

Utilisé par >90% des

équipes

Page 10: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Cycle de vie des microservices

développeurs pipeline de livraisonservices

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

Page 11: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

= 50 millions de déploiements par an(1,5 déploiement par seconde)

Des centaines d’équipes

× Architecture microservices

× Livraison continue

× Environnements multiples

Page 12: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Comment faire pareil dans mon entreprise?

Page 13: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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

Page 14: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Partenaires AWS Code*

Page 15: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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

Page 16: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Source

Source

GitHub

Build

JenkinsOnEC2

Jenkins

Deploy

JavaApp

CodeDeploy

PipelineStageAction

Transition

CodePipeline

MyApplication

Page 17: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Source

Source

GitHub

Build

JenkinsOnEC2

Jenkins

Deploy

JavaApp

CodeDeploy

NotifyDevelopers

Lambda

CodePipeline

MyApplication

Actions parallèles

Page 18: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Source

Source

GitHub

Build

JenkinsOnEC2

Jenkins

Deploy

JavaApp

CodeDeploy

NotifyDevelopers

Lambda

TestAPI

Runscope

CodePipeline

MyApplication

Actions séquentielles

Page 19: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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

Page 20: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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

Page 21: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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

Page 22: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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.

Page 23: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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)

Page 24: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

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.

Page 25: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon

Merci!

Rudy Krol, Solutions Architect, AWS

[email protected]

@rkrol

Jean-Marc Brebant, IT VP Marketing & Sales, Danone

Ludovic Jeanson, Digital Manager IS, Danone

Page 26: Rendez votre entreprise agile - Amazon S3AWS...Amazon ECS AWS CodePipeline 4. Une fonction Lambda déploie la nouvelle image de conteneur, en mettant à jour le service ECS Amazon