devops on aws
TRANSCRIPT
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Woody Borraccino, AWS Solutions Architect
May 4, 2016, Stockholm
DevOps on AWS
Deep Dive on Continuous Delivery and the AWS
Developer Tools
What to expect from the session
• The Amazon DevOps story
• New developer tools for everyone:
• AWS CodeCommit
• AWS CodeDeploy
• AWS CodePipeline
• AWS Elastic Beanstalk
What is DevOps?
DevOps = efficiencies that speed up this lifecycle
developers customers
releasetestbuild
plan monitor
delivery pipeline
feedback loop
Software development lifecycle
The Amazon DevOps story
Monolith development lifecycle
developers
releasetestbuild
delivery pipelineapp
Service-Oriented
Architecture (SOA)
Single-purpose
Connected through APIs
Highly decoupled
“Microservices”
Two-pizza teams
Full ownership
Full accountability
Aligned incentives
“DevOps”
Missing tools
developers delivery pipelineservices
???
Self-service
Technology-agnostic
Encourage best
practices
Single-purpose services
Deployment service
No downtime
deployments
Health tracking
Versioned artifacts and
rollbacks
PipelinesContinuous delivery
Automated release
process
Faster and more reliable
releases
>90% of teams
Microservice development lifecycle
developers delivery pipelinesservices
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
releasetestbuild
= 50 million deployments a year
Thousands of teams
× Microservice architecture
× Continuous delivery
× Multiple environments
How can others do this?
Setting up a delivery pipeline
Testing Staging Production
de
plo
y
de
plo
y
de
plo
y
Source Build
release
AWS CodeDeploy
AWS CodePipeline
AWS
CodeCommit
AWS Code Services
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
AWS CodeDeploy
Easy and reliable deployments
Scale with ease
Deploy to any server
TestCodeDeployv1, v2, v3
Production
Dev
application
revisions
deployment groups
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
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
PipelineStage
Action
Transition
CodePipeline
MyApplication
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
NotifyDevelopers
Lambda
CodePipeline
MyApplication
Parallel actions
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
NotifyDevelopers
Lambda
TestAPI
Runscope
CodePipeline
MyApplication
Sequential actions
8. Retrieve build artifact
EC2 instance
CodePipeline
Source
Source
GitHub
Build
JenkinsOnEC2
Jenkins
Deploy
JavaApp
Elastic Beanstalk
Source Artifact
S3
Build Artifact
S3
5. Get source artifact
1. Get Changes
6. Store build artifact
3. Poll for Job
4. Acknowledge Job
7. Put Success
9. Deploy build artifact
Elastic Beanstalk
Web container
Java App
MyApplication
We have a strong partner list, and it’s growing
Source Build Test Deploy
HPE StormRunner
AWS service integrations
Source Invoke Logic Deploy
AWS Elastic BeanstalkAmazon S3
AWS CodeDeploy
AWS Lambda
AWS CodeCommit
AWS Elastic Beanstalk
Fast & simple
to begin
Developer
productivity
Impossible
to outgrow
Complete
resource control
Easily deploy PHP, Java, Python, Ruby,
Node.js, .NET, Go or Docker application
@niiloursin
DevOps:road to loveable product
AWS Summit, Stockholm 4.5.2016Niilo Ursin / Alma Talent
@niiloursin
who am I ::
Niilo Ursin @niiloursin
CTO, Alma Talent OyJoined Alma Media/ Kauppalehti 2009Commercial web sites since 1998
@niiloursin
1996
website
1898
founded
2015
latest mobilesite
@niiloursin
Kauppalehti’s road to DevOps
1996 - 2013 dedicated & virtual servers2013 started experimenting cloud with private cloud + AWS • Automation with Chef (private cloud)• AWS Route53, S3, CloudFront, SES, SNS, SQS
2015 Three sites (frontends+some apis) moved to AWS• Automation with scripts + CloudFormation• AWS Elastic Load Balancing, Elastic Beanstalk, EC2, DynamoDB, ElasticSearch,
Lambda, CloudWatch
2016 Kinesis, Redshift, Aurora
@niiloursin
DevOps ::
“gives capability to do rapid and experimental business safely”
@niiloursin
MINIMUM LOVEABLE PRODUCT
© https://medium.com/the-happy-startup-school/beyond-mvp-10-steps-to-make-your-product-minimum-loveable-51800164ae0c
MLP = The version of a new product that brings back the maximum amount of love from your early tribe members with the least effort.
@niiloursin
DevOps ::
TRUST -> NO FEAR
1. EVERY DEVELOPER HAS ACCESS TO EVERYTHING
2. EVERY DEVELOPER CAN UPDATE PRODUCTION
3. NO FEAR OF UPDATING PRODUCTION © Spotify : https://labs.spotify.com/2014/09/20/spotify-engineering-culture-part-2/
@niiloursin
DevOps ::
Collaboration and Communication
@niiloursin
DevOps ::
Automation -> Infrastructure as a code
deploy-to-production.sh
QASTAGING
PRODUCTION
One time testing environments
for:
PERFORMANCE SECURITY
@niiloursin
DevOps ::
Tested small increments continuously deployed to
production record 7 production deployments in one DAY
(20.1.2015)
@niiloursin
DevOps ::
Measure end user experience -> Visible metrics
@niiloursin
Prototypes ::
After desktop site renewal team built four prototypes of mobile site within two weeks:
• NodeJS with Express and React (serverside)• RiotJS (clientside)• Golang (serverside)• React + Fluxible + nodeJS (universal)
All prototypes were deployed multiple times per day to Amazon Elastic Beanstalk
@niiloursin@niiloursin
be fast or be last.Niilo Ursin / Alma Talent @almadevelopers
Thank you!
Woody Borraccino, AWS Solutions Architect