SlideShare a Scribd company logo
Continuous
Delivery/Deployment on AWS
Version 1.0
Shiva N (narshiva@amazon.com)
AWS Solution Architect
~11.6s
Mean time between
deployments (weekday)
~1,079
Max number of deployments
in a single hour
~10,000
Mean number of hosts
simultaneously receiving a
deployment
~30,000
Max number of hosts
simultaneously receiving a
deployment
DEPLOYMENTS AT
AMAZON.COM
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Elastic BeanStalk
• Opsworks
• Cloudformation
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
Agenda
• Intro to Continuous Integration and Continuous
Deployment/Delivery (CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Elastic BeanStalk
• Opsworks
• Cloudformation
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
Version
Control
CI Server
Package
Builder
Deploy
ServerCommit to
Git/master
Dev
Get /
Pull
Code
AMIs
Send Build Report to Dev
Stop everything if build failed
Distributed Builds
Run Tests in parallel
Staging Env
Test Env
Code
Config
Tests
Prod Env
Push
Config
Install
Create
Repo
CloudFormation
Templates for Env
Generate
Continuous Integration
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
v
Version
Control
CI Server
Package
Builder
Deploy
ServerCommit to
Git/master
Dev
Get /
Pull
Code
AMIs
Send Build Report to Dev
Stop everything if build failed
Distributed Builds
Run Tests in parallel
Staging Env
Test Env
Code
Config
Tests
Prod Env
Push
Config
Install
Create
Repo
CloudFormation
Templates for Env
Generate
Continuous Delivery/Deployment
v
What does CD give us?
• Automated, repeatable process to push changes to production
• Hardens, de-risks the deployment process
• Immediate feedback from users
• Supports A/B testing or “We test customer reactions to features in
production”
• Gives us a breadth of data points across our applications
v
Continuous Delivery Vs Continuous
Deployment
v
Version Control
Build/
Compile
Code
Dev
Unit Test
App Code
IT Ops
DR Env
Test Env
Prod Env
Dev Env
Application
Write
App Code
Infrastructure
CloudFormation
tar, war, zip
yum, rpmDeploy
App
Package
Application
Example CI-CD Pipeline
Deploy application
only
Deploy infrastructure
only
AMI
Build
AMIs
Validate
Templates
Write
Infra Code
Deploy
Infras
Automate
Deploymen
t
Artifact Repository
v
https://secure.flickr.com/photos/jasoneppink/499531891
v
HOST
METRICS
SERVICE
METRICS
LOG ANALYSIS
EXTERNAL SITE
METRICS
v
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Elastic BeanStalk
• Opsworks
• Cloudformation
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
https://secure.flickr.com/photos/simononly/15386966677
v
Delivery approaches
• How are we going to deliver our code?
• File shipping:
• Binaries (.rpm, .msi. .exe, .deb,
.conf…)
• As an AMI:
• Bundle one or more of the above
into an AMI
• Which method do you choose?
• How fast do we need to do this?
• Across how many instances?
• How do we roll back (or forward)?
v
AMI Deployment Method - Building
v
Delivery approaches…
Fully Functional AMI OS-Only AMI
Partially Configured AMI
Most amount of post-
boot work
Least flexible
to maintain
Try and find a happy
medium here
v
Deployment approaches
• Deploy in place
• Deploy all at once (Service outage)
• Rolling updates
• Blue-Green Deployment
• Discrete environment
• Multiple environments from branches
• Support A/B testing
• “Rolling DNS”
• Alternate Blue-Green (Red-Black?) deployment
• Alternate auto scaling group
• Avoid messing with DNS
v
Deploy in place – Rolling update
v
Deploy in place – Rolling update
v
Deploy in place – Rolling update
v
Deploy in place – Rolling update
v
Deploy in place – Rolling update
v
Deploy in place – Rolling update
v
Blue-Green deployment
Amazon
Route 53
EC2 Instances
ELB
100%
DynamoDB
MySQL RDS
Instance
ElastiCache
Cache Node
v
Blue-Green deployment
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
100%
UAT
DynamoDB
MySQL RDS
Instance
ElastiCache
Cache Node
v
Blue-Green deployment
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
90% 10%
DynamoDB
MySQL RDS
Instance
ElastiCache
Cache Node
v
Blue-Green deployment
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
50% 50%
DynamoDB
MySQL RDS
Instance
ElastiCache
Cache Node
v
Blue-Green deployment Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
0% 100%
DynamoDB
MySQL RDS
Instance
ElastiCache
Cache Node
v
Blue-Green deployment
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
0% 100%
DynamoDB
MySQL RDS
Instance
ElastiCache
Cache Node
v
Red-Black Deployment
Auto Scaling
Group
V1
ELB
Amazon
Relational
Database Service
(RDS)
v
Red-Black Deployment
Auto Scaling
Group
V1
Auto Scaling
Group
V2
ELB
Amazon
Relational
Database Service
(RDS)
UAT
v
Red-Black Deployment
Auto Scaling
Group
V1
Auto Scaling
Group
V2
ELB
Amazon
Relational
Database Service
(RDS)
v
Red-Black Deployment
Auto Scaling
Group
V2
ELB
Amazon
Relational
Database Service
(RDS)
v
HOST
METRICS
SERVICE
METRICS
LOG ANALYSIS
EXTERNAL SITE
METRICS
v
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Elastic BeanStalk
• Opsworks
• Cloudformation
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
AWS OpsWorks AWS
CloudFormation
AWS Elastic
Beanstalk
DevOps framework for
application lifecycle
management and
automation
Templates to deploy &
update infrastructure
as code
Automated resource
management – web
apps made easy
DIY /
On Demand
DIY, on demand
resources: EC2, S3,
custom AMI’s, etc.
Deployment and Management
Convenience Control
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Elastic BeanStalk
• Opsworks
• Cloudformation
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
AWS Elastic Beanstalk (EB)
• Easily deploy, monitor, and scale three-tier web applications
and services.
• Infrastructure provisioned and managed by EB – but you
maintain complete control.
• Preconfigured application containers that are easily
customizable.
• Support for these platforms:
Jav
a
PHP Python Ruby .NET Node.js docker
v
Elastic Beanstalk object model
Application
Environments
•Infrastructure resources (such as EC2
instances, ELB load balancers, and Auto
Scaling groups)
•Runs a single application version at a time
for better scalability
•An application can have many
environments (such as staging and
production)
Application versions
•Application code
•Stored in Amazon S3
•An application can have many application
versions (easy to rollback to previous
versions)
Saved configurations
•Configuration that defines how an
environment and its resources behave
•Can be used to launch new environments
quickly or roll-back configuration
•An application can have many saved
configurations
v
Elastic Beanstalk environment
• Two types:
• Single instance
• Load balancing, auto scaling
• Two tiers (web server and worker)
• Elastic Beanstalk provisions necessary
infrastructure resources such as load
balancers, auto-scaling groups, security
groups, and databases (optional)
• Configures Amazon Route 53 and gives you
a unique domain name
(For example: yourapp.elasticbeanstalk.com)
v
On-instance configuration
Your code
HTTP server
Application server
Language interpreter
Operating system
Host
• Elastic Beanstalk configures
each EC2 instance in your
environment with the
components necessary to run
applications for the selected
platform
• No more worrying about
logging into instances to install
and configure your application
stack
Focus on building your application
v
Application versions and saved configurations
Saved configurations
Save these for easy duplication for A/B
testing or non-disruptive deployments
Application versions
All versions are stored durably in
Amazon S3. Code can also be
pushed from a Git repository!
v
Deployment options
1. Via the AWS Management Console
2. Via Git / EB CLI
3. Via the AWS Toolkit for Eclipse and the Visual
Studio IDE
$ git aws.push
v
Deployment configuration
Region01
Stack (container) type02
Single instance
Load balanced with
Auto Scaling
03 OR
Database (RDS)04 Optional
Your code
v
Example: CLI workflow
Initial app deployment:
$ git init . $ git add .
Initialize your Git repository01 Add your code04
$ eb init $ git commit –m “v1.0”
Create your Elastic Beanstalk app02 Commit05
Follow the prompts to configure the
environment
03
Create the resources and launch the
application
06
$ eb create
v
Example: CLI workflow
Update your app:
Update your code01
$ git add .
$ git commit –m “v2.0”
$ eb deploy
Push the new code02
Monitor the deployment progress03
$ eb status
vAdd custom software to your environment using ebextensions:
Customize application containers
packages:
yum:
newrelic-sysmond: []
rpm:
newrelic: http://yum.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
commands:
0_newrelic_command:
command: "touch /tmp/$(date '+%F.%T.%N').newrelic_command_0"
1_configure_new_relic_key:
command: nrsysmond-config --set license_key=<Your key here>
1a_newrelic_command:
command: "touch /tmp/$(date '+%F.%T.%N').newrelic_command_1a"
2_start_new_relic:
command: "/etc/init.d/newrelic-sysmond start"
2a_newrelic_command:
command: "touch /tmp/$(date '+%F.%T.%N').newrelic_command_2a"
v
Iterate on application architecture
Add additional resources to your environments using ebextensions:
Add other components such as:
• In-memory caching (Amazon ElastiCache Redis and
Memcached)
• Amazon SQS
• Amazon CloudFront
Resources:
MyElastiCache:
Type: AWS::ElastiCache::CacheCluster
Properties:
CacheNodeType:
Fn::GetOptionSetting:
OptionName : CacheNodeType
DefaultValue: cache.m1.small
NumCacheNodes:
Fn::GetOptionSetting:
OptionName : NumCacheNodes
DefaultValue: 1
Engine:
Fn::GetOptionSetting:
OptionName : Engine
DefaultValue: memcached
v
Zero-downtime deployments
Swap URLs
1. Create a new environment for an existing application
2. Deploy your updated application code to the new environment
3. Use the “Swap URLs” feature to transition users to the new production
environment
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Elastic BeanStalk
• Opsworks
• Cloudformation
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
AWS OpsWorks architecture
Amazon EC2, Amazon EBS, EIP,
Amazon VPC, Elastic Load Balancing….
Auto-Scaling, Auto-Healing….
On-instance execution via
Chef client/zero
Command
JSON
Command
Log+Status
v
The heart of AWS OpsWorks
5
5
understands a set of commands that are
triggered by OpsWorks.
The agent then runs a Chef solo run.
Agent on each
EC2 instance
v
Chef integration
• Supports Chef 11.10
• Built-in convenience cookbooks / bring your own
• Chef run is triggered by lifecycle event firing:
push vs. pull
• Event comes with stack state JSON
v
Opsworks components
Stack is basically a
container for AWS
resources—Amazon
EC2 instances, Amazon EBS
volumes, Elastic IP
addresses, and so on—that
have a common purpose
and would be logically
managed together.
A layer is basically a
blueprint that
specifies how to
configure a set of
Amazon EC2 instances
for a particular
purpose, such as
serving applications or
hosting a database
server. Eg Java App
server layer, PHP layer,
RDS layer, MySQL
Layer, HAProxy layer
etc
An instance represents an
Amazon EC2 instance and
defines its basic
configuration, such as
operating system and size.
Each layer has an associated
set of Chef recipes that AWS
OpsWorks runs on the layer's
instances at key points in an
instance's life cycle.
Each application
is represented by an
app, which specifies
the application type
and contains the
information that AWS
OpsWorks needs to
deploy the
application from the
repository to your
instances.
v
Scalability
• Auto healing
• Auto scaling
• Load balancing
• Scaling – time
• Scaling - load
Opsworks components
Infrastructure Provisioning
• Region
• Availability Zone
• Operating system
• Keys
Application Architecture
• Load balancers
• Web layer
• Elastic IP’s
• Security groups
• Database layer
Configure Application
• Source of
packages
• Git, svn, S3
Monitoring
• Logs
• Monitor
Deployment
• Environments
• Dev, Test, Prod
AWS
OpsWorks
stack
layers
instances applications
deployments
monitoring
v
Instance lifecycle commands
v
Setup event
• Sent when instance boots
• Includes deploy event
• Use for initial installation of software &
services
v
Configure event
• Sent to all instances when any instance
enters or leaves online state
• Use for making sure the configuration is
up-to-date
v
Deploy event
• Sent when you deploy via UI/API; part of
each setup.
• Use for custom deployment
v
Undeploy event
• Sent via UI/API when apps are deleted
• Use to remove apps from running
instances
v
Shutdown event
• Sent when an instance
is shut down
• ~45s to execute
• Use for clean shutdown
v
Automation good!
https://secure.flickr.com/photos/macwagen/94975613
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Elastic BeanStalk
• Opsworks
• Cloudformation
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
Amazon CloudFormation
• Infrastructure as Code
• Integrates with version control
• JSON format
• Templates
• Stacks
• Supports all AWS resource types
AWS CloudFormation
v
AWS CloudFormation: Model Your App
• Document, version control, and share your applications and
infrastructure as a JSON document
• Provision app and other AWS resources (VPC, DynamoDB, etc) from a
template
• Repeatable, reliable deployments for test/dev/prod in any AWS
Region
v
AWS CloudFormation: Application stack
example (continue)
Architecting on AWS – Overview of Services for Web Applications
Template File
Defining Stack
Git
Subversion
Mercurial
Dev
Test
Prod
The entire application can be
represented in an AWS
CloudFormation template.
Use the version
control system of
your choice to store
and track changes to
this template
Build out multiple
environments, such
as for Development,
Test, and Production
using the template
v
Template Anatomy
{
"Description" : "Create an EC2 instance.”,
"Resources" : {
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"KeyName" : “my-key-pair”,
"ImageId" : "ami-75g0061f”,
“InstanceType” : “m1.medium”
}
}
}
}
v
Template Anatomy
{
"Description" : "Create an EC2 instance.”,
"Parameters" : {
"UserKeyName" : {
"Description" : "The EC2 Key Pair to allow SSH access to the instance",
"Type" : "String"
}
},
"Resources" : {
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"KeyName" : { “Ref” : “UserKeyName”},
"ImageId" : "ami-75g0061f”,
“InstanceType” : “m1.medium”
}
}
}
}
v
Template Anatomy
{
"Description" : "Create an EC2 instance.”,
"Parameters" : {
"UserKeyName" : {
"Description" : "The EC2 Key Pair to allow SSH access to the instance",
"Type" : "String"
},
“InstanceType” : {
“Description” : “The EC2 Instance Type to launch.”,
“Type” : “String”,
“AllowedValues” : [“t1.micro”, “m1.small”, “m1.medium”]
}
},
"Resources" : {
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"KeyName" : { “Ref” : “UserKeyName”},
"ImageId" : "ami-75g0061f”,
“InstanceType” : { “Ref” : “InstanceType” }
}
}
},
"Outputs" : {
"InstancePublicDnsName" : {
"Description" : "The public DNS name of the newly created EC2 instance",
"Value" : { ”Fn::GetAtt" : [ "Ec2Instance”, “PublicDnsName” ] }
}
}
}
v
Application Deployment - User Data
"UserData": {
"Fn::Base64": {
"Fn::Join": [
"",
[
"#!/bin/bash -exn",
"yum -y install git-coren",
"yum -y install php-pearn",
"pear install Crypt_HMAC2-1.0.0n",
"pear install HTTP_Request-1.4.4n",
"pear install aws/sdkn",
v
Application Deployment - cfn-init
"Ec2Instance": {
"Metadata": {
"AWS::CloudFormation::Init": {
"config": {
"sources" : {
"/usr/local/bin/s3cmd" : "https://github.com/s3tools/s3cmd”
},
"packages": {
"yum": { "git": [] }
}
}
}
}
v
3rd Party Tools
• Easily integrate with existing configuration management tools
• Simply use User-Data or cfn-init to configure agents
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Cloudformation
• Elastic BeanStalk
• Opsworks
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
EC2 Container Service (ECS)
• Cluster Management Made Easy
• Flexible Scheduling
• High Performance
• Resource Efficiency
• Extensible
• Security
• Programmatic Control
• Docker Compatibility
• Monitoring
• AWS Integration
v
ECS Components
• Containers
• Names and identifies your image
• Includes default runtime attributes for your container (Environment Variables, Port
Mappings, Container entry point and commands, Resource constraints…)
• Tasks
• A group of related containers
• Container Instances
• An instance on which Tasks are scheduled
• Runs AMI with ECS Agent installed
• Registers into cluster on launch
• Clusters
• Provides a pool of resources for your Tasks
• A grouping of Container Instances
• Starts empty, dynamically scalable
v
User Workflow
I have a docker image I
want to run in a cluster
Push images
Create task definition
Run instances Use custom AMI with docker
support and ECS agent.ECS agent
will register with default cluster
Describe cluster Get information about cluster and
available resources
Similar to fig template
Customer
Customer
Customer
Customer
Customer
v
User Workflow
Run task
Describe cluster
Customer
Customer
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Cloudformation
• Elastic BeanStalk
• Opsworks
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
ALM | What is CodeCommit?
A secure, highly scalable, managed source
control service that hosts private Git repositories.
Eliminates the need to operate your own source
control system or worry about scaling its
infrastructure.
Basically, managed Git
v
ALM | What is CodeCommit?
Fully managed service source control service for hosting private
Git repositories
Automatically scales to meet the needs of your project
Stores any type of file (source, images, videos, libraries etc.) with
no limit on repository size.
Fully integrated with AWS CodePipeline and AWS CodeDeploy to
streamline development and release processes.
v
ALM | What is CodeCommit?
Only transfers incremental changes – not the entire application
CodeCommit supports all Git commands and works with your
existing Git-based tools (e.g., continuous integration/continuous
delivery systems, and graphical clients).
Built-in encryption support
Fully integrated with AWS Identity and Access Management (IAM)
v
ALM | Preliminary look at CodeCommit console
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Cloudformation
• Elastic BeanStalk
• Opsworks
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
ALM | What is CodePipeline?
A continuous delivery and release automation
service that aids smooth deployments.
You can design your development workflow for
checking in code, building the code, deploying
your application into staging, testing it, and
releasing it to production
Similar to Bamboo or Jenkins
v
ALM | What is CodePipeline?
CodePipeline standardizes and automates the software release
process, allowing you to rapidly release new features to users
Provides the capability to set up configurable gates between
each stage such as time-based rules or manual approvals
Workflows can be created to run unit and integration tests
before deploying to production
v
ALM | What is CodePipeline?
IMPORTANT:
Able to be used stand-alone as an end-to-end solution, or can
be integrated with your existing source control system, test
framework or build tools (like Bamboo, Jenkins, etc)
v
ALM | Preliminary look at the console
v
Agenda
• Intro to Continuous Integration and Continuous Deployment/Delivery
(CI-CD)
• CD Strategies
• CI-CD on AWS
– Application Management
• Cloudformation
• Elastic BeanStalk
• Opsworks
• EC2 Container Service (ECS)
– Application Lifecycle Management
• Code Commit
• Code Pipeline
• Code Deploy
v
Code Deploy
Deploys your released code to a "fleet" of EC2 instances
Accommodate fleets that range in size from one instance all the way up to
tens of thousands of instances
Automatically schedules updates across multiple Availability Zones in
order to maintain high availability during the deployment
Application and Deployment groups described in YAML-formatted files
Deployment groups identify EC2 instances by tags & can also reference
Auto Scaling Groups
Managed via AWS Management Console, CLI or APIs
Can be used in conjunction with Chef recipes or Puppet scripts
v
Code Deploy components
v
Code Deploy Workflow
Using AWS CodeDeploy
95
• Begin by defining an Application
Using AWS CodeDeploy
96
• Create a versioned revision for
deployment.
In this example the revision is stored
in S3 but it could also come from
CodeCommit or GitHub
Using AWS CodeDeploy
97
• Define the IAM role to be used when
interacting with other AWS services
such as EC2 or Auto Scaling
Using AWS CodeDeploy
98
• Create a new Deployment
Configuration or select from one of
the defaults.
Using AWS CodeDeploy
99
• Review your settings and deploy.
• Deployment progress will be
displayed in the AWS
Management Console.
https://secure.flickr.com/photos/dullhunk/202872717/

More Related Content

What's hot

Introduction to Amazon EKS
Introduction to Amazon EKSIntroduction to Amazon EKS
Introduction to Amazon EKS
Amazon Web Services
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java world
Ashok Kumar
 
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic BeanstalkDeploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Amazon Web Services
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
Cprime
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
Hazzim Anaya
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
Amazon Web Services
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
Amazon Web Services
 
Application & Account Monitoring in AWS
Application & Account Monitoring in AWSApplication & Account Monitoring in AWS
Application & Account Monitoring in AWS
Bhuvaneswari Subramani
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
Amazon Web Services
 
Terraform modules and (some of) best practices
Terraform modules and (some of) best practicesTerraform modules and (some of) best practices
Terraform modules and (some of) best practices
Anton Babenko
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
Billy Yuen
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
Kumar Shìvam
 
Secure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in AzureSecure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in Azure
kloia
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for Kubernetes
Amazon Web Services
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
Mettje Heegstra
 
AWS networking fundamentals
AWS networking fundamentalsAWS networking fundamentals
AWS networking fundamentals
Amazon Web Services
 
Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdf
Knoldus Inc.
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
Knoldus Inc.
 
K8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKSK8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKS
Amazon Web Services
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
Amazon Web Services
 

What's hot (20)

Introduction to Amazon EKS
Introduction to Amazon EKSIntroduction to Amazon EKS
Introduction to Amazon EKS
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java world
 
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic BeanstalkDeploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
Deploy, Manage, and Scale your Apps with AWS Elastic Beanstalk
 
Transforming Organizations with CI/CD
Transforming Organizations with CI/CDTransforming Organizations with CI/CD
Transforming Organizations with CI/CD
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
Build CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation SlidesBuild CICD Pipeline for Container Presentation Slides
Build CICD Pipeline for Container Presentation Slides
 
Amazon API Gateway
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
 
Application & Account Monitoring in AWS
Application & Account Monitoring in AWSApplication & Account Monitoring in AWS
Application & Account Monitoring in AWS
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Terraform modules and (some of) best practices
Terraform modules and (some of) best practicesTerraform modules and (some of) best practices
Terraform modules and (some of) best practices
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
 
Secure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in AzureSecure Your Code Implement DevSecOps in Azure
Secure Your Code Implement DevSecOps in Azure
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for Kubernetes
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
AWS networking fundamentals
AWS networking fundamentalsAWS networking fundamentals
AWS networking fundamentals
 
Introduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdfIntroduction to Nexus Repository Manager.pdf
Introduction to Nexus Repository Manager.pdf
 
Introduction to CICD
Introduction to CICDIntroduction to CICD
Introduction to CICD
 
K8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKSK8s on AWS: Introducing Amazon EKS
K8s on AWS: Introducing Amazon EKS
 
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWSAWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
AWS January 2016 Webinar Series - Introduction to Deploying Applications on AWS
 

Viewers also liked

Continuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECSContinuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECS
Amazon Web Services
 
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...
Amazon Web Services
 
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...
Amazon Web Services
 
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
Amazon Web Services
 
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
Amazon Web Services
 
Roma rolling update
Roma rolling updateRoma rolling update
Roma rolling update
Hiroaki Iwase
 
Titus AWS VPC networking for containers
Titus AWS VPC networking for containersTitus AWS VPC networking for containers
Titus AWS VPC networking for containers
Andrew Leung
 
AWS Webcast - Continuous integration with AWS and Ravello
AWS Webcast - Continuous integration with AWS and RavelloAWS Webcast - Continuous integration with AWS and Ravello
AWS Webcast - Continuous integration with AWS and Ravello
Amazon Web Services
 
Deep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interfaceDeep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interface
John Varghese
 
Introduction of aws-cli
Introduction of aws-cliIntroduction of aws-cli
Introduction of aws-cli
Masaaki HIROSE
 
Enterprise Application on AWS
Enterprise Application on AWSEnterprise Application on AWS
Enterprise Application on AWS
furbing
 
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment PatternsHow do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
Thoughtworks
 
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
Amazon Web Services
 
Webinar aws 101 a walk through the aws cloud- introduction to cloud computi...
Webinar aws 101   a walk through the aws cloud- introduction to cloud computi...Webinar aws 101   a walk through the aws cloud- introduction to cloud computi...
Webinar aws 101 a walk through the aws cloud- introduction to cloud computi...
Amazon Web Services
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Danilo Poccia
 
AWS Webinar: How to architect and deploy a multi tier share point server farm...
AWS Webinar: How to architect and deploy a multi tier share point server farm...AWS Webinar: How to architect and deploy a multi tier share point server farm...
AWS Webinar: How to architect and deploy a multi tier share point server farm...
Amazon Web Services
 
AWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipelineAWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipeline
Julien SIMON
 
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
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
La FeWeb
 
Advanced data migration techniques for Amazon RDS
Advanced data migration techniques for Amazon RDSAdvanced data migration techniques for Amazon RDS
Advanced data migration techniques for Amazon RDS
Tom Laszewski
 

Viewers also liked (20)

Continuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECSContinuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECS
 
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...
 
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...
 
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
(APP307) Leverage the Cloud with a Blue/Green Deployment Architecture | AWS r...
 
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
AWS re:Invent 2016: Enabling DevOps for an Enterprise with AWS Service Catalo...
 
Roma rolling update
Roma rolling updateRoma rolling update
Roma rolling update
 
Titus AWS VPC networking for containers
Titus AWS VPC networking for containersTitus AWS VPC networking for containers
Titus AWS VPC networking for containers
 
AWS Webcast - Continuous integration with AWS and Ravello
AWS Webcast - Continuous integration with AWS and RavelloAWS Webcast - Continuous integration with AWS and Ravello
AWS Webcast - Continuous integration with AWS and Ravello
 
Deep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interfaceDeep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interface
 
Introduction of aws-cli
Introduction of aws-cliIntroduction of aws-cli
Introduction of aws-cli
 
Enterprise Application on AWS
Enterprise Application on AWSEnterprise Application on AWS
Enterprise Application on AWS
 
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment PatternsHow do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
 
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
 
Webinar aws 101 a walk through the aws cloud- introduction to cloud computi...
Webinar aws 101   a walk through the aws cloud- introduction to cloud computi...Webinar aws 101   a walk through the aws cloud- introduction to cloud computi...
Webinar aws 101 a walk through the aws cloud- introduction to cloud computi...
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
 
AWS Webinar: How to architect and deploy a multi tier share point server farm...
AWS Webinar: How to architect and deploy a multi tier share point server farm...AWS Webinar: How to architect and deploy a multi tier share point server farm...
AWS Webinar: How to architect and deploy a multi tier share point server farm...
 
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...
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
 
Advanced data migration techniques for Amazon RDS
Advanced data migration techniques for Amazon RDSAdvanced data migration techniques for Amazon RDS
Advanced data migration techniques for Amazon RDS
 

Similar to Continuous delivery and deployment on AWS

DevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software DeliveryDevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software Delivery
Amazon Web Services
 
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...
Amazon Web Services
 
Devops on AWS
Devops on AWSDevops on AWS
Devops on AWS
AWS Riyadh User Group
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
Amazon Web Services
 
Aws container webinar day 2
Aws container webinar day 2Aws container webinar day 2
Aws container webinar day 2
HoseokSeo7
 
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
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
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
Amazon Web Services
 
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
Amazon Web Services
 
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
 
CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016
Paolo latella
 
Build on AWS: Building & Modernizing
Build on AWS: Building & ModernizingBuild on AWS: Building & Modernizing
Build on AWS: Building & Modernizing
Amazon Web Services
 
Build on AWS: Delivering and Modernizing.
Build on AWS: Delivering and Modernizing. Build on AWS: Delivering and Modernizing.
Build on AWS: Delivering and Modernizing.
Amazon Web Services
 
Continuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web ServicesContinuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web Services
Julien SIMON
 
The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)
Julien SIMON
 
AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)
Amazon Web Services
 
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...
Amazon Web Services
 
How Easy to Automate Application Deployment on AWS
How Easy to Automate Application Deployment on AWSHow Easy to Automate Application Deployment on AWS
How Easy to Automate Application Deployment on AWS
Institut Teknologi Sepuluh Nopember Surabaya
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
Amazon Web Services
 
Build an app on aws for your first 10 million users (2)
Build an app on aws for your first 10 million users (2)Build an app on aws for your first 10 million users (2)
Build an app on aws for your first 10 million users (2)
AWS Vietnam Community
 

Similar to Continuous delivery and deployment on AWS (20)

DevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software DeliveryDevOps on AWS - Accelerating Software Delivery
DevOps on AWS - Accelerating Software Delivery
 
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...
 
Devops on AWS
Devops on AWSDevops on AWS
Devops on AWS
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
Aws container webinar day 2
Aws container webinar day 2Aws container webinar day 2
Aws container webinar day 2
 
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
Dev Ops on AWS - Accelerating Software Delivery - AWS-Summit SG 2017
 
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
 
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
 
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 流程管理容器化和無伺服器應用
 
CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016CI&CD on AWS - Meetup Roma Oct 2016
CI&CD on AWS - Meetup Roma Oct 2016
 
Build on AWS: Building & Modernizing
Build on AWS: Building & ModernizingBuild on AWS: Building & Modernizing
Build on AWS: Building & Modernizing
 
Build on AWS: Delivering and Modernizing.
Build on AWS: Delivering and Modernizing. Build on AWS: Delivering and Modernizing.
Build on AWS: Delivering and Modernizing.
 
Continuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web ServicesContinuous Deployment with Amazon Web Services
Continuous Deployment with Amazon Web Services
 
The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)
 
AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)AWS Summit London 2014 | Deployment Done Right (300)
AWS Summit London 2014 | Deployment Done Right (300)
 
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...
 
How Easy to Automate Application Deployment on AWS
How Easy to Automate Application Deployment on AWSHow Easy to Automate Application Deployment on AWS
How Easy to Automate Application Deployment on AWS
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
 
Build an app on aws for your first 10 million users (2)
Build an app on aws for your first 10 million users (2)Build an app on aws for your first 10 million users (2)
Build an app on aws for your first 10 million users (2)
 

More from Shiva Narayanaswamy

State of Union - Containerz
State of Union - ContainerzState of Union - Containerz
State of Union - Containerz
Shiva Narayanaswamy
 
Pets, Cattle, Rabbits and Microbes
Pets, Cattle, Rabbits and Microbes Pets, Cattle, Rabbits and Microbes
Pets, Cattle, Rabbits and Microbes
Shiva Narayanaswamy
 
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
Shiva Narayanaswamy
 
Platform for Innovation - AWS
Platform for Innovation - AWSPlatform for Innovation - AWS
Platform for Innovation - AWS
Shiva Narayanaswamy
 
Application Delivery Patterns
Application Delivery PatternsApplication Delivery Patterns
Application Delivery Patterns
Shiva Narayanaswamy
 
AWS Security and SecOps
AWS Security and SecOpsAWS Security and SecOps
AWS Security and SecOps
Shiva Narayanaswamy
 
ECS and ECR deep dive
ECS and ECR deep diveECS and ECR deep dive
ECS and ECR deep dive
Shiva Narayanaswamy
 
AWS Tagging Strategy
AWS Tagging StrategyAWS Tagging Strategy
AWS Tagging Strategy
Shiva Narayanaswamy
 
AWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic ScaleAWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic Scale
Shiva Narayanaswamy
 
Build high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWSBuild high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWS
Shiva Narayanaswamy
 
Your APIs can be soft and fluffy
Your APIs can be soft and fluffyYour APIs can be soft and fluffy
Your APIs can be soft and fluffy
Shiva Narayanaswamy
 
Innovation at Scale - Top 10 AWS questions when you start
Innovation at Scale - Top 10 AWS questions when you startInnovation at Scale - Top 10 AWS questions when you start
Innovation at Scale - Top 10 AWS questions when you start
Shiva Narayanaswamy
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
Shiva Narayanaswamy
 
Event driven infrastructure
Event driven infrastructureEvent driven infrastructure
Event driven infrastructure
Shiva Narayanaswamy
 
AWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro TipsAWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro Tips
Shiva Narayanaswamy
 
Dev/Test Environment Provisioning and Management on AWS
Dev/Test Environment Provisioning and Management on AWSDev/Test Environment Provisioning and Management on AWS
Dev/Test Environment Provisioning and Management on AWS
Shiva Narayanaswamy
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best Practices
Shiva Narayanaswamy
 
Application Lifecycle Management and Event Driven Programming on AWS
Application Lifecycle Management and Event Driven Programming on AWSApplication Lifecycle Management and Event Driven Programming on AWS
Application Lifecycle Management and Event Driven Programming on AWS
Shiva Narayanaswamy
 
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
Shiva Narayanaswamy
 
Running Hybrid Cloud Patterns on AWS
Running Hybrid Cloud Patterns on AWSRunning Hybrid Cloud Patterns on AWS
Running Hybrid Cloud Patterns on AWS
Shiva Narayanaswamy
 

More from Shiva Narayanaswamy (20)

State of Union - Containerz
State of Union - ContainerzState of Union - Containerz
State of Union - Containerz
 
Pets, Cattle, Rabbits and Microbes
Pets, Cattle, Rabbits and Microbes Pets, Cattle, Rabbits and Microbes
Pets, Cattle, Rabbits and Microbes
 
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
 
Platform for Innovation - AWS
Platform for Innovation - AWSPlatform for Innovation - AWS
Platform for Innovation - AWS
 
Application Delivery Patterns
Application Delivery PatternsApplication Delivery Patterns
Application Delivery Patterns
 
AWS Security and SecOps
AWS Security and SecOpsAWS Security and SecOps
AWS Security and SecOps
 
ECS and ECR deep dive
ECS and ECR deep diveECS and ECR deep dive
ECS and ECR deep dive
 
AWS Tagging Strategy
AWS Tagging StrategyAWS Tagging Strategy
AWS Tagging Strategy
 
AWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic ScaleAWS + Puppet = Dynamic Scale
AWS + Puppet = Dynamic Scale
 
Build high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWSBuild high performing mobile apps, faster with AWS
Build high performing mobile apps, faster with AWS
 
Your APIs can be soft and fluffy
Your APIs can be soft and fluffyYour APIs can be soft and fluffy
Your APIs can be soft and fluffy
 
Innovation at Scale - Top 10 AWS questions when you start
Innovation at Scale - Top 10 AWS questions when you startInnovation at Scale - Top 10 AWS questions when you start
Innovation at Scale - Top 10 AWS questions when you start
 
DevOps and AWS
DevOps and AWSDevOps and AWS
DevOps and AWS
 
Event driven infrastructure
Event driven infrastructureEvent driven infrastructure
Event driven infrastructure
 
AWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro TipsAWS Connectivity, VPC Design and Security Pro Tips
AWS Connectivity, VPC Design and Security Pro Tips
 
Dev/Test Environment Provisioning and Management on AWS
Dev/Test Environment Provisioning and Management on AWSDev/Test Environment Provisioning and Management on AWS
Dev/Test Environment Provisioning and Management on AWS
 
DevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best PracticesDevOps, Common use cases, Architectures, Best Practices
DevOps, Common use cases, Architectures, Best Practices
 
Application Lifecycle Management and Event Driven Programming on AWS
Application Lifecycle Management and Event Driven Programming on AWSApplication Lifecycle Management and Event Driven Programming on AWS
Application Lifecycle Management and Event Driven Programming on AWS
 
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
 
Running Hybrid Cloud Patterns on AWS
Running Hybrid Cloud Patterns on AWSRunning Hybrid Cloud Patterns on AWS
Running Hybrid Cloud Patterns on AWS
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 

Continuous delivery and deployment on AWS

  • 1. Continuous Delivery/Deployment on AWS Version 1.0 Shiva N (narshiva@amazon.com) AWS Solution Architect
  • 2. ~11.6s Mean time between deployments (weekday) ~1,079 Max number of deployments in a single hour ~10,000 Mean number of hosts simultaneously receiving a deployment ~30,000 Max number of hosts simultaneously receiving a deployment DEPLOYMENTS AT AMAZON.COM
  • 3. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Elastic BeanStalk • Opsworks • Cloudformation • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 4. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Elastic BeanStalk • Opsworks • Cloudformation • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 5. v Version Control CI Server Package Builder Deploy ServerCommit to Git/master Dev Get / Pull Code AMIs Send Build Report to Dev Stop everything if build failed Distributed Builds Run Tests in parallel Staging Env Test Env Code Config Tests Prod Env Push Config Install Create Repo CloudFormation Templates for Env Generate Continuous Integration
  • 6. 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
  • 7. v Version Control CI Server Package Builder Deploy ServerCommit to Git/master Dev Get / Pull Code AMIs Send Build Report to Dev Stop everything if build failed Distributed Builds Run Tests in parallel Staging Env Test Env Code Config Tests Prod Env Push Config Install Create Repo CloudFormation Templates for Env Generate Continuous Delivery/Deployment
  • 8. v What does CD give us? • Automated, repeatable process to push changes to production • Hardens, de-risks the deployment process • Immediate feedback from users • Supports A/B testing or “We test customer reactions to features in production” • Gives us a breadth of data points across our applications
  • 9. v Continuous Delivery Vs Continuous Deployment
  • 10. v Version Control Build/ Compile Code Dev Unit Test App Code IT Ops DR Env Test Env Prod Env Dev Env Application Write App Code Infrastructure CloudFormation tar, war, zip yum, rpmDeploy App Package Application Example CI-CD Pipeline Deploy application only Deploy infrastructure only AMI Build AMIs Validate Templates Write Infra Code Deploy Infras Automate Deploymen t Artifact Repository
  • 13. v
  • 14. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Elastic BeanStalk • Opsworks • Cloudformation • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 16. v Delivery approaches • How are we going to deliver our code? • File shipping: • Binaries (.rpm, .msi. .exe, .deb, .conf…) • As an AMI: • Bundle one or more of the above into an AMI • Which method do you choose? • How fast do we need to do this? • Across how many instances? • How do we roll back (or forward)?
  • 18. v Delivery approaches… Fully Functional AMI OS-Only AMI Partially Configured AMI Most amount of post- boot work Least flexible to maintain Try and find a happy medium here
  • 19. v Deployment approaches • Deploy in place • Deploy all at once (Service outage) • Rolling updates • Blue-Green Deployment • Discrete environment • Multiple environments from branches • Support A/B testing • “Rolling DNS” • Alternate Blue-Green (Red-Black?) deployment • Alternate auto scaling group • Avoid messing with DNS
  • 20. v Deploy in place – Rolling update
  • 21. v Deploy in place – Rolling update
  • 22. v Deploy in place – Rolling update
  • 23. v Deploy in place – Rolling update
  • 24. v Deploy in place – Rolling update
  • 25. v Deploy in place – Rolling update
  • 26. v Blue-Green deployment Amazon Route 53 EC2 Instances ELB 100% DynamoDB MySQL RDS Instance ElastiCache Cache Node
  • 27. v Blue-Green deployment Amazon Route 53 EC2 Instances ELB EC2 Instances ELB 100% UAT DynamoDB MySQL RDS Instance ElastiCache Cache Node
  • 28. v Blue-Green deployment Amazon Route 53 EC2 Instances ELB EC2 Instances ELB 90% 10% DynamoDB MySQL RDS Instance ElastiCache Cache Node
  • 29. v Blue-Green deployment Amazon Route 53 EC2 Instances ELB EC2 Instances ELB 50% 50% DynamoDB MySQL RDS Instance ElastiCache Cache Node
  • 30. v Blue-Green deployment Amazon Route 53 EC2 Instances ELB EC2 Instances ELB 0% 100% DynamoDB MySQL RDS Instance ElastiCache Cache Node
  • 31. v Blue-Green deployment Amazon Route 53 EC2 Instances ELB EC2 Instances ELB 0% 100% DynamoDB MySQL RDS Instance ElastiCache Cache Node
  • 33. v Red-Black Deployment Auto Scaling Group V1 Auto Scaling Group V2 ELB Amazon Relational Database Service (RDS) UAT
  • 34. v Red-Black Deployment Auto Scaling Group V1 Auto Scaling Group V2 ELB Amazon Relational Database Service (RDS)
  • 37. v
  • 38. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Elastic BeanStalk • Opsworks • Cloudformation • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 39. v AWS OpsWorks AWS CloudFormation AWS Elastic Beanstalk DevOps framework for application lifecycle management and automation Templates to deploy & update infrastructure as code Automated resource management – web apps made easy DIY / On Demand DIY, on demand resources: EC2, S3, custom AMI’s, etc. Deployment and Management Convenience Control
  • 40. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Elastic BeanStalk • Opsworks • Cloudformation • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 41. v AWS Elastic Beanstalk (EB) • Easily deploy, monitor, and scale three-tier web applications and services. • Infrastructure provisioned and managed by EB – but you maintain complete control. • Preconfigured application containers that are easily customizable. • Support for these platforms: Jav a PHP Python Ruby .NET Node.js docker
  • 42. v Elastic Beanstalk object model Application Environments •Infrastructure resources (such as EC2 instances, ELB load balancers, and Auto Scaling groups) •Runs a single application version at a time for better scalability •An application can have many environments (such as staging and production) Application versions •Application code •Stored in Amazon S3 •An application can have many application versions (easy to rollback to previous versions) Saved configurations •Configuration that defines how an environment and its resources behave •Can be used to launch new environments quickly or roll-back configuration •An application can have many saved configurations
  • 43. v Elastic Beanstalk environment • Two types: • Single instance • Load balancing, auto scaling • Two tiers (web server and worker) • Elastic Beanstalk provisions necessary infrastructure resources such as load balancers, auto-scaling groups, security groups, and databases (optional) • Configures Amazon Route 53 and gives you a unique domain name (For example: yourapp.elasticbeanstalk.com)
  • 44. v On-instance configuration Your code HTTP server Application server Language interpreter Operating system Host • Elastic Beanstalk configures each EC2 instance in your environment with the components necessary to run applications for the selected platform • No more worrying about logging into instances to install and configure your application stack Focus on building your application
  • 45. v Application versions and saved configurations Saved configurations Save these for easy duplication for A/B testing or non-disruptive deployments Application versions All versions are stored durably in Amazon S3. Code can also be pushed from a Git repository!
  • 46. v Deployment options 1. Via the AWS Management Console 2. Via Git / EB CLI 3. Via the AWS Toolkit for Eclipse and the Visual Studio IDE $ git aws.push
  • 47. v Deployment configuration Region01 Stack (container) type02 Single instance Load balanced with Auto Scaling 03 OR Database (RDS)04 Optional Your code
  • 48. v Example: CLI workflow Initial app deployment: $ git init . $ git add . Initialize your Git repository01 Add your code04 $ eb init $ git commit –m “v1.0” Create your Elastic Beanstalk app02 Commit05 Follow the prompts to configure the environment 03 Create the resources and launch the application 06 $ eb create
  • 49. v Example: CLI workflow Update your app: Update your code01 $ git add . $ git commit –m “v2.0” $ eb deploy Push the new code02 Monitor the deployment progress03 $ eb status
  • 50. vAdd custom software to your environment using ebextensions: Customize application containers packages: yum: newrelic-sysmond: [] rpm: newrelic: http://yum.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm commands: 0_newrelic_command: command: "touch /tmp/$(date '+%F.%T.%N').newrelic_command_0" 1_configure_new_relic_key: command: nrsysmond-config --set license_key=<Your key here> 1a_newrelic_command: command: "touch /tmp/$(date '+%F.%T.%N').newrelic_command_1a" 2_start_new_relic: command: "/etc/init.d/newrelic-sysmond start" 2a_newrelic_command: command: "touch /tmp/$(date '+%F.%T.%N').newrelic_command_2a"
  • 51. v Iterate on application architecture Add additional resources to your environments using ebextensions: Add other components such as: • In-memory caching (Amazon ElastiCache Redis and Memcached) • Amazon SQS • Amazon CloudFront Resources: MyElastiCache: Type: AWS::ElastiCache::CacheCluster Properties: CacheNodeType: Fn::GetOptionSetting: OptionName : CacheNodeType DefaultValue: cache.m1.small NumCacheNodes: Fn::GetOptionSetting: OptionName : NumCacheNodes DefaultValue: 1 Engine: Fn::GetOptionSetting: OptionName : Engine DefaultValue: memcached
  • 52. v Zero-downtime deployments Swap URLs 1. Create a new environment for an existing application 2. Deploy your updated application code to the new environment 3. Use the “Swap URLs” feature to transition users to the new production environment
  • 53. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Elastic BeanStalk • Opsworks • Cloudformation • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 54. v AWS OpsWorks architecture Amazon EC2, Amazon EBS, EIP, Amazon VPC, Elastic Load Balancing…. Auto-Scaling, Auto-Healing…. On-instance execution via Chef client/zero Command JSON Command Log+Status
  • 55. v The heart of AWS OpsWorks 5 5 understands a set of commands that are triggered by OpsWorks. The agent then runs a Chef solo run. Agent on each EC2 instance
  • 56. v Chef integration • Supports Chef 11.10 • Built-in convenience cookbooks / bring your own • Chef run is triggered by lifecycle event firing: push vs. pull • Event comes with stack state JSON
  • 57. v Opsworks components Stack is basically a container for AWS resources—Amazon EC2 instances, Amazon EBS volumes, Elastic IP addresses, and so on—that have a common purpose and would be logically managed together. A layer is basically a blueprint that specifies how to configure a set of Amazon EC2 instances for a particular purpose, such as serving applications or hosting a database server. Eg Java App server layer, PHP layer, RDS layer, MySQL Layer, HAProxy layer etc An instance represents an Amazon EC2 instance and defines its basic configuration, such as operating system and size. Each layer has an associated set of Chef recipes that AWS OpsWorks runs on the layer's instances at key points in an instance's life cycle. Each application is represented by an app, which specifies the application type and contains the information that AWS OpsWorks needs to deploy the application from the repository to your instances.
  • 58. v Scalability • Auto healing • Auto scaling • Load balancing • Scaling – time • Scaling - load Opsworks components Infrastructure Provisioning • Region • Availability Zone • Operating system • Keys Application Architecture • Load balancers • Web layer • Elastic IP’s • Security groups • Database layer Configure Application • Source of packages • Git, svn, S3 Monitoring • Logs • Monitor Deployment • Environments • Dev, Test, Prod AWS OpsWorks stack layers instances applications deployments monitoring
  • 60. v Setup event • Sent when instance boots • Includes deploy event • Use for initial installation of software & services
  • 61. v Configure event • Sent to all instances when any instance enters or leaves online state • Use for making sure the configuration is up-to-date
  • 62. v Deploy event • Sent when you deploy via UI/API; part of each setup. • Use for custom deployment
  • 63. v Undeploy event • Sent via UI/API when apps are deleted • Use to remove apps from running instances
  • 64. v Shutdown event • Sent when an instance is shut down • ~45s to execute • Use for clean shutdown
  • 66. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Elastic BeanStalk • Opsworks • Cloudformation • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 67. v Amazon CloudFormation • Infrastructure as Code • Integrates with version control • JSON format • Templates • Stacks • Supports all AWS resource types AWS CloudFormation
  • 68. v AWS CloudFormation: Model Your App • Document, version control, and share your applications and infrastructure as a JSON document • Provision app and other AWS resources (VPC, DynamoDB, etc) from a template • Repeatable, reliable deployments for test/dev/prod in any AWS Region
  • 69. v AWS CloudFormation: Application stack example (continue) Architecting on AWS – Overview of Services for Web Applications Template File Defining Stack Git Subversion Mercurial Dev Test Prod The entire application can be represented in an AWS CloudFormation template. Use the version control system of your choice to store and track changes to this template Build out multiple environments, such as for Development, Test, and Production using the template
  • 70. v Template Anatomy { "Description" : "Create an EC2 instance.”, "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "KeyName" : “my-key-pair”, "ImageId" : "ami-75g0061f”, “InstanceType” : “m1.medium” } } } }
  • 71. v Template Anatomy { "Description" : "Create an EC2 instance.”, "Parameters" : { "UserKeyName" : { "Description" : "The EC2 Key Pair to allow SSH access to the instance", "Type" : "String" } }, "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "KeyName" : { “Ref” : “UserKeyName”}, "ImageId" : "ami-75g0061f”, “InstanceType” : “m1.medium” } } } }
  • 72. v Template Anatomy { "Description" : "Create an EC2 instance.”, "Parameters" : { "UserKeyName" : { "Description" : "The EC2 Key Pair to allow SSH access to the instance", "Type" : "String" }, “InstanceType” : { “Description” : “The EC2 Instance Type to launch.”, “Type” : “String”, “AllowedValues” : [“t1.micro”, “m1.small”, “m1.medium”] } }, "Resources" : { "Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "KeyName" : { “Ref” : “UserKeyName”}, "ImageId" : "ami-75g0061f”, “InstanceType” : { “Ref” : “InstanceType” } } } }, "Outputs" : { "InstancePublicDnsName" : { "Description" : "The public DNS name of the newly created EC2 instance", "Value" : { ”Fn::GetAtt" : [ "Ec2Instance”, “PublicDnsName” ] } } } }
  • 73. v Application Deployment - User Data "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -exn", "yum -y install git-coren", "yum -y install php-pearn", "pear install Crypt_HMAC2-1.0.0n", "pear install HTTP_Request-1.4.4n", "pear install aws/sdkn",
  • 74. v Application Deployment - cfn-init "Ec2Instance": { "Metadata": { "AWS::CloudFormation::Init": { "config": { "sources" : { "/usr/local/bin/s3cmd" : "https://github.com/s3tools/s3cmd” }, "packages": { "yum": { "git": [] } } } } }
  • 75. v 3rd Party Tools • Easily integrate with existing configuration management tools • Simply use User-Data or cfn-init to configure agents
  • 76. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Cloudformation • Elastic BeanStalk • Opsworks • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 77. v EC2 Container Service (ECS) • Cluster Management Made Easy • Flexible Scheduling • High Performance • Resource Efficiency • Extensible • Security • Programmatic Control • Docker Compatibility • Monitoring • AWS Integration
  • 78. v ECS Components • Containers • Names and identifies your image • Includes default runtime attributes for your container (Environment Variables, Port Mappings, Container entry point and commands, Resource constraints…) • Tasks • A group of related containers • Container Instances • An instance on which Tasks are scheduled • Runs AMI with ECS Agent installed • Registers into cluster on launch • Clusters • Provides a pool of resources for your Tasks • A grouping of Container Instances • Starts empty, dynamically scalable
  • 79. v User Workflow I have a docker image I want to run in a cluster Push images Create task definition Run instances Use custom AMI with docker support and ECS agent.ECS agent will register with default cluster Describe cluster Get information about cluster and available resources Similar to fig template Customer Customer Customer Customer Customer
  • 80. v User Workflow Run task Describe cluster Customer Customer
  • 81. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Cloudformation • Elastic BeanStalk • Opsworks • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 82. v ALM | What is CodeCommit? A secure, highly scalable, managed source control service that hosts private Git repositories. Eliminates the need to operate your own source control system or worry about scaling its infrastructure. Basically, managed Git
  • 83. v ALM | What is CodeCommit? Fully managed service source control service for hosting private Git repositories Automatically scales to meet the needs of your project Stores any type of file (source, images, videos, libraries etc.) with no limit on repository size. Fully integrated with AWS CodePipeline and AWS CodeDeploy to streamline development and release processes.
  • 84. v ALM | What is CodeCommit? Only transfers incremental changes – not the entire application CodeCommit supports all Git commands and works with your existing Git-based tools (e.g., continuous integration/continuous delivery systems, and graphical clients). Built-in encryption support Fully integrated with AWS Identity and Access Management (IAM)
  • 85. v ALM | Preliminary look at CodeCommit console
  • 86. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Cloudformation • Elastic BeanStalk • Opsworks • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 87. v ALM | What is CodePipeline? A continuous delivery and release automation service that aids smooth deployments. You can design your development workflow for checking in code, building the code, deploying your application into staging, testing it, and releasing it to production Similar to Bamboo or Jenkins
  • 88. v ALM | What is CodePipeline? CodePipeline standardizes and automates the software release process, allowing you to rapidly release new features to users Provides the capability to set up configurable gates between each stage such as time-based rules or manual approvals Workflows can be created to run unit and integration tests before deploying to production
  • 89. v ALM | What is CodePipeline? IMPORTANT: Able to be used stand-alone as an end-to-end solution, or can be integrated with your existing source control system, test framework or build tools (like Bamboo, Jenkins, etc)
  • 90. v ALM | Preliminary look at the console
  • 91. v Agenda • Intro to Continuous Integration and Continuous Deployment/Delivery (CI-CD) • CD Strategies • CI-CD on AWS – Application Management • Cloudformation • Elastic BeanStalk • Opsworks • EC2 Container Service (ECS) – Application Lifecycle Management • Code Commit • Code Pipeline • Code Deploy
  • 92. v Code Deploy Deploys your released code to a "fleet" of EC2 instances Accommodate fleets that range in size from one instance all the way up to tens of thousands of instances Automatically schedules updates across multiple Availability Zones in order to maintain high availability during the deployment Application and Deployment groups described in YAML-formatted files Deployment groups identify EC2 instances by tags & can also reference Auto Scaling Groups Managed via AWS Management Console, CLI or APIs Can be used in conjunction with Chef recipes or Puppet scripts
  • 95. Using AWS CodeDeploy 95 • Begin by defining an Application
  • 96. Using AWS CodeDeploy 96 • Create a versioned revision for deployment. In this example the revision is stored in S3 but it could also come from CodeCommit or GitHub
  • 97. Using AWS CodeDeploy 97 • Define the IAM role to be used when interacting with other AWS services such as EC2 or Auto Scaling
  • 98. Using AWS CodeDeploy 98 • Create a new Deployment Configuration or select from one of the defaults.
  • 99. Using AWS CodeDeploy 99 • Review your settings and deploy. • Deployment progress will be displayed in the AWS Management Console.

Editor's Notes

  1. Adrian
  2. Adrian
  3. Make the results of change visible to everyone who causes or deals with change!
  4. LOG EVERYTHING & SHIP YOUR LOGS
  5. Deploying code
  6. Adrian
  7. LOG EVERYTHING & SHIP YOUR LOGS
  8. STACK = container of resources, LAYER = set of resources performing a purpose, INSTANCE = an EC2 instance. APP – defines application, type and its repository info Part of AWS Deployment and Management offerings – is FREE !!! OpsWorks makes it easy to deploy AND operate operations. Define the application’s architecture and the specification of each component including package installation, software configuration and resources such as storage. Use existing templates or build your own Mention Chef recipes used in OpsWorks – for stack definition and deployment
  9. https://secure.flickr.com/photos/macwagen/94975613
  10. Notes: The entire application can be represented in an AWS CloudFormation template. You can use the version control system of your choice to store and track changes to this template. You can use the template to quickly build out multiple environments, such as for Development, Test, and Production.
  11. https://secure.flickr.com/photos/dullhunk/202872717/