SlideShare une entreprise Scribd logo
1  sur  94
Télécharger pour lire hors ligne
S O M M E T D U
S E C T E U R P U B L I C
O T T A W A
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Intégration et livraison continues (CI/CD) :
Les meilleures pratiques pour la création
d’applications modernes
Leo Zhadanovsky
Architecte principal de solutions
Amazon Web Services
M A D 3 0 1
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Au programme
Les bases de CI/CD
CI/CD pour les applications modernes
Intégration continue
Déploiement continu
Infrastructure, comme code
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Étapes du processus de publication
Source Création Test Déploiement
• Intégration des
tests aux
systèmes
• Téléchargement
des tests
• UI tests
• Tests de sécurité
• Vérifier le
référentiel source
tel que les fichiers
.java
• Nouvel examen de
code par les pairs
• Compilation du
code
• Tests d’unités
• Vérifications de
styles
• Création d’images
de conteneur et le
package de
déploiement des
fonctionalités
• Déploiement vers
la publication
d’environnements
• Analyse et
surveillance de
code pour repérer
rapidement les
bogues
Source
• Vérifier le
référentiel source
tel que les fichiers
.java
• Nouvel examen de
code par les pairs
Création
• Compilation du
code
• Tests d’unités
• Vérifications de
styles
• Création d’images
de conteneur et le
package de
déploiement des
fonctionalités
Test
• Intégration des
tests aux
systèmes
• Téléchargement
des tests
• UI tests
• Tests de sécurité
Déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Étapes du processus de publication
Source Création Test Déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS Code Services
Source Création Test Déploiement
Analyse,
déboguage et
surveillance
AWS CodeBuild +
Third Party
Étapes de livraison de logiciels:
AWS CodeCommit AWS CodeBuild AWS CodeDeploy
AWS CodePipeline
AWS
CodeStar
AWS X-Ray
Amazon
CloudWatch
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Approches au développement d’applications
modernes
• Accelérer la livraison de nouveaux services de qualité supérieure
• Simplifier l’environnement de gestion
• Réduire des incidences de mises à jour de code
• Automatiser le déploiement
• Améliorer la qualité de l’information utile (insights) avec des ressources et des
applications
• Protéger les clients et leur entreprise
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Approches au développement d’applications
modernes
• Accelérer la livraison de nouveaux services de qualité supérieure CI/CD
• Simplifier l’environnement de gestion technologies sans serveur
• Réduire des incidences de mises à jour de code architectures de microservices
• Automatiser le déploiement modélisant les applications et l’infrastructure en tant que
code
• Améliorer la qualité de l’information utile (insights) avec des ressources et des
applications l’observabilité
• Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Approches au développement d’applications
modernes
• Accelérer la livraison de nouveaux services de qualité supérieure CI/CD
• Simplifier l’environnement de gestion technologies sans serveur
• Réduire des incidences de mises à jour de code architectures de microservices
• Automatiser le déploiement modélisant les applications et l’infrastructure en tant que
code
• Améliorer la qualité de l’information utile (insights) avec des ressources et des
applications l’observabilité
• Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les effets de CI/CD
Source: 2018 DORA State of DevOps Report
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les effets de CI/CD
Source: 2018 DORA State of DevOps Report
Fréquence de déploiement Hebdomadaire, mensuel À l’heure, au jour
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les effets de CI/CD
Source: 2018 DORA State of DevOps Report
Fréquence de déploiment Hebdomadaire, mensuel À l’heure, au jour
Délai de mise à jour De un à six mois De un à sept jours
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les effets de CI/CD
Source: 2018 DORA State of DevOps Report
Fréquence de déploiment Hebdomadaire, mensuel À l’heure, au jour
Délai de mise à jour De un à six mois De un à sept jours
Taux d’échec Entre 46 et 60 % Entre 0 et 15 %
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les effets du CI/CD
Source: 2018 DORA State of DevOps Report
48 % des
équipes TI
Fréquence de déploiment Hebdomadaire, mensuel À l’heure, au jour
Délai de mise à jour De un à six mois De un à sept jours
Taux d’échec Entre 46 et 60 % Entre 0 et 15 %
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
Intégration
continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les objectifs de l’intégration continue
Source Création Test Déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
1. Lancer automatiquement une nouvelle version lors de l'enregistrement
d'un nouveau code
2. Développer et tester le code dans un environnement cohérent et
reproductible
3. Avoir un artéfact prêt en permanence pour le déploiement
4. Fermer continuellement la boucle de rétroaction en cas d'échec
Les objectifs de l’intégration continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodePipeline
• Automatisez des mises à jour rapides et fiables en
continu
• Modéliser and visualiser le processus de livraison
de logiciels
• Créer, tester et déployer votre code chaque fois
que celui-ci est modifié
• Permettre l’intégration à des services tiers et à
AWS
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodePipeline : sources prises en charge
Choisir une
branche
AWS CodeCommit
GitHub
Choisir un objet ou
un dossier
Amazon Simple
Storage Service
(Amazon S3)
Lancement automatique et extraction de la dernière version du référentiel
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodePipeline : sources prises en charge
AWS CodePipeline utilise
maintenant Amazon Elastic
Container Registry (Amazon ECR)
comme source de pipeline
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodePipeline : sources prises en charge
EC2
AWS CodeDeploy
AWS Elastic
GitHub
Choisir un objet ou
un dossier
Amazon S3
Lancement automatique et extraction de la dernière version du référentiel
Choisir le
balisage du
Docker
Amazon ECR
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
EC2
AWS CodeDeploy
AWS Elastic Beanstalk
AWS OpsWorks Stacks
Conteneurs
AWS CodeDeploy
Amazon ECS
Amazon ECS (Bleu/vert)
Amazon ECS Fargate
Serverless
AWS CodeDeploy
CloudFormation
(SAM)
Lambda
AWS CodePipeline : sources prises en charge
Lancement automatique et extraction de la dernière version du référentiel
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodePipeline : ECR action source
Code source:
Branche « maître »
Référentiel ECR:
Balise de «
publication »
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodePipeline : Modifications prises en charge
Lancement automatique
Amazon CloudWatch Events
• Planifiés (publication en soirée)
• AWS Health events (Plateforme
Fargate mise hors service)
Disponible avec CloudWatch Events,
API, SDK, CLI, et AWS
CloudFormation
Webhooks
• DockerHub
• Quay
• Artifactory
Disponible avec CodePipeline API,
SDK, CLI, et CloudFormation
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Approches au développement d’applications
modernes
• Accelérer la livraison de nouveaux services de qualité supérieure CI/CD
• Simplifier l’environnement de gestion technologies sans serveur
• Réduire des incidences de mises à jour de code architectures de microservices
• Automatiser le déploiement modélisant les applications et l’infrastructure en tant que
code
• Améliorer la qualité de l’information utile (insights) avec des ressources et des
applications l’observabilité
• Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Conteneurs sans serveur
De longue date
Résume le système d’exploitation
Orchestration prise en charge
Dimensionnement des clusters pris en charge
Fonctions sans serveur
En réponse aux événements
Plusieurs executions de langages
Intégration des sources de données
Aucune gestion de serveurs
Approches au développement d’applications
modernes
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeBuild
• Service d’intégration entièrement géré qui
compile votre code source, exécute des tests et
produit des packages logiciels
• Dimensionne et traite en continu plusieurs
générations à la fois
• Aucune gestion de serveurs de génération
• Paiement à la minute, uniquement pour les
ressources utilisées
• Surveillance avec CloudWatch Events
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeBuild
• Chaque génération fonctionne dans un nouveau
conteneur Docker pour un environnement
cohérent et immuable
• Les Docker et AWS CLI sont installés dans chaque
image CodeBuild
• Des environments de génération personnalisés au
travers l’utilisation d’images Docker
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeBuild : Lambda création de la génération
version: 0.2
phases:
build:
commands:
- npm ci
- npm test
- >
aws cloudformation package
--template-file template.yml
--output-template template-output.yml
--s3_bucket $BUCKET
artifacts:
type: zip
files:
- template-output.yml
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeBuild : Docker spécification de la génération
version: 0.2
phases:
build:
commands:
- $(aws ecr get-login --no-include-email)
- docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG .
- docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $ECR_REPO:$IMAGE_TAG
- docker push $ECR_REPO:$IMAGE_TAG
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
1. Lancer automatiquement une nouvelle version lors de l'enregistrement
d'un nouveau code
2. Développer et tester le code dans un environnement cohérent et
reproductible
3. Avoir un artéfact prêt en permanence pour le déploiement
4. Fermer continuellement la boucle de rétroaction en cas d'échec
Les objectifs de l’intégration continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
Intégration
continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
Déploiement
continu
Intégration
continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les objectifs du déploiement continu
Source Création Test Déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
1. Déploiement automatisé dans des environments de simulation
2. Déploiement en toute sécurité vers la production sans impact sur le
client
3. Livraison plus rapide : augmenter la fréquence de déploiement et réduire
le délai d’exécution et le taux d’échec des mises à jour
Les objectifs du déploiement continu
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy
• Déploiements automatisés des instances et
Lambda
• Gestion des mises à jour complexes des
applications
• Limite le temps d’arrêt lors du déploiement
d’applications
• Arrêt et annulation automatique en cas d’échec
Déploiement sur Amazon EC2, Lambda, ou
serveurs sur site
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.P U B L I C S E C T O R
S U M M I T
CodeDeploy - EC2 déploiement
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
permissions:
- object: /var/www/html
pattern: “*.html”
owner: root
group: root
mode: 755
hooks:
ApplicationStop:
- location: scripts/deregister_from_elb.sh
BeforeInstall:
- location: scripts/install_dependencies.sh
ApplicationStart:
- location: scripts/start_httpd.sh
ValidateService:
- location: scripts/test_site.sh
- location: scripts/register_with_elb.sh
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.P U B L I C S E C T O R
S U M M I T
CodeDeploy - EC2 déploiement
• Enlever/ajouter des instances
sur ELB
• Installer des packages
dépendants
• Lancer Apache
• Confirmer le déploiment
• Et plus encore!
• Envoyer les fichiers
d'application vers un répertoire
et les fichiers de configuration
vers un autre
• Définir les contrôles d’accès sur
les repertoires et fichiers
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html
permissions:
- object: /var/www/html
pattern: “*.html”
owner: root
group: root
mode: 755
hooks:
ApplicationStop:
- location: scripts/deregister_from_elb.sh
BeforeInstall:
- location: scripts/install_dependencies.sh
ApplicationStart:
- location: scripts/start_httpd.sh
ValidateService:
- location: scripts/test_site.sh
- location: scripts/register_with_elb.sh
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
v2 v2 v2 v2 v2 v2
Un à la fois
La moitié à la fois
Tous, simultanément
v2 v2 v2 v1 v1 v1
v2 v1 v1 v1 v1 v1
Agent
Groupe de déploiement Dev
OU
Groupe de déploiement Prod
Déterminer la vitesse et le groupe de déploiement
Agent
Agent Agent Agent
Agent Agent Agent
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy – déploiements Lambda
• Rediriger le trafic entrant à l’aide des alias pondérés par la fonction
Lambda
• Choisir canary (déplacer 10 % du trafic pendant 10 minutes, puis
déplacer la balance) ou linéaire (déplacer 10 % du trafic à chaque 10
minutes)
• Effectuer des tests à chaque étape du déploiement avec les crochets de
validation
• Annuler en quelques secondes en cas d’échec ou d’alarmes
• Contrôler et surveiller le déploiement et l’historique avec CloudWatch
via la console, l’API, les notifications Amazon Simple Notification
Service (Amazon SNS) et les CloudWatch Events
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy - déploiements Lambda
Activer dans votre modèle d’applications sans serveur
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
DeploymentPreference:
Type: Canary10Percent10Minutes
Alarms:
- !Ref ErrorsAlarm
Hooks:
PreTraffic: !Ref PreTrafficHook
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy - déploiement canary Lambda
100 %
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
100%
Lancer le crochet contre la v2 du code avant qu’il ne reçoive du trafic
0%
AWS CodeDeploy - déploiement canary Lambda
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
90%
Patientez 10 minutes, annuler en cas d’alarmes
10%
AWS CodeDeploy - déploiement canary Lambda
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
0%
Complétez le déploiement
100%
AWS CodeDeploy - déploiement canary Lambda
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy
AWS CodeDeploy permet le
déploiement bleu/vert sur AWS
Fargate et Amazon Elastic
Container Service (ECS)
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy - ECS déploiement bleu/vert
• Provisionne les tâches vertes, suivi du dimensionnement pour
l’équilibrage des charges
• Vérification des crochets permettent de tester à chaque étape du
déploiement
• Annulation et retour vers les tâches bleues en quelques secondes en cas
d’échec ou d’alarmes CloudWatch
• Contrôler et surveiller le déploiement et l’historique via la console,
l’API, les notifications Amazon SNS et les CloudWatch Events
• Utiliser l'action de déploiement AWS CodeDeploy-ECS dans AWS
CodePipeline ou la commande « aws ecs deploy » dans Jenkins
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy - ECS spécifications d’applications
version: 1.0
Resources:
- TargetService:
Type: AWS::ECS::Service
Properties:
- TaskDefinition: "my_task_definition:8"
LoadBalancerInfos:
- ContainerName: "SampleApp"
ContainerPort: 80
Hooks:
- BeforeInstall: "LambdaFunctionToExecuteAnythingBeforeNewRevisionInstalltion"
- AfterInstall: "LambdaFunctionToExecuteAnythingAfterNewRevisionInstallation"
- AfterAllowTestTraffic: "LambdaFunctionToValidateAfterTestTrafficShift"
- BeforeAllowTraffic: "LambdaFunctionToValidateBeforeTrafficShift"
- AfterAllowTraffic: "LambdaFunctionToValidateAfterTrafficShift"
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
AWS CodeDeploy - ECS déploiement bleu/vert
100 % du
trafic de
production
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Test de
l’écoute du
trafic (port
9000)
Groupe
cible 2
AWS CodeDeploy - ECS déploiement bleu/vert
100 % du
trafic de
production
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Test de
l’écoute du
trafic (port
9000)
Groupe
cible 2
AWS CodeDeploy - ECS déploiement bleu/vert
100 % du
trafic de
production
Provisions des tâches « vertes »
Tâches vertes:
v2 du code
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
100%
Test
trafic
Exécuter le crochet au point du test avant que les tâches vertes ne reçoivent
du trafic
AWS CodeDeploy - ECS déploiement bleu/vert
Test de
l’écoute du
trafic (port
9000)
Groupe
cible 2
100 % du
trafic de
production
Tâches vertes:
v2 du code
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Rediriger le trafic vers les tâches vertes, annuler en cas d’alarme
AWS CodeDeploy - ECS déploiement bleu/vert
100%
Test
trafic
Test de
l’écoute du
trafic (port
9000)
Groupe
cible 2
0 % du
trafic de
production
Tâches vertes:
v2 du code
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Vider les tâches « bleues »
AWS CodeDeploy - ECS déploiement bleu/vert
100%
Test
trafic
Test de
l’écoute du
trafic (port
9000)
Groupe
cible 2
Tâches vertes:
v2 du code
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Balisage de conteneur d’images pour le déploiement
• Le balisage de Docker est résolu lorsque chaque conteneur est lancé et
pas seulement durant le déploiement
• Deployer « latest » ou « prod » peut générer un code non-testé en
production après un événement de dimensionnement horizontal
• Utiliser des balises « immuables » uniques pour le déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
« »
« »
Balisage de conteneur d’images pour le déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Génération lance la nouvelle « latest » image
Balisage de conteneur d’images pour le déploiement
« »
Image: sha256@11111... (« latest » )
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Dimensionnement du service, lancement de nouvelles tâches
Balisage de conteneur d’images pour le déploiement
« »
Image: sha256@11111... (« latest » )
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Déploiement à l’aide de balisage immuable
{
"name": "sample-app",
"image": "amazon/amazon-ecs-
sample@sha256:3e39d933b1d948c92309bb583b5a1f3d28f0119e1551ca1fe538ba414a41af48d"
}
{
"name": "sample-app",
"image": "amazon/amazon-ecs-sample:build-b2085490-359f-4eaf-8970-6d1e26c354f0"
}
SHA256 Digest
Build ID
Balisage de conteneur d’images pour le déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Calcul des balisages immuables lors de la génération
SHA256 Digest
export IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' my_image:$IMAGE_TAG
Example Result:
amazon/amazon-ecs-sample@sha256:3e39d933b...
Build ID
export IMAGE_TAG=build-`echo $CODEBUILD_BUILD_ID | awk –F":" ‘{print $2}'`
Example Result:
build-b2085490-359f-4eaf-8970-6d1e26c354f0
Balisage de conteneur d’images pour le déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
« »
« »)
Balisage de conteneur d’images pour le déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
La génération lance un nouveau balisage d’images avec un nouvel ID de génération
Balisage de conteneur d’images pour le déploiement
« »
« »)
Image: sha256@11111... (« build-22222 »)
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Dimensionnement du service, lancement de nouvelles tâches
Balisage de conteneur d’images pour le déploiement
« »
« »)
Image: sha256@11111... (« build-22222 »)
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Déploiement des mises à jour des definition des tâches, remplacement des tâches
Balisage de conteneur d’images pour le déploiement
Image: balisage « build-22222 »
« »)
Image: sha256@11111... (« build-22222 »)
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
1. Déploiement automatisé dans des environments de simulation
2. Déploiement en toute sécurité vers la production sans impact sur le
client
3. Livraison plus rapide : augmenter la fréquence de déploiement et réduire
le délai d’exécution et le taux d’échec des mises à jour
Les objectifs du déploiement continu
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
Déploiement
continu
Intégration
continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Approches au développement d’applications
modernes
• Accelérer la livraison de nouveaux services de qualité supérieure CI/CD
• Simplifier l’environnement de gestion technologies sans serveur
• Réduire des incidences de mises à jour de code architectures de microservices
• Automatiser le déploiement modélisant les applications et l’infrastructure en tant que
code
• Améliorer la qualité de l’information utile (insights) avec des ressources et des
applications l’observabilité
• Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
Infrastructure
comme code
Déploiement
continu
Intégration
continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les objectifs de l’infrastructure en tant que code
Source Création Test Déploiement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
1. Modéliser et prédire les mises à jour de l’infrastructure
2. Lancer les mises à jour d’infrastructure en utilisant les mêmes outils que
les mises à jour de code
3. Reproduire l’environment de production et tester en continu dans
l’environnement de simulation
Les objectifs de l’infrastructure en tant que code
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Des tests en continu avec l’infrastructure comme code
Validation d’artéfact
(Étape de génération)
• Tests d’unité
• Analyses statiques
• Dépendances et
environnements simulés
• Analyses d’images de
vulnérabilité
Validation d’environnement
(Étape de tests)
• Tests d'intégration sur des
dépendances réelles et des
environnements réels
• Tests de charge
• Tests de pénétration
• Surveillance pour tester
l'impact des déploiements
sur l'environnement
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Publication d’infrastructures en tant que code
Branche
« maître »
Préparation du
modèle
Créer et exécuter
un ensemble de
mises à jour
Créer et exécuter
un ensemble de
mises à jour
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Environnements de fonctions modèles avec AWS
Serverless Application Model (SAM)
https://aws.amazon.com/serverless/sam/
• Un cadre open source pour le développement
d’applications sans serveur sur AWS
• Syntaxe sténographie pour exprimer les fonctions,
les APIs, les bases de données et les applications de
sources d’événements
• Transforme et dimensionne la syntaxe SAM en
syntaxte AWS CloudFormation syntax lors du
déploiement
• Prend en charge tous types de ressources AWS
CloudFormation
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle de capacités SAM
• Possibilité d’intégrer d’autres ressources CloudFormation non-SAM au
modèle
• Exemples: S3, Amazon Kinesis, Step Functions
• Prend en charge l’utilisation des paramètres, de mappages,
de Outputs, etc.
• Prend en charge les fonctions intrinsèques
• Possibilité d’utilizer ImportValue
(à l’exceptions des attributs RestApiId, Policies et StageName)
• YAML ou JSON
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle SAM
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: src/
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
Table:
Type: AWS::Serverless::SimpleTable
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle SAM
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs6.10
CodeUri: src/
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
Table:
Type: AWS::Serverless::SimpleTable
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
SAM CLI pour le package et le déploiement de
modèles SAM
pip install --user aws-sam-cli
sam init
sam build
sam package
sam deploy
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle d’environnement de conteneurs avec AWS
Cloud Development Kit (CDK)
Aperçu
• Un cadre open source pour définir l'infrastructure
cloud en TypeScript
• Fournit une bibliothèque de types de ressources de
niveau supérieur (classes «construct») intégrant les
meilleures pratiques AWS intégrées par défaut,
présentées sous forme de modules npm
• Provisionne des ressources avec CloudFormation
• Prend en charge tous types de ressources
CloudFormation
AWS
CDK
https://awslabs.github.io/aws-cdk
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle CDK
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class BonjourFargate extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new BonjourFargate(app, 'Bonjour');
app.run();
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle CDK
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class BonjourFargate extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new BonjourFargate(app, 'Bonjour');
app.run();
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle CDK
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import cdk = require('@aws-cdk/cdk');
class BonjourFargate extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 });
const cluster = new ecs.Cluster(this, 'Cluster', { vpc });
new ecs.LoadBalancedFargateService(
this, "FargateService", {
cluster,
image: ecs.DockerHub.image("amazon/amazon-ecs-sample"),
});
}
}
const app = new cdk.App();
new BonjourFargate(app, 'Bonjour');
app.run();
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèle CDK
applets:
MyHelloWorldService:
type: @aws-cdk/aws-ecs:LoadBalancedFargateServiceApplet
properties:
image: 'amazon/amazon-ecs-sample'
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Modèles de pipelines avec AWS CDK
• Minimiser le copier-coller en utilisant un langage orienté vers l’objet
• Définir la forme du pipeline de microservices dans une classe, puis la
réutiliser sur de nombreuses pipelines
• La CDK comprend de nombreuses constructions de haut niveau pour la
modélisation d'un AWS CodePipeline, y compris la configuration
automatique des stratégies des rôles IAM.
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
CDK pipelines : construire
export class MyMicroservicePipeline extends cdk.Construct {
constructor(parent: cdk.Construct, name: string, props: MyMicroservicePipelineProps)
{
super(parent, name);
const pipeline = new codepipeline.Pipeline(this, 'Pipeline', {
pipelineName: props.serviceName,
});
const githubAccessToken = new cdk.SecretParameter(this, 'GitHubToken',
{ ssmParameter: 'GitHubToken' });
new codepipeline.GitHubSourceAction(this, 'GitHubSource', {
stage: pipeline.addStage('Source'),
owner: 'myorg',
repo: props.serviceName,
oauthToken: githubAccessToken.value
});
…
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
CDK pipelines : hierarchiser
import cdk = require('@aws-cdk/cdk');
import { MyMicroservicePipeline } from './pipeline';
class MyMicroservicePipelinesStack extends cdk.Stack {
constructor(parent: cdk.App, name: string, props?: cdk.StackProps) {
super(parent, name, props);
new MyMicroservicePipeline(this, 'Pipeline1', { 'serviceName': 'Microservice1' });
new MyMicroservicePipeline(this, 'Pipeline2', { 'serviceName': 'Microservice2' });
new MyMicroservicePipeline(this, 'Pipeline3', { 'serviceName': 'Microservice3' });
new MyMicroservicePipeline(this, 'Pipeline4', { 'serviceName': 'Microservice4' });
}
}
const app = new cdk.App();
new MyMicroservicePipelinesStack(app, 'MyMicroservicePipelines');
app.run();
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
CDK CLI pour synthétiser et déployer des modèles
CDK
npm install -g aws-cdk
cdk init app --language typescript
cdk synth
cdk deploy
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
1. Modéliser et prédire les mises à jour de l’infrastructure
2. Lancer les mises à jour d’infrastructure en utilisant les mêmes outils que
les mises à jour de code
3. Reproduire l’environment de production et tester en continu dans
l’environnement de simulation
Les objectifs de l’infrastructure en tant que code
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
Infrastructure
comme code
Déploiement
continu
Intégration
continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Les piliers de la livraison d’applications modernes
Infrastructure
comme code
Déploiement
continu
Intégration
continue
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés.
S O M M E T D U
S E C T E U R
P U B L I C
Merci!
© 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés,
S O M M E T D U
S E C T E U R
P U B L I C
Leo Zhadanovsky
Architecte principal de solutions
Amazon Web Services

Contenu connexe

Tendances

DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOpsRed Gate Software
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with JenkinsMartin Málek
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with JenkinsJadson Santos
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container securityVolodymyr Shynkar
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...Yevgeniy Brikman
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Simplilearn
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterAmazon Web Services
 
Azure Bicep for Developers
Azure Bicep for DevelopersAzure Bicep for Developers
Azure Bicep for DevelopersMoaid Hathot
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 

Tendances (20)

DevOps 101 - an Introduction to DevOps
DevOps 101  - an Introduction to DevOpsDevOps 101  - an Introduction to DevOps
DevOps 101 - an Introduction to DevOps
 
DevSecOps
DevSecOpsDevSecOps
DevSecOps
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Devops
DevopsDevops
Devops
 
DevOps
DevOpsDevOps
DevOps
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
CI and CD with Jenkins
CI and CD with JenkinsCI and CD with Jenkins
CI and CD with Jenkins
 
Continuous Delivery with Jenkins
Continuous Delivery with JenkinsContinuous Delivery with Jenkins
Continuous Delivery with Jenkins
 
DevSecOps Jenkins Pipeline -Security
DevSecOps Jenkins Pipeline -SecurityDevSecOps Jenkins Pipeline -Security
DevSecOps Jenkins Pipeline -Security
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container security
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
Introduction To DevOps | Devops Tutorial For Beginners | DevOps Training For ...
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
DevOps Foundation
DevOps FoundationDevOps Foundation
DevOps Foundation
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Azure Bicep for Developers
Azure Bicep for DevelopersAzure Bicep for Developers
Azure Bicep for Developers
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 

Similaire à Intégration et livraison continues des bonnes pratiques de conception d'applications modernes

Des monolithes aux microservices
Des monolithes aux microservicesDes monolithes aux microservices
Des monolithes aux microservicesAmazon Web Services
 
Adoption du cloud : il faut tout un village
Adoption du cloud : il faut tout un villageAdoption du cloud : il faut tout un village
Adoption du cloud : il faut tout un villageAmazon Web Services
 
Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...
Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...
Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...Amazon Web Services
 
Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS
Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS
Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS Amazon Web Services
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaJulien Chable
 
VMware et AWS : la voie la plus rapide vers le cloud hybride
VMware et AWS : la voie la plus rapide vers le cloud hybride VMware et AWS : la voie la plus rapide vers le cloud hybride
VMware et AWS : la voie la plus rapide vers le cloud hybride Amazon Web Services
 
Cwin16 - Paris - dev ops
Cwin16 - Paris - dev opsCwin16 - Paris - dev ops
Cwin16 - Paris - dev opsCapgemini
 
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing ZoneCréer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing ZoneAmazon Web Services
 
Realize the Value of Your Microsoft Investments - French Version - Transforma...
Realize the Value of Your Microsoft Investments - French Version - Transforma...Realize the Value of Your Microsoft Investments - French Version - Transforma...
Realize the Value of Your Microsoft Investments - French Version - Transforma...Amazon Web Services
 
De la stratégie à la réalité : de meilleures décisions avec les données
De la stratégie à la réalité : de meilleures décisions avec les donnéesDe la stratégie à la réalité : de meilleures décisions avec les données
De la stratégie à la réalité : de meilleures décisions avec les donnéesAmazon Web Services
 
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hecPpt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hecYves LE CLEACH
 
Afterworks MS 2017 - Développement avec Visual Studio et .NET Core
Afterworks MS 2017 - Développement avec Visual Studio et .NET CoreAfterworks MS 2017 - Développement avec Visual Studio et .NET Core
Afterworks MS 2017 - Développement avec Visual Studio et .NET CoreJulien Chable
 
Journée Agences Web - Scénario Présence en ligne
Journée Agences Web - Scénario Présence en ligneJournée Agences Web - Scénario Présence en ligne
Journée Agences Web - Scénario Présence en ligneChristophe Lauer
 
2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...
2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...
2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...Club Alliances
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Stéphane Traumat
 
Machine Learning à la périphérie
Machine Learning à la périphérieMachine Learning à la périphérie
Machine Learning à la périphérieAmazon Web Services
 
Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services PlatformGregory Renard
 

Similaire à Intégration et livraison continues des bonnes pratiques de conception d'applications modernes (20)

Des monolithes aux microservices
Des monolithes aux microservicesDes monolithes aux microservices
Des monolithes aux microservices
 
AWSome Day à Québec - 2019
AWSome Day à Québec - 2019AWSome Day à Québec - 2019
AWSome Day à Québec - 2019
 
Adoption du cloud : il faut tout un village
Adoption du cloud : il faut tout un villageAdoption du cloud : il faut tout un village
Adoption du cloud : il faut tout un village
 
Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...
Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...
Migrer et faire fonctionner les applications Microsoft dans AWS, Outils et se...
 
QC - AWSome Day - Keynote.pdf
QC - AWSome Day - Keynote.pdfQC - AWSome Day - Keynote.pdf
QC - AWSome Day - Keynote.pdf
 
Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS
Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS
Réinventer SAP on AWS : évolution et simplification des opérations SAP sur AWS
 
Visual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@NoumeaVisual studio 2017 Launch keynote - Afterworks@Noumea
Visual studio 2017 Launch keynote - Afterworks@Noumea
 
VMware et AWS : la voie la plus rapide vers le cloud hybride
VMware et AWS : la voie la plus rapide vers le cloud hybride VMware et AWS : la voie la plus rapide vers le cloud hybride
VMware et AWS : la voie la plus rapide vers le cloud hybride
 
Cwin16 - Paris - dev ops
Cwin16 - Paris - dev opsCwin16 - Paris - dev ops
Cwin16 - Paris - dev ops
 
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing ZoneCréer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
Créer une architecture de sécurité et de gouvernance pour votre AWS Landing Zone
 
Realize the Value of Your Microsoft Investments - French Version - Transforma...
Realize the Value of Your Microsoft Investments - French Version - Transforma...Realize the Value of Your Microsoft Investments - French Version - Transforma...
Realize the Value of Your Microsoft Investments - French Version - Transforma...
 
De la stratégie à la réalité : de meilleures décisions avec les données
De la stratégie à la réalité : de meilleures décisions avec les donnéesDe la stratégie à la réalité : de meilleures décisions avec les données
De la stratégie à la réalité : de meilleures décisions avec les données
 
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hecPpt 2   a jeanpierre-yle-cleach-hec-05022015_sent2hec
Ppt 2 a jeanpierre-yle-cleach-hec-05022015_sent2hec
 
Ws io t dotscale juin 2015 - introduction bluemix
Ws io t dotscale   juin 2015 - introduction bluemixWs io t dotscale   juin 2015 - introduction bluemix
Ws io t dotscale juin 2015 - introduction bluemix
 
Afterworks MS 2017 - Développement avec Visual Studio et .NET Core
Afterworks MS 2017 - Développement avec Visual Studio et .NET CoreAfterworks MS 2017 - Développement avec Visual Studio et .NET Core
Afterworks MS 2017 - Développement avec Visual Studio et .NET Core
 
Journée Agences Web - Scénario Présence en ligne
Journée Agences Web - Scénario Présence en ligneJournée Agences Web - Scénario Présence en ligne
Journée Agences Web - Scénario Présence en ligne
 
2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...
2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...
2011.11.22 - Editeurs, concrétisez votre Offre SaaS avec Aspaway - 8ème Forum...
 
Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?Comment integrer les applications de votre Systeme Information entre elles ?
Comment integrer les applications de votre Systeme Information entre elles ?
 
Machine Learning à la périphérie
Machine Learning à la périphérieMachine Learning à la périphérie
Machine Learning à la périphérie
 
Azure Services Platform
Azure Services PlatformAzure Services Platform
Azure Services Platform
 

Plus de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Plus de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Intégration et livraison continues des bonnes pratiques de conception d'applications modernes

  • 1. S O M M E T D U S E C T E U R P U B L I C O T T A W A
  • 2. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Intégration et livraison continues (CI/CD) : Les meilleures pratiques pour la création d’applications modernes Leo Zhadanovsky Architecte principal de solutions Amazon Web Services M A D 3 0 1
  • 3. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Au programme Les bases de CI/CD CI/CD pour les applications modernes Intégration continue Déploiement continu Infrastructure, comme code
  • 4. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C
  • 5. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Étapes du processus de publication Source Création Test Déploiement • Intégration des tests aux systèmes • Téléchargement des tests • UI tests • Tests de sécurité • Vérifier le référentiel source tel que les fichiers .java • Nouvel examen de code par les pairs • Compilation du code • Tests d’unités • Vérifications de styles • Création d’images de conteneur et le package de déploiement des fonctionalités • Déploiement vers la publication d’environnements • Analyse et surveillance de code pour repérer rapidement les bogues Source • Vérifier le référentiel source tel que les fichiers .java • Nouvel examen de code par les pairs Création • Compilation du code • Tests d’unités • Vérifications de styles • Création d’images de conteneur et le package de déploiement des fonctionalités Test • Intégration des tests aux systèmes • Téléchargement des tests • UI tests • Tests de sécurité Déploiement
  • 6. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Étapes du processus de publication Source Création Test Déploiement
  • 7. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS Code Services Source Création Test Déploiement Analyse, déboguage et surveillance AWS CodeBuild + Third Party Étapes de livraison de logiciels: AWS CodeCommit AWS CodeBuild AWS CodeDeploy AWS CodePipeline AWS CodeStar AWS X-Ray Amazon CloudWatch
  • 8. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C
  • 9. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Approches au développement d’applications modernes • Accelérer la livraison de nouveaux services de qualité supérieure • Simplifier l’environnement de gestion • Réduire des incidences de mises à jour de code • Automatiser le déploiement • Améliorer la qualité de l’information utile (insights) avec des ressources et des applications • Protéger les clients et leur entreprise
  • 10. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Approches au développement d’applications modernes • Accelérer la livraison de nouveaux services de qualité supérieure CI/CD • Simplifier l’environnement de gestion technologies sans serveur • Réduire des incidences de mises à jour de code architectures de microservices • Automatiser le déploiement modélisant les applications et l’infrastructure en tant que code • Améliorer la qualité de l’information utile (insights) avec des ressources et des applications l’observabilité • Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
  • 11. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Approches au développement d’applications modernes • Accelérer la livraison de nouveaux services de qualité supérieure CI/CD • Simplifier l’environnement de gestion technologies sans serveur • Réduire des incidences de mises à jour de code architectures de microservices • Automatiser le déploiement modélisant les applications et l’infrastructure en tant que code • Améliorer la qualité de l’information utile (insights) avec des ressources et des applications l’observabilité • Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
  • 12. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les effets de CI/CD Source: 2018 DORA State of DevOps Report
  • 13. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les effets de CI/CD Source: 2018 DORA State of DevOps Report Fréquence de déploiement Hebdomadaire, mensuel À l’heure, au jour
  • 14. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les effets de CI/CD Source: 2018 DORA State of DevOps Report Fréquence de déploiment Hebdomadaire, mensuel À l’heure, au jour Délai de mise à jour De un à six mois De un à sept jours
  • 15. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les effets de CI/CD Source: 2018 DORA State of DevOps Report Fréquence de déploiment Hebdomadaire, mensuel À l’heure, au jour Délai de mise à jour De un à six mois De un à sept jours Taux d’échec Entre 46 et 60 % Entre 0 et 15 %
  • 16. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les effets du CI/CD Source: 2018 DORA State of DevOps Report 48 % des équipes TI Fréquence de déploiment Hebdomadaire, mensuel À l’heure, au jour Délai de mise à jour De un à six mois De un à sept jours Taux d’échec Entre 46 et 60 % Entre 0 et 15 %
  • 17. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes
  • 18. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes Intégration continue
  • 19. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les objectifs de l’intégration continue Source Création Test Déploiement
  • 20. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 1. Lancer automatiquement une nouvelle version lors de l'enregistrement d'un nouveau code 2. Développer et tester le code dans un environnement cohérent et reproductible 3. Avoir un artéfact prêt en permanence pour le déploiement 4. Fermer continuellement la boucle de rétroaction en cas d'échec Les objectifs de l’intégration continue
  • 21. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodePipeline • Automatisez des mises à jour rapides et fiables en continu • Modéliser and visualiser le processus de livraison de logiciels • Créer, tester et déployer votre code chaque fois que celui-ci est modifié • Permettre l’intégration à des services tiers et à AWS
  • 22. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodePipeline : sources prises en charge Choisir une branche AWS CodeCommit GitHub Choisir un objet ou un dossier Amazon Simple Storage Service (Amazon S3) Lancement automatique et extraction de la dernière version du référentiel
  • 23. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodePipeline : sources prises en charge AWS CodePipeline utilise maintenant Amazon Elastic Container Registry (Amazon ECR) comme source de pipeline
  • 24. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodePipeline : sources prises en charge EC2 AWS CodeDeploy AWS Elastic GitHub Choisir un objet ou un dossier Amazon S3 Lancement automatique et extraction de la dernière version du référentiel Choisir le balisage du Docker Amazon ECR
  • 25. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C EC2 AWS CodeDeploy AWS Elastic Beanstalk AWS OpsWorks Stacks Conteneurs AWS CodeDeploy Amazon ECS Amazon ECS (Bleu/vert) Amazon ECS Fargate Serverless AWS CodeDeploy CloudFormation (SAM) Lambda AWS CodePipeline : sources prises en charge Lancement automatique et extraction de la dernière version du référentiel
  • 26. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodePipeline : ECR action source Code source: Branche « maître » Référentiel ECR: Balise de « publication »
  • 27. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodePipeline : Modifications prises en charge Lancement automatique Amazon CloudWatch Events • Planifiés (publication en soirée) • AWS Health events (Plateforme Fargate mise hors service) Disponible avec CloudWatch Events, API, SDK, CLI, et AWS CloudFormation Webhooks • DockerHub • Quay • Artifactory Disponible avec CodePipeline API, SDK, CLI, et CloudFormation
  • 28. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Approches au développement d’applications modernes • Accelérer la livraison de nouveaux services de qualité supérieure CI/CD • Simplifier l’environnement de gestion technologies sans serveur • Réduire des incidences de mises à jour de code architectures de microservices • Automatiser le déploiement modélisant les applications et l’infrastructure en tant que code • Améliorer la qualité de l’information utile (insights) avec des ressources et des applications l’observabilité • Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
  • 29. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Conteneurs sans serveur De longue date Résume le système d’exploitation Orchestration prise en charge Dimensionnement des clusters pris en charge Fonctions sans serveur En réponse aux événements Plusieurs executions de langages Intégration des sources de données Aucune gestion de serveurs Approches au développement d’applications modernes
  • 30. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeBuild • Service d’intégration entièrement géré qui compile votre code source, exécute des tests et produit des packages logiciels • Dimensionne et traite en continu plusieurs générations à la fois • Aucune gestion de serveurs de génération • Paiement à la minute, uniquement pour les ressources utilisées • Surveillance avec CloudWatch Events
  • 31. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeBuild • Chaque génération fonctionne dans un nouveau conteneur Docker pour un environnement cohérent et immuable • Les Docker et AWS CLI sont installés dans chaque image CodeBuild • Des environments de génération personnalisés au travers l’utilisation d’images Docker
  • 32. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeBuild : Lambda création de la génération version: 0.2 phases: build: commands: - npm ci - npm test - > aws cloudformation package --template-file template.yml --output-template template-output.yml --s3_bucket $BUCKET artifacts: type: zip files: - template-output.yml
  • 33. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeBuild : Docker spécification de la génération version: 0.2 phases: build: commands: - $(aws ecr get-login --no-include-email) - docker build -t $IMAGE_REPO_NAME:$IMAGE_TAG . - docker tag $IMAGE_REPO_NAME:$IMAGE_TAG $ECR_REPO:$IMAGE_TAG - docker push $ECR_REPO:$IMAGE_TAG
  • 34. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 1. Lancer automatiquement une nouvelle version lors de l'enregistrement d'un nouveau code 2. Développer et tester le code dans un environnement cohérent et reproductible 3. Avoir un artéfact prêt en permanence pour le déploiement 4. Fermer continuellement la boucle de rétroaction en cas d'échec Les objectifs de l’intégration continue
  • 35. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes Intégration continue
  • 36. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes Déploiement continu Intégration continue
  • 37. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les objectifs du déploiement continu Source Création Test Déploiement
  • 38. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 1. Déploiement automatisé dans des environments de simulation 2. Déploiement en toute sécurité vers la production sans impact sur le client 3. Livraison plus rapide : augmenter la fréquence de déploiement et réduire le délai d’exécution et le taux d’échec des mises à jour Les objectifs du déploiement continu
  • 39. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy • Déploiements automatisés des instances et Lambda • Gestion des mises à jour complexes des applications • Limite le temps d’arrêt lors du déploiement d’applications • Arrêt et annulation automatique en cas d’échec Déploiement sur Amazon EC2, Lambda, ou serveurs sur site
  • 40. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.P U B L I C S E C T O R S U M M I T CodeDeploy - EC2 déploiement version: 0.0 os: linux files: - source: / destination: /var/www/html permissions: - object: /var/www/html pattern: “*.html” owner: root group: root mode: 755 hooks: ApplicationStop: - location: scripts/deregister_from_elb.sh BeforeInstall: - location: scripts/install_dependencies.sh ApplicationStart: - location: scripts/start_httpd.sh ValidateService: - location: scripts/test_site.sh - location: scripts/register_with_elb.sh
  • 41. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.P U B L I C S E C T O R S U M M I T CodeDeploy - EC2 déploiement • Enlever/ajouter des instances sur ELB • Installer des packages dépendants • Lancer Apache • Confirmer le déploiment • Et plus encore! • Envoyer les fichiers d'application vers un répertoire et les fichiers de configuration vers un autre • Définir les contrôles d’accès sur les repertoires et fichiers version: 0.0 os: linux files: - source: / destination: /var/www/html permissions: - object: /var/www/html pattern: “*.html” owner: root group: root mode: 755 hooks: ApplicationStop: - location: scripts/deregister_from_elb.sh BeforeInstall: - location: scripts/install_dependencies.sh ApplicationStart: - location: scripts/start_httpd.sh ValidateService: - location: scripts/test_site.sh - location: scripts/register_with_elb.sh
  • 42. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C v2 v2 v2 v2 v2 v2 Un à la fois La moitié à la fois Tous, simultanément v2 v2 v2 v1 v1 v1 v2 v1 v1 v1 v1 v1 Agent Groupe de déploiement Dev OU Groupe de déploiement Prod Déterminer la vitesse et le groupe de déploiement Agent Agent Agent Agent Agent Agent Agent
  • 43. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy – déploiements Lambda • Rediriger le trafic entrant à l’aide des alias pondérés par la fonction Lambda • Choisir canary (déplacer 10 % du trafic pendant 10 minutes, puis déplacer la balance) ou linéaire (déplacer 10 % du trafic à chaque 10 minutes) • Effectuer des tests à chaque étape du déploiement avec les crochets de validation • Annuler en quelques secondes en cas d’échec ou d’alarmes • Contrôler et surveiller le déploiement et l’historique avec CloudWatch via la console, l’API, les notifications Amazon Simple Notification Service (Amazon SNS) et les CloudWatch Events
  • 44. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy - déploiements Lambda Activer dans votre modèle d’applications sans serveur Resources: GetFunction: Type: AWS::Serverless::Function Properties: DeploymentPreference: Type: Canary10Percent10Minutes Alarms: - !Ref ErrorsAlarm Hooks: PreTraffic: !Ref PreTrafficHook
  • 45. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy - déploiement canary Lambda 100 %
  • 46. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 100% Lancer le crochet contre la v2 du code avant qu’il ne reçoive du trafic 0% AWS CodeDeploy - déploiement canary Lambda
  • 47. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 90% Patientez 10 minutes, annuler en cas d’alarmes 10% AWS CodeDeploy - déploiement canary Lambda
  • 48. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 0% Complétez le déploiement 100% AWS CodeDeploy - déploiement canary Lambda
  • 49. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy AWS CodeDeploy permet le déploiement bleu/vert sur AWS Fargate et Amazon Elastic Container Service (ECS)
  • 50. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy - ECS déploiement bleu/vert • Provisionne les tâches vertes, suivi du dimensionnement pour l’équilibrage des charges • Vérification des crochets permettent de tester à chaque étape du déploiement • Annulation et retour vers les tâches bleues en quelques secondes en cas d’échec ou d’alarmes CloudWatch • Contrôler et surveiller le déploiement et l’historique via la console, l’API, les notifications Amazon SNS et les CloudWatch Events • Utiliser l'action de déploiement AWS CodeDeploy-ECS dans AWS CodePipeline ou la commande « aws ecs deploy » dans Jenkins
  • 51. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy - ECS spécifications d’applications version: 1.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: - TaskDefinition: "my_task_definition:8" LoadBalancerInfos: - ContainerName: "SampleApp" ContainerPort: 80 Hooks: - BeforeInstall: "LambdaFunctionToExecuteAnythingBeforeNewRevisionInstalltion" - AfterInstall: "LambdaFunctionToExecuteAnythingAfterNewRevisionInstallation" - AfterAllowTestTraffic: "LambdaFunctionToValidateAfterTestTrafficShift" - BeforeAllowTraffic: "LambdaFunctionToValidateBeforeTrafficShift" - AfterAllowTraffic: "LambdaFunctionToValidateAfterTrafficShift"
  • 52. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C AWS CodeDeploy - ECS déploiement bleu/vert 100 % du trafic de production
  • 53. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Test de l’écoute du trafic (port 9000) Groupe cible 2 AWS CodeDeploy - ECS déploiement bleu/vert 100 % du trafic de production
  • 54. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Test de l’écoute du trafic (port 9000) Groupe cible 2 AWS CodeDeploy - ECS déploiement bleu/vert 100 % du trafic de production Provisions des tâches « vertes » Tâches vertes: v2 du code
  • 55. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 100% Test trafic Exécuter le crochet au point du test avant que les tâches vertes ne reçoivent du trafic AWS CodeDeploy - ECS déploiement bleu/vert Test de l’écoute du trafic (port 9000) Groupe cible 2 100 % du trafic de production Tâches vertes: v2 du code
  • 56. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Rediriger le trafic vers les tâches vertes, annuler en cas d’alarme AWS CodeDeploy - ECS déploiement bleu/vert 100% Test trafic Test de l’écoute du trafic (port 9000) Groupe cible 2 0 % du trafic de production Tâches vertes: v2 du code
  • 57. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Vider les tâches « bleues » AWS CodeDeploy - ECS déploiement bleu/vert 100% Test trafic Test de l’écoute du trafic (port 9000) Groupe cible 2 Tâches vertes: v2 du code
  • 58. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Balisage de conteneur d’images pour le déploiement • Le balisage de Docker est résolu lorsque chaque conteneur est lancé et pas seulement durant le déploiement • Deployer « latest » ou « prod » peut générer un code non-testé en production après un événement de dimensionnement horizontal • Utiliser des balises « immuables » uniques pour le déploiement
  • 59. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C « » « » Balisage de conteneur d’images pour le déploiement
  • 60. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Génération lance la nouvelle « latest » image Balisage de conteneur d’images pour le déploiement « » Image: sha256@11111... (« latest » )
  • 61. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Dimensionnement du service, lancement de nouvelles tâches Balisage de conteneur d’images pour le déploiement « » Image: sha256@11111... (« latest » )
  • 62. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Déploiement à l’aide de balisage immuable { "name": "sample-app", "image": "amazon/amazon-ecs- sample@sha256:3e39d933b1d948c92309bb583b5a1f3d28f0119e1551ca1fe538ba414a41af48d" } { "name": "sample-app", "image": "amazon/amazon-ecs-sample:build-b2085490-359f-4eaf-8970-6d1e26c354f0" } SHA256 Digest Build ID Balisage de conteneur d’images pour le déploiement
  • 63. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Calcul des balisages immuables lors de la génération SHA256 Digest export IMAGE_URI=`docker inspect --format='{{index .RepoDigests 0}}' my_image:$IMAGE_TAG Example Result: amazon/amazon-ecs-sample@sha256:3e39d933b... Build ID export IMAGE_TAG=build-`echo $CODEBUILD_BUILD_ID | awk –F":" ‘{print $2}'` Example Result: build-b2085490-359f-4eaf-8970-6d1e26c354f0 Balisage de conteneur d’images pour le déploiement
  • 64. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C « » « ») Balisage de conteneur d’images pour le déploiement
  • 65. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C La génération lance un nouveau balisage d’images avec un nouvel ID de génération Balisage de conteneur d’images pour le déploiement « » « ») Image: sha256@11111... (« build-22222 »)
  • 66. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Dimensionnement du service, lancement de nouvelles tâches Balisage de conteneur d’images pour le déploiement « » « ») Image: sha256@11111... (« build-22222 »)
  • 67. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Déploiement des mises à jour des definition des tâches, remplacement des tâches Balisage de conteneur d’images pour le déploiement Image: balisage « build-22222 » « ») Image: sha256@11111... (« build-22222 »)
  • 68. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 1. Déploiement automatisé dans des environments de simulation 2. Déploiement en toute sécurité vers la production sans impact sur le client 3. Livraison plus rapide : augmenter la fréquence de déploiement et réduire le délai d’exécution et le taux d’échec des mises à jour Les objectifs du déploiement continu
  • 69. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes Déploiement continu Intégration continue
  • 70. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Approches au développement d’applications modernes • Accelérer la livraison de nouveaux services de qualité supérieure CI/CD • Simplifier l’environnement de gestion technologies sans serveur • Réduire des incidences de mises à jour de code architectures de microservices • Automatiser le déploiement modélisant les applications et l’infrastructure en tant que code • Améliorer la qualité de l’information utile (insights) avec des ressources et des applications l’observabilité • Protéger les clients et leur entreprise sécurité et de conformité de bout en bout
  • 71. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes Infrastructure comme code Déploiement continu Intégration continue
  • 72. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les objectifs de l’infrastructure en tant que code Source Création Test Déploiement
  • 73. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 1. Modéliser et prédire les mises à jour de l’infrastructure 2. Lancer les mises à jour d’infrastructure en utilisant les mêmes outils que les mises à jour de code 3. Reproduire l’environment de production et tester en continu dans l’environnement de simulation Les objectifs de l’infrastructure en tant que code
  • 74. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Des tests en continu avec l’infrastructure comme code Validation d’artéfact (Étape de génération) • Tests d’unité • Analyses statiques • Dépendances et environnements simulés • Analyses d’images de vulnérabilité Validation d’environnement (Étape de tests) • Tests d'intégration sur des dépendances réelles et des environnements réels • Tests de charge • Tests de pénétration • Surveillance pour tester l'impact des déploiements sur l'environnement
  • 75. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Publication d’infrastructures en tant que code Branche « maître » Préparation du modèle Créer et exécuter un ensemble de mises à jour Créer et exécuter un ensemble de mises à jour
  • 76. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Environnements de fonctions modèles avec AWS Serverless Application Model (SAM) https://aws.amazon.com/serverless/sam/ • Un cadre open source pour le développement d’applications sans serveur sur AWS • Syntaxe sténographie pour exprimer les fonctions, les APIs, les bases de données et les applications de sources d’événements • Transforme et dimensionne la syntaxe SAM en syntaxte AWS CloudFormation syntax lors du déploiement • Prend en charge tous types de ressources AWS CloudFormation
  • 77. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle de capacités SAM • Possibilité d’intégrer d’autres ressources CloudFormation non-SAM au modèle • Exemples: S3, Amazon Kinesis, Step Functions • Prend en charge l’utilisation des paramètres, de mappages, de Outputs, etc. • Prend en charge les fonctions intrinsèques • Possibilité d’utilizer ImportValue (à l’exceptions des attributs RestApiId, Policies et StageName) • YAML ou JSON
  • 78. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle SAM AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs6.10 CodeUri: src/ Policies: AmazonDynamoDBReadOnlyAccess Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get Table: Type: AWS::Serverless::SimpleTable
  • 79. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle SAM AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs6.10 CodeUri: src/ Policies: AmazonDynamoDBReadOnlyAccess Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get Table: Type: AWS::Serverless::SimpleTable
  • 80. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C SAM CLI pour le package et le déploiement de modèles SAM pip install --user aws-sam-cli sam init sam build sam package sam deploy
  • 81. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle d’environnement de conteneurs avec AWS Cloud Development Kit (CDK) Aperçu • Un cadre open source pour définir l'infrastructure cloud en TypeScript • Fournit une bibliothèque de types de ressources de niveau supérieur (classes «construct») intégrant les meilleures pratiques AWS intégrées par défaut, présentées sous forme de modules npm • Provisionne des ressources avec CloudFormation • Prend en charge tous types de ressources CloudFormation AWS CDK https://awslabs.github.io/aws-cdk
  • 82. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle CDK import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class BonjourFargate extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new BonjourFargate(app, 'Bonjour'); app.run();
  • 83. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle CDK import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class BonjourFargate extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new BonjourFargate(app, 'Bonjour'); app.run();
  • 84. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle CDK import ec2 = require('@aws-cdk/aws-ec2'); import ecs = require('@aws-cdk/aws-ecs'); import cdk = require('@aws-cdk/cdk'); class BonjourFargate extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); new ecs.LoadBalancedFargateService( this, "FargateService", { cluster, image: ecs.DockerHub.image("amazon/amazon-ecs-sample"), }); } } const app = new cdk.App(); new BonjourFargate(app, 'Bonjour'); app.run();
  • 85. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèle CDK applets: MyHelloWorldService: type: @aws-cdk/aws-ecs:LoadBalancedFargateServiceApplet properties: image: 'amazon/amazon-ecs-sample'
  • 86. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Modèles de pipelines avec AWS CDK • Minimiser le copier-coller en utilisant un langage orienté vers l’objet • Définir la forme du pipeline de microservices dans une classe, puis la réutiliser sur de nombreuses pipelines • La CDK comprend de nombreuses constructions de haut niveau pour la modélisation d'un AWS CodePipeline, y compris la configuration automatique des stratégies des rôles IAM.
  • 87. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C CDK pipelines : construire export class MyMicroservicePipeline extends cdk.Construct { constructor(parent: cdk.Construct, name: string, props: MyMicroservicePipelineProps) { super(parent, name); const pipeline = new codepipeline.Pipeline(this, 'Pipeline', { pipelineName: props.serviceName, }); const githubAccessToken = new cdk.SecretParameter(this, 'GitHubToken', { ssmParameter: 'GitHubToken' }); new codepipeline.GitHubSourceAction(this, 'GitHubSource', { stage: pipeline.addStage('Source'), owner: 'myorg', repo: props.serviceName, oauthToken: githubAccessToken.value }); …
  • 88. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C CDK pipelines : hierarchiser import cdk = require('@aws-cdk/cdk'); import { MyMicroservicePipeline } from './pipeline'; class MyMicroservicePipelinesStack extends cdk.Stack { constructor(parent: cdk.App, name: string, props?: cdk.StackProps) { super(parent, name, props); new MyMicroservicePipeline(this, 'Pipeline1', { 'serviceName': 'Microservice1' }); new MyMicroservicePipeline(this, 'Pipeline2', { 'serviceName': 'Microservice2' }); new MyMicroservicePipeline(this, 'Pipeline3', { 'serviceName': 'Microservice3' }); new MyMicroservicePipeline(this, 'Pipeline4', { 'serviceName': 'Microservice4' }); } } const app = new cdk.App(); new MyMicroservicePipelinesStack(app, 'MyMicroservicePipelines'); app.run();
  • 89. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C CDK CLI pour synthétiser et déployer des modèles CDK npm install -g aws-cdk cdk init app --language typescript cdk synth cdk deploy
  • 90. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C 1. Modéliser et prédire les mises à jour de l’infrastructure 2. Lancer les mises à jour d’infrastructure en utilisant les mêmes outils que les mises à jour de code 3. Reproduire l’environment de production et tester en continu dans l’environnement de simulation Les objectifs de l’infrastructure en tant que code
  • 91. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes Infrastructure comme code Déploiement continu Intégration continue
  • 92. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C Les piliers de la livraison d’applications modernes Infrastructure comme code Déploiement continu Intégration continue
  • 93. © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés. S O M M E T D U S E C T E U R P U B L I C
  • 94. Merci! © 2019, Amazon Web Services, Inc. ou ses filiales. Tous droits réservés, S O M M E T D U S E C T E U R P U B L I C Leo Zhadanovsky Architecte principal de solutions Amazon Web Services