SlideShare a Scribd company logo
1 of 100
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

Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesImproving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesAmazon Web Services
 
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018Amazon Web Services
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesDmitry Lazarenko
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWSAmazon Web Services
 
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAmazon Web Services
 
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Amazon Web Services
 
Security Process in DevSecOps
Security Process in DevSecOpsSecurity Process in DevSecOps
Security Process in DevSecOpsOpsta
 
Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Amazon Web Services
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeAmazon Web Services
 
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나Amazon Web Services Korea
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless ArchitectureElana Krasner
 
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic BeanstalkAmazon Web Services
 
CodeBuild CodePipeline CodeDeploy CodeCommit in AWS | Edureka
CodeBuild CodePipeline CodeDeploy CodeCommit in AWS | EdurekaCodeBuild CodePipeline CodeDeploy CodeCommit in AWS | Edureka
CodeBuild CodePipeline CodeDeploy CodeCommit in AWS | EdurekaEdureka!
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingAmazon Web Services
 
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 cdBilly Yuen
 
AWS Cloud Center Excellence Quick Start Prescriptive Guidance
AWS Cloud Center Excellence Quick Start Prescriptive GuidanceAWS Cloud Center Excellence Quick Start Prescriptive Guidance
AWS Cloud Center Excellence Quick Start Prescriptive GuidanceTom Laszewski
 

What's hot (20)

AWS Technical Essentials Day
AWS Technical Essentials DayAWS Technical Essentials Day
AWS Technical Essentials Day
 
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar SeriesImproving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
Improving Infrastructure Governance on AWS - AWS June 2016 Webinar Series
 
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
How To Run Your Containers on AWS with ECS & Fargate: Collision 2018
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Containers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. KubernetesContainers orchestrators: Docker vs. Kubernetes
Containers orchestrators: Docker vs. Kubernetes
 
(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS(DVO401) Deep Dive into Blue/Green Deployments on AWS
(DVO401) Deep Dive into Blue/Green Deployments on AWS
 
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
 
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
Instrumenting Kubernetes for Observability Using AWS X-Ray and Amazon CloudWa...
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
Security Process in DevSecOps
Security Process in DevSecOpsSecurity Process in DevSecOps
Security Process in DevSecOps
 
Introduction to AWS Step Functions:
Introduction to AWS Step Functions: Introduction to AWS Step Functions:
Introduction to AWS Step Functions:
 
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_SingaporeCI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
CI-CD with AWS Developer Tools and Fargate_AWSPSSummit_Singapore
 
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나
AWS 클라우드 서비스 소개 및 사례 (방희란) - AWS 101 세미나
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
(DVO201) Scaling Your Web Applications with AWS Elastic Beanstalk
 
CodeBuild CodePipeline CodeDeploy CodeCommit in AWS | Edureka
CodeBuild CodePipeline CodeDeploy CodeCommit in AWS | EdurekaCodeBuild CodePipeline CodeDeploy CodeCommit in AWS | Edureka
CodeBuild CodePipeline CodeDeploy CodeCommit in AWS | Edureka
 
Getting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless ComputingGetting Started with AWS Lambda and Serverless Computing
Getting Started with AWS Lambda and Serverless Computing
 
AWS CodeDeploy Getting Started
AWS CodeDeploy Getting StartedAWS CodeDeploy Getting Started
AWS CodeDeploy Getting Started
 
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
 
AWS Cloud Center Excellence Quick Start Prescriptive Guidance
AWS Cloud Center Excellence Quick Start Prescriptive GuidanceAWS Cloud Center Excellence Quick Start Prescriptive Guidance
AWS Cloud Center Excellence Quick Start Prescriptive Guidance
 

Viewers also liked

Continuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECSContinuous Delivery to Amazon ECS
Continuous Delivery to Amazon ECSAmazon 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
 
Titus AWS VPC networking for containers
Titus AWS VPC networking for containersTitus AWS VPC networking for containers
Titus AWS VPC networking for containersAndrew 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 RavelloAmazon 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 interfaceJohn Varghese
 
Introduction of aws-cli
Introduction of aws-cliIntroduction of aws-cli
Introduction of aws-cliMasaaki HIROSE
 
Enterprise Application on AWS
Enterprise Application on AWSEnterprise Application on AWS
Enterprise Application on AWSfurbing
 
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 PatternsThoughtworks
 
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 AWSAmazon 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 ToolsDanilo 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 & CodePipelineJulien 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 learnedLa 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 RDSTom 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 DeliveryAmazon 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
 
Aws container webinar day 2
Aws container webinar day 2Aws container webinar day 2
Aws container webinar day 2HoseokSeo7
 
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 2017Amazon 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 ServicesAmazon 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 ServicesAmazon 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 AWSAmazon 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 2016Paolo latella
 
Build on AWS: Building & Modernizing
Build on AWS: Building & ModernizingBuild on AWS: Building & Modernizing
Build on AWS: Building & ModernizingAmazon 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 ServicesJulien 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
 
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 AWSAmazon Web Services
 

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
 
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
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...
 
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
 
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
 

More from 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 AWSShiva 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 AWSShiva 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 fluffyShiva 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 startShiva 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 TipsShiva 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 AWSShiva 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 PracticesShiva 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 AWSShiva 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 AWSShiva Narayanaswamy
 
Running Hybrid Cloud Patterns on AWS
Running Hybrid Cloud Patterns on AWSRunning Hybrid Cloud Patterns on AWS
Running Hybrid Cloud Patterns on AWSShiva 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

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

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/