SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
v	
  
Accelerating Innovation with DevOps on AWS
Adrian White
Solutions Architect, AWS
v	
  
Innovation, Quality, Governance
v	
  
An example CI/CD workflow
Stacks /
Environments(s)
CI/CD ToolIssue
Tracker
SCM
Infrastructure
automation /
deployment
Test tools /
harnesses
v	
  
An example CI/CD workflow
Tasks for AWS
PHPUnit
jQuery
…
CloudFormation Stack(s)
v	
  
A CI/CD pipeline
Teardown
Release
Deploy
Test
Code
v	
  
Getting your source under control
Prod FeatureUAT
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Automated merging
UAT Feature 2Feature 1
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
What does CI give us?
•  Test driven promotion (of development change)
•  Increasing velocity of feedback cycle through iterative change
•  Contain change to reduce risk
•  Bugs are detected quickly
•  Automated testing reduces size of testing effort
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Demo: Reviewing a CI pipeline
v	
  
What does CD give us?
•  Changes are pushed quickly to production
•  Immediate feedback from users
•  Supports A/B testing or “We test customer reactions to features in production”
•  Hardens, de-risks the deployment process
•  Gives us a breadth of data points across our applications
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
AWS Application Management Services
Elastic Beanstalk OpsWorks CloudFormation
Application Container Application & Resource
Management
Automated Code
Deployment
Provision and manage AWS
Resources
You want to quickly get code
running scalably and reliably
without worrying about the
underlying resources.
“Application-centric approach”
You want to run an application
with the ability to customize
and control software or
resources.	
  
“DevOps automation”
You want to rapidly release
new features and avoid
downtime during complex
deployments.	
  
“Automated deployments”
You want a simple, yet finely
controllable way to model and
version collections of AWS
resources.
“Fine grained control”
ALMA Service Console Icons
AWS CodeDeploy
ALMA Service Console icons and names are subject to review.
CodeDeploy
CodeDeploy
AWS Pipelines
CodeDeploy
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Deployment approaches
•  Deploy in-place
•  Manage interruption
•  Fast deployment
•  Discrete environment
•  Bake AMI
•  Multiple environments from branches
•  Support A/B testing
•  “Rolling DNS”
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
AWS CodeDeploy Automated Deployments
Minimize Downtime
Centralized Control
Easy Integration
15	
  
ALMA Service Console Icons
AWS CodeDeploy
ALMA Service Console icons and names are subject to review.
CodeDeploy
CodeDeploy
AWS Pipelines
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
Automated Deployments
Easy deployment to EC2 Auto Scaling support Consistent and repeatable
Dev Test Prod
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-time
Min. healthy hosts = 99%
[Custom]
Min. healthy hosts = 75%
Half-at-a-time
Min. healthy hosts = 50%
All-at-once
Min. healthy hosts = 0
Configurable Deploy Speed Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
Product Integrations
Any application Reuse setup scripts Integrate with toolchain
Shell scripts
PowerShell scripts
Custom programs
Configuration recipes
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Baking an AMI
•  Start a builder instance
•  Bootstrap with cfn-init, cfn-signal
•  Bake your AMI
•  EC2 CreateImage
•  Tag it
•  Cost remediation
•  Reporting
•  Destroy / clean up the builder instance
OS
Platform
Framework
Container
Web
Your Code
OS
Platform
Framework
Container
Web
Your Code
OS
Platform
Framework
Container
Web
Your Code
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
AWS::CloudFormation::Init
"AWS::CloudFormation::Init" : {
“cfn” : {
"packages" :{
"yum" : { "httpd" : [] }
},
"files":{
“/home/ec2-user/myfile.html:{
"source" : { "Fn::Join" : [ "", ["https://s3-ap-southeast-2.amazonaws.com/",{ "Ref" :
"S3Bucket" },”/myfile.html”]] },
"mode":"000644",
"owner":"root",
"group":"root",
"authentication":"S3AccessCreds”
},
v	
  
AWS::CloudFormation::Init
"services": {
"sysvinit" : {
"httpd" : {
"enabled" : "true",
"ensureRunning" : "true"
}
}
}
}
v	
  
Demo: Reviewing a CD pipeline
(data sources + web application)
v	
  
Release
Release	
  
Test	
  the	
  new	
  stack	
  
Match	
  the	
  traffic	
  between	
  the	
  two	
  stacks	
  
Update	
  the	
  “floa>ng”	
  DNS	
  record	
  	
  
Send	
  No>fica>on(s)	
  
ROLLBACK	
  
v	
  
Blue green deployment
cicd-­‐bootcamp-­‐2.com	
   cicd-­‐bootcamp-­‐2.com	
  
cicd-­‐bootcamp.com	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Blue green deployment
cicd-­‐bootcamp-­‐2.com	
   cicd-­‐bootcamp-­‐2.com	
  
cicd-­‐bootcamp.com	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Blue green deployment
cicd-­‐bootcamp-­‐2.com	
   cicd-­‐bootcamp-­‐2.com	
  
cicd-­‐bootcamp.com	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Blue green deployment
cicd-­‐bootcamp-­‐2.com	
   cicd-­‐bootcamp-­‐2.com	
  
cicd-­‐bootcamp.com	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Teardown
Teardown	
  
Ensure	
  that	
  no	
  traffic	
  is	
  moving	
  though	
  ELB	
  
Teardown	
  the	
  CloudForma>on	
  Stack	
  
Deregister	
  the	
  AMI	
  
v	
  
Teardown
cicd-­‐bootcamp-­‐2.com	
   cicd-­‐bootcamp-­‐2.com	
  
cicd-­‐bootcamp.com	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Teardown
cicd-­‐bootcamp-­‐2.com	
   cicd-­‐bootcamp-­‐2.com	
  
cicd-­‐bootcamp.com	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Teardown
cicd-­‐bootcamp-­‐2.com	
  
cicd-­‐bootcamp.com	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Advanced Techniques
•  Managing CD sprawl / Segregation of duties
•  CloudFormation componentization and re-use
•  Extending CloudFormation with custom resources
•  Injecting dynamic data into your templates
•  Manage custom resources e.g. relational database schemas
•  Extending your CICD tools
•  Making your CI and CD tools AWS-aware
v	
  
Stack chaining
v	
  
Stack chaining
v	
  
Stack chaining
v	
  
CloudFormation Merging
Git	
   Git	
  
CloudFormation
Operations Repo Application Repo
VPC
Subnets
Security Groups
CloudFormation Frameworks
Best Practice
Application Code
Application CloudFormation
Load Balancing Setup
v	
  
CloudFormation Custom Resources
Region
SQS Queue
AWS
CloudFormation
Custom Resource
Topic
Auto scaling Group
Custom Resource
Implementation
•  Add New Resources
•  Including AWS resources not currently
supported by CFN
•  Interact with the CloudFormation Workflow
•  Inject dynamic data into a stack
•  Extend the capabilities of existing resources
•  Data management via CloudFormation
•  It’s really simple if you use aws-cfn-
resource-bridge
•  Install or fork from
https://github.com/aws/aws-cfn-
resource-bridge
Create
app:WebApp
version:1.2
os:linux
DynamoDB
1	
   2	
  
3	
  
4	
  
6	
  
Query table, get AMI ID
where:
app=WebApp
version=1.2
os is linux
5	
  
Output
ami-id:ami-xxxxx
Returns AMI id
in ami-id key7	
  
Deploy EC2
Instance with
AMI ami-xxxxx
v	
  
Custom Resources - DatabaseSchema
"MyDBSchema" : {
"Type" : "Custom::DatabaseSchema”, "Version" : "1.0",
"Properties" : {
"ServiceToken": "arn:aws:sns:us-east-1:12345EXAMPLE:DBSchema",
"databaseChangeLog" : [ {
"changeSet" : {
"id" : "1",
"author" : "adamthom",
"changes" : [ {
"createTable" : { … }
} ]
}
}
}
}
v	
  
Custom Resources - DatabaseSchema
"createTable" : {
"tableName" : "example",
"columns" : [ {
"column" : {
"name" : "id",
"type" : "int",
"autoIncrement" : true,
"constraints" : {
"primaryKey" : true,
"nullable" : false
}
}
} ]
}
v	
  
Extending your CI and CD tools
DynamoDB
Tasks for AWS
v	
  
Situation Awareness
Burden of Responsibility
APIs
Tasks for AWS
v	
  
Containerisation
•  Build environments for artifacts, don’t update environments with artifacts
•  All environments are transient
•  Standardisation, abstraction and portability
v	
  
Docker & AWS Elastic Beanstalk
•  A framework for managing Linux containers
•  LXC containers are more lightweight than VMs
•  Amazon Linux (2014.03) bundles Docker 0.9 and LXC 0.9
•  Docker containers on Beanstalk are Go!
v	
  
EC2 Container Service (Preview)
•  Highly scalable, high performance container management
•  Supports Docker containers within your VPC
•  Manages container lifecycle and definitions
•  Cluster and container scheduler
v	
  
Demo: Release & Teardown
2	
  
1	
  
Code	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
ProductionCode	
  
Test	
  
Deploy	
  
Release	
  
Teardown	
  
v	
  
Innovation, Quality, Governance
Discrete environments for each branch
Automated testing on every commit on every branch
Leverage CD tools to provide separation of duties
Audit Logs
Git approvals process
Use custom resources to extend CloudFormation
Leverage DNS
Interface with the API
Environments for artifacts
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWS
Accelerating Innovation with DevOps on AWS

Contenu connexe

Tendances

AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
Amazon Web Services
 

Tendances (20)

Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
Managing Your Application Lifecycle on AWS: Continuous Integration and Deploy...
 
Introduction to DevOps on AWS
Introduction to DevOps on AWSIntroduction to DevOps on AWS
Introduction to DevOps on AWS
 
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
Continuous Integration and Deployment Best Practices on AWS (ARC307) | AWS re...
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
AWS Code Services
AWS Code ServicesAWS Code Services
AWS Code Services
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)
 
Leveraging elastic web scale computing with AWS
 Leveraging elastic web scale computing with AWS Leveraging elastic web scale computing with AWS
Leveraging elastic web scale computing with AWS
 
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
Releasing Software Quickly and Reliably With AWS CodePipeline by Mark Mansour...
 
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
DevOps, Continuous Integration and Deployment on AWS
DevOps, Continuous Integration and Deployment on AWSDevOps, Continuous Integration and Deployment on AWS
DevOps, Continuous Integration and Deployment on AWS
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous Delivery
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
AWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment ComplexityAWS CodeDeploy: Manage Deployment Complexity
AWS CodeDeploy: Manage Deployment Complexity
 
(DVO306) AWS CodeDeploy: Automating Your Software Deployments
(DVO306) AWS CodeDeploy: Automating Your Software Deployments(DVO306) AWS CodeDeploy: Automating Your Software Deployments
(DVO306) AWS CodeDeploy: Automating Your Software Deployments
 
AWS CodeDeploy
AWS CodeDeployAWS CodeDeploy
AWS CodeDeploy
 
Automate Software Deployments on EC2 with AWS CodeDeploy
Automate Software Deployments on EC2 with AWS CodeDeployAutomate Software Deployments on EC2 with AWS CodeDeploy
Automate Software Deployments on EC2 with AWS CodeDeploy
 
AWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipelineAWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipeline
 
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
AWS CodeDeploy, AWS CodePipeline, and AWS CodeCommit: Transforming Software D...
 
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalkContinuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
Continuous Delivery using AWS CodePipeline, AWS Lambda & AWS ElasticBeanstalk
 

En vedette

AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
Amazon Web Services
 

En vedette (20)

AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & MonitoringAWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
AWS DevOps Event - AWS Services enabling DevOps - Automated Testing & Monitoring
 
Nginx+WordPress+AWS - NginxでWordPressを構築してみよう!
Nginx+WordPress+AWS - NginxでWordPressを構築してみよう!Nginx+WordPress+AWS - NginxでWordPressを構築してみよう!
Nginx+WordPress+AWS - NginxでWordPressを構築してみよう!
 
Jenkins and the Future of Software Delivery
Jenkins and the Future of Software DeliveryJenkins and the Future of Software Delivery
Jenkins and the Future of Software Delivery
 
Introduction to Container Management on AWS
Introduction to Container Management on AWSIntroduction to Container Management on AWS
Introduction to Container Management on AWS
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talk
 
Container as a Service with Docker
Container as a Service with DockerContainer as a Service with Docker
Container as a Service with Docker
 
Docker cloud hybridation & orchestration
Docker cloud hybridation & orchestrationDocker cloud hybridation & orchestration
Docker cloud hybridation & orchestration
 
Summit 16: CI/CD and DevOps
Summit 16: CI/CD and DevOpsSummit 16: CI/CD and DevOps
Summit 16: CI/CD and DevOps
 
AWS re:Invent 2016: State of the Union: Containers (CON316)
AWS re:Invent 2016: State of the Union:  Containers (CON316)AWS re:Invent 2016: State of the Union:  Containers (CON316)
AWS re:Invent 2016: State of the Union: Containers (CON316)
 
AWS re:Invent 2016: From EC2 to ECS: How Capital One uses Application Load Ba...
AWS re:Invent 2016: From EC2 to ECS: How Capital One uses Application Load Ba...AWS re:Invent 2016: From EC2 to ECS: How Capital One uses Application Load Ba...
AWS re:Invent 2016: From EC2 to ECS: How Capital One uses Application Load Ba...
 
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit sessionDevOps and Application Delivery for Hybrid Cloud  - DevOpsSummit session
DevOps and Application Delivery for Hybrid Cloud - DevOpsSummit session
 
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
AWS re:Invent 2016: Operations Automation and Infrastructure Management with ...
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
AWS re:Invent 2016: Development Workflow with Docker and Amazon ECS (CON302)
 
AWS re:Invent 2016: Introduction to Container Management on AWS (CON303)
AWS re:Invent 2016: Introduction to Container Management on AWS (CON303)AWS re:Invent 2016: Introduction to Container Management on AWS (CON303)
AWS re:Invent 2016: Introduction to Container Management on AWS (CON303)
 
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
AWS re:Invent 2016: DevOps on AWS: Advanced Continuous Delivery Techniques (D...
 
AWS Summit Auckland 2014 | Understanding AWS Security
AWS Summit Auckland 2014 | Understanding AWS Security AWS Summit Auckland 2014 | Understanding AWS Security
AWS Summit Auckland 2014 | Understanding AWS Security
 
AWS Summit Sydney 2014 | Secure Hadoop as a Service - Session Sponsored by Intel
AWS Summit Sydney 2014 | Secure Hadoop as a Service - Session Sponsored by IntelAWS Summit Sydney 2014 | Secure Hadoop as a Service - Session Sponsored by Intel
AWS Summit Sydney 2014 | Secure Hadoop as a Service - Session Sponsored by Intel
 
Protecting Your Data in AWS
Protecting Your Data in AWSProtecting Your Data in AWS
Protecting Your Data in AWS
 
Un backend: pour tous vos objets connectés
Un backend: pour tous vos objets connectésUn backend: pour tous vos objets connectés
Un backend: pour tous vos objets connectés
 

Similaire à Accelerating Innovation with DevOps on AWS

Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用
Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用
Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用
Amazon Web Services
 

Similaire à Accelerating Innovation with DevOps on AWS (20)

Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
Day 3 - DevOps Culture - Continuous Integration & Continuous Deployment on th...
 
Continuous Integration and Deployment Best Practices on AWS
 Continuous Integration and Deployment Best Practices on AWS  Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
Moving to Containers: Building with Docker and Amazon ECS - CON310 - re:Inven...
 
Transforming Software Development
Transforming Software Development Transforming Software Development
Transforming Software Development
 
Transforming Software Development
Transforming Software DevelopmentTransforming Software Development
Transforming Software Development
 
Aws container webinar day 2
Aws container webinar day 2Aws container webinar day 2
Aws container webinar day 2
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web Services
 
Increase Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web ServicesIncrease Speed and Agility with Amazon Web Services
Increase Speed and Agility with Amazon Web Services
 
AWS Innovate: Smart Deployment on AWS - Andy Kim
AWS Innovate: Smart Deployment on AWS - Andy KimAWS Innovate: Smart Deployment on AWS - Andy Kim
AWS Innovate: Smart Deployment on AWS - Andy Kim
 
AWS CodeDeploy
AWS CodeDeployAWS CodeDeploy
AWS CodeDeploy
 
AWS Summit Auckland 2014 | Continuous Integration and Deployment Best Practic...
AWS Summit Auckland 2014 | Continuous Integration and Deployment Best Practic...AWS Summit Auckland 2014 | Continuous Integration and Deployment Best Practic...
AWS Summit Auckland 2014 | Continuous Integration and Deployment Best Practic...
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
CI/CD on AWS: Deploy Everything All the Time | AWS Public Sector Summit 2016
 
Advanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWSAdvanced Continuous Delivery on AWS
Advanced Continuous Delivery on AWS
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用
Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用
Track 4 Session 4_ MAD02 MAD 04 如何藉由 CICD 流程管理容器化和無伺服器應用
 
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
AWS Summit 2013 | Auckland - Continuous Deployment Practices, with Production...
 
Transforming Software Development
Transforming Software DevelopmentTransforming Software Development
Transforming Software Development
 
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel AvivSelf Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
Self Service Agile Infrastructure for Product Teams - Pop-up Loft Tel Aviv
 

Plus de Amazon 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 AWS
Amazon 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 Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon 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
 

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
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Accelerating Innovation with DevOps on AWS

  • 1.
  • 3. Accelerating Innovation with DevOps on AWS Adrian White Solutions Architect, AWS
  • 5. v   An example CI/CD workflow Stacks / Environments(s) CI/CD ToolIssue Tracker SCM Infrastructure automation / deployment Test tools / harnesses
  • 6. v   An example CI/CD workflow Tasks for AWS PHPUnit jQuery … CloudFormation Stack(s)
  • 7. v   A CI/CD pipeline Teardown Release Deploy Test Code
  • 8. v   Getting your source under control Prod FeatureUAT Code   Test   Deploy   Release   Teardown   Code   Test   Deploy   Release   Teardown   Code   Test   Deploy   Release   Teardown   Code   Test   Deploy   Release   Teardown   Code   Test   Deploy   Release   Teardown  
  • 9. v   Automated merging UAT Feature 2Feature 1 Code   Test   Deploy   Release   Teardown  
  • 10. v   What does CI give us? •  Test driven promotion (of development change) •  Increasing velocity of feedback cycle through iterative change •  Contain change to reduce risk •  Bugs are detected quickly •  Automated testing reduces size of testing effort Code   Test   Deploy   Release   Teardown  
  • 11. v   Demo: Reviewing a CI pipeline
  • 12. v   What does CD give us? •  Changes are pushed quickly to production •  Immediate feedback from users •  Supports A/B testing or “We test customer reactions to features in production” •  Hardens, de-risks the deployment process •  Gives us a breadth of data points across our applications Code   Test   Deploy   Release   Teardown  
  • 13. v   AWS Application Management Services Elastic Beanstalk OpsWorks CloudFormation Application Container Application & Resource Management Automated Code Deployment Provision and manage AWS Resources You want to quickly get code running scalably and reliably without worrying about the underlying resources. “Application-centric approach” You want to run an application with the ability to customize and control software or resources.   “DevOps automation” You want to rapidly release new features and avoid downtime during complex deployments.   “Automated deployments” You want a simple, yet finely controllable way to model and version collections of AWS resources. “Fine grained control” ALMA Service Console Icons AWS CodeDeploy ALMA Service Console icons and names are subject to review. CodeDeploy CodeDeploy AWS Pipelines CodeDeploy Code   Test   Deploy   Release   Teardown  
  • 14. v   Deployment approaches •  Deploy in-place •  Manage interruption •  Fast deployment •  Discrete environment •  Bake AMI •  Multiple environments from branches •  Support A/B testing •  “Rolling DNS” Code   Test   Deploy   Release   Teardown  
  • 15. v   AWS CodeDeploy Automated Deployments Minimize Downtime Centralized Control Easy Integration 15   ALMA Service Console Icons AWS CodeDeploy ALMA Service Console icons and names are subject to review. CodeDeploy CodeDeploy AWS Pipelines Code   Test   Deploy   Release   Teardown  
  • 16. Automated Deployments Easy deployment to EC2 Auto Scaling support Consistent and repeatable Dev Test Prod Code   Test   Deploy   Release   Teardown  
  • 17. v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-time Min. healthy hosts = 99% [Custom] Min. healthy hosts = 75% Half-at-a-time Min. healthy hosts = 50% All-at-once Min. healthy hosts = 0 Configurable Deploy Speed Code   Test   Deploy   Release   Teardown  
  • 18. Product Integrations Any application Reuse setup scripts Integrate with toolchain Shell scripts PowerShell scripts Custom programs Configuration recipes Code   Test   Deploy   Release   Teardown  
  • 19. v   Baking an AMI •  Start a builder instance •  Bootstrap with cfn-init, cfn-signal •  Bake your AMI •  EC2 CreateImage •  Tag it •  Cost remediation •  Reporting •  Destroy / clean up the builder instance OS Platform Framework Container Web Your Code OS Platform Framework Container Web Your Code OS Platform Framework Container Web Your Code Code   Test   Deploy   Release   Teardown  
  • 20. v   AWS::CloudFormation::Init "AWS::CloudFormation::Init" : { “cfn” : { "packages" :{ "yum" : { "httpd" : [] } }, "files":{ “/home/ec2-user/myfile.html:{ "source" : { "Fn::Join" : [ "", ["https://s3-ap-southeast-2.amazonaws.com/",{ "Ref" : "S3Bucket" },”/myfile.html”]] }, "mode":"000644", "owner":"root", "group":"root", "authentication":"S3AccessCreds” },
  • 21. v   AWS::CloudFormation::Init "services": { "sysvinit" : { "httpd" : { "enabled" : "true", "ensureRunning" : "true" } } } }
  • 22. v   Demo: Reviewing a CD pipeline (data sources + web application)
  • 23. v   Release Release   Test  the  new  stack   Match  the  traffic  between  the  two  stacks   Update  the  “floa>ng”  DNS  record     Send  No>fica>on(s)   ROLLBACK  
  • 24. v   Blue green deployment cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp.com   Code   Test   Deploy   Release   Teardown  
  • 25. v   Blue green deployment cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp.com   Code   Test   Deploy   Release   Teardown  
  • 26. v   Blue green deployment cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp.com   Code   Test   Deploy   Release   Teardown  
  • 27. v   Blue green deployment cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp.com   Code   Test   Deploy   Release   Teardown  
  • 28. v   Teardown Teardown   Ensure  that  no  traffic  is  moving  though  ELB   Teardown  the  CloudForma>on  Stack   Deregister  the  AMI  
  • 29. v   Teardown cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp.com   Code   Test   Deploy   Release   Teardown  
  • 30. v   Teardown cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp.com   Code   Test   Deploy   Release   Teardown  
  • 31. v   Teardown cicd-­‐bootcamp-­‐2.com   cicd-­‐bootcamp.com   Code   Test   Deploy   Release   Teardown  
  • 32. v   Advanced Techniques •  Managing CD sprawl / Segregation of duties •  CloudFormation componentization and re-use •  Extending CloudFormation with custom resources •  Injecting dynamic data into your templates •  Manage custom resources e.g. relational database schemas •  Extending your CICD tools •  Making your CI and CD tools AWS-aware
  • 36. v   CloudFormation Merging Git   Git   CloudFormation Operations Repo Application Repo VPC Subnets Security Groups CloudFormation Frameworks Best Practice Application Code Application CloudFormation Load Balancing Setup
  • 37. v   CloudFormation Custom Resources Region SQS Queue AWS CloudFormation Custom Resource Topic Auto scaling Group Custom Resource Implementation •  Add New Resources •  Including AWS resources not currently supported by CFN •  Interact with the CloudFormation Workflow •  Inject dynamic data into a stack •  Extend the capabilities of existing resources •  Data management via CloudFormation •  It’s really simple if you use aws-cfn- resource-bridge •  Install or fork from https://github.com/aws/aws-cfn- resource-bridge Create app:WebApp version:1.2 os:linux DynamoDB 1   2   3   4   6   Query table, get AMI ID where: app=WebApp version=1.2 os is linux 5   Output ami-id:ami-xxxxx Returns AMI id in ami-id key7   Deploy EC2 Instance with AMI ami-xxxxx
  • 38. v   Custom Resources - DatabaseSchema "MyDBSchema" : { "Type" : "Custom::DatabaseSchema”, "Version" : "1.0", "Properties" : { "ServiceToken": "arn:aws:sns:us-east-1:12345EXAMPLE:DBSchema", "databaseChangeLog" : [ { "changeSet" : { "id" : "1", "author" : "adamthom", "changes" : [ { "createTable" : { … } } ] } } } }
  • 39. v   Custom Resources - DatabaseSchema "createTable" : { "tableName" : "example", "columns" : [ { "column" : { "name" : "id", "type" : "int", "autoIncrement" : true, "constraints" : { "primaryKey" : true, "nullable" : false } } } ] }
  • 40. v   Extending your CI and CD tools DynamoDB Tasks for AWS
  • 41. v   Situation Awareness Burden of Responsibility APIs Tasks for AWS
  • 42. v   Containerisation •  Build environments for artifacts, don’t update environments with artifacts •  All environments are transient •  Standardisation, abstraction and portability
  • 43. v   Docker & AWS Elastic Beanstalk •  A framework for managing Linux containers •  LXC containers are more lightweight than VMs •  Amazon Linux (2014.03) bundles Docker 0.9 and LXC 0.9 •  Docker containers on Beanstalk are Go!
  • 44. v   EC2 Container Service (Preview) •  Highly scalable, high performance container management •  Supports Docker containers within your VPC •  Manages container lifecycle and definitions •  Cluster and container scheduler
  • 45. v   Demo: Release & Teardown 2   1   Code   Test   Deploy   Release   Teardown   ProductionCode   Test   Deploy   Release   Teardown  
  • 46. v   Innovation, Quality, Governance Discrete environments for each branch Automated testing on every commit on every branch Leverage CD tools to provide separation of duties Audit Logs Git approvals process Use custom resources to extend CloudFormation Leverage DNS Interface with the API Environments for artifacts