Scaling API-first – The story of a global engineering organization
AWS Code{Commit,Deploy,Pipeline} (June 2016)
1. Julien Simon, Principal Technical Evangelist
julsimon@amazon.fr
@julsimon
AWS Code{Commit,Deploy,Pipeline}
2. What to expect from the session
A few slides of AWS Developer tools
Demo of CI/CD pipeline with a web application
This isn’t an introduction to DevOps J
I’m also assuming you’re pretty familiar with EC2,
ELB, ASG, IAM, CloudWatch etc.
4. = 50 million deployments a year
(1.5 deployment every second)
Thousands of teams
× Microservice architecture
× Continuous delivery
× Multiple environments
5. Setting up a delivery pipeline
Testing Staging Production
deploy
deploy
deploy
Source Build
release
AWS CodeDeploy
AWS CodePipeline
AWS
CodeCommit
6. AWS CodeCommit
Use standard Git tools
Scalability, availability, and durability of Amazon S3
Encryption at rest with customer-specific keys
git pull/push CodeCommit
Git objects in
Amazon S3
Git index in
Amazon
DynamoDB
Encryption key
in AWS KMS
SSH or HTTPS
7. AWS CodeDeploy
Easy and reliable deployments (zero downtime)
Scale with ease
Deploy to any server
Test
CodeDeployv1, v2, v3
Production
Dev
8. AWS CodeDeploy and EC2 Instances
• CodeDeploy requires an agent, available for Linux
and Windows (aws / aws-codedeploy-agent)
• CodeDeploy can deploy to:
• On-premise instances (configuration required)
• Existing EC2 instances (configuration required)
• New EC2 instances pre-configured for CodeDeploy thanks to a
CloudFormation template (no configuration required)
• AutoScaling groups
9. Enabling CodeDeploy with User Data
#!/bin/bash -ex
yum install -y aws-cli
cd /home/ec2-user/
wget https://aws-codedeploy-us-
east-1.s3.amazonaws.com/latest/codedeploy-
agent.noarch.rpm
yum -y install codedeploy-agent.noarch.rpm
service codedeploy-agent start
11. AWS CodePipeline
Connect to best-of-breed tools
Accelerate your release process
Consistently verify each release
Build
1) Build
2) Unit test
1) Deploy
2) UI test
Source Beta Production
1) Deploy
2) Perf test
Gamma
1) Deploy canary
2) Deploy region 1
3) Deploy region 2
1) Pull
14. Hands on with the AWS Code services
CodeCommit
source control
CodePipeline
continuous delivery
CodeDeploy
automated deployment
https://blogs.aws.amazon.com/application-management/post/Tx2CIB02ZO05ZII/
Explore-Continuous-Delivery-in-AWS-with-the-Pipeline-Starter-Kit
15. Next steps
DEEP DIVE ON CODE DEPLOY @ AWS re:Invent 2015
AWS CodeDeploy: Automating Your Software Deployments
(DVO306)
LEARN MORE
aws.amazon.com/awscode
AWS CodeDeploy & CodePipeline User Guides
GET STARTED
console.aws.amazon.com J