DevOps on AWS Deep Dive on Continuous Delivery and the AWS Developer Tools Woody Borraccino, AWS Solutions Architect May 4, 2016, Stockholm 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
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? Software development lifecycle delivery pipeline build test release developers plan monitor customers feedback loop DevOps = efficiencies that speed up this lifecycle
The Amazon DevOps story
Monolith development lifecycle build test release developers app delivery pipeline
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 services delivery pipeline
Self-service Technology-agnostic Encourage best practices Single-purpose services
Deployment service No downtime deployments Health tracking Versioned artifacts and rollbacks
Continuous delivery Pipelines Automated release process Faster and more reliable releases >90% of teams
Microservice development lifecycle build test release build test release build test release build test release build test release developers services build test delivery pipelines release
Thousands of teams Microservice architecture Continuous delivery Multiple environments = 50 million deployments a year
How can others do this?
Setting up a delivery pipeline Source Build AWS CodePipeline release Testing Staging Production AWS CodeCommit deploy deploy AWS CodeDeploy deploy
AWS Code Services
AWS CodeCommit Git objects in Amazon S3 git pull/push SSH or HTTPS CodeCommit Git index in Amazon DynamoDB Encryption key in AWS KMS Use standard Git tools Scalability, availability, and durability of Amazon S3 Encryption at rest with customer-specific keys
AWS CodeDeploy application revisions deployment groups Dev v1, v2, v3 CodeDeploy Test Production Easy and reliable deployments Scale with ease Deploy to any server
AWS CodePipeline Source Build Beta Gamma Production 1) Pull 1) Build 2) Unit test 1) Deploy 2) UI test 1) Deploy 2) Perf test 1) Deploy canary 2) Deploy region 1 3) Deploy region 2 Connect to best-of-breed tools Accelerate your release process Consistently verify each release
CodePipeline MyApplication Source Source GitHub Build JenkinsOnEC2 Jenkins Deploy JavaApp Elastic Beanstalk Action Stage Transition Pipeline
CodePipeline MyApplication Source Source GitHub Build JenkinsOnEC2 Jenkins NotifyDevelopers Lambda Parallel actions Deploy JavaApp Elastic Beanstalk
CodePipeline MyApplication Source Source GitHub Build JenkinsOnEC2 Jenkins TestAPI Runscope NotifyDevelopers Lambda Sequential actions Deploy JavaApp Elastic Beanstalk
CodePipeline MyApplication Source 1. Get Changes Source GitHub Build JenkinsOnEC2 Jenkins 3. Poll for Job 4. Acknowledge Job 7. Put Success EC2 instance 5. Get source artifact S3 Source Artifact 6. Store build artifact S3 Deploy 8. Retrieve build artifact Build Artifact JavaApp Elastic Beanstalk 9. Deploy build artifact Java App Elastic Beanstalk Web container
We have a strong partner list, and it s growing Source Build Test Deploy HPE StormRunner
AWS service integrations Source Invoke Logic Deploy Amazon S3 AWS CodeCommit AWS Lambda AWS Elastic Beanstalk AWS CodeDeploy
AWS Elastic Beanstalk Easily deploy PHP, Java, Python, Ruby, Node.js,.NET, Go or Docker application Fast & simple to begin Developer productivity Impossible to outgrow Complete resource control
DevOps: road to loveable product AWS Summit, Stockholm 4.5.2016 Niilo Ursin / Alma Talent @niiloursin
who am I :: Niilo Ursin @niiloursin CTO, Alma Talent Oy Joined Alma Media/ Kauppalehti 2009 Commercial web sites since 1998 @niiloursin
1898 1996 2015 founded website latest mobile site @niiloursin
Kauppalehti s road to DevOps 1996-2013 dedicated & virtual servers 2013 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 MLP = The version of a new product that brings back the maximum amount of love from your early tribe members with the least effort. https://medium.com/the-happy-startup-school/beyond-mvp-10-steps-to-make-your-product-minimum-loveable-51800164ae0c @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 QA STAGING PRODUCTION One time testing environments for: PERFORMANCE SECURITY deploy-to-production.sh @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
be fast or be last. Niilo Ursin / Alma Talent @almadevelopers @niiloursin
Thank you! Woody Borraccino, AWS Solutions Architect