SlideShare a Scribd company logo
November 13, 2014 | Las Vegas NV 
Chris Munns, AWS Solutions Architect
@chrismunns 
•munns@amazon.com
https://secure.flickr.com/photos/psd/4389135567/
Historically, there was no automation for developers:
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
Historically, development needed to be tightly controlled:
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
?
QA 
Staging 
Dev 
Prod
QA 
Staging 
Dev 
Prod
QA 
Staging 
Dev 
ProdUnit TestsIntegration TestsUsability TestsPerformance TestsAcceptance TestsSystem TestsRegression TestsMonitoringA/B Tests
QA 
Staging 
Dev 
Prod
QA 
Staging 
Dev 
ProdUnit TestsIntegration TestsUsability TestsPerformance TestsAcceptance TestsSystem TestsRegression TestsMonitoringA/B Tests
?
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
Where do we begin? 
https://secure.flickr.com/photos/stevendepolo/5749192025/
If you are part of an Ops / “DevOps” / “DevTools” / “CoreInfra” / whatever team that has developers as an internal customer, it’s your job to help them:
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
DEVQAPROD 
BarkerYour environments should be as similar to each other as possible!
Make the process so easy a Cavemancould do it* *provided they have the appropriate access to!
Complexity of the process isn’t necessarily bad, so long as not everyone in the organization HAS to know how the sausage is made 
https://secure.flickr.com/photos/erix/2657100921
https://secure.flickr.com/photos/jasoneppink/499531891Make the results of change visible to everyone who causes or deals with change!
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
Aim to reduce the “works on my machine” failures inherent with developing on one OS and running production on another:
Docker is really changing how applications are being built and deployed! NEW!
“A Better Dev/Test Experience: Docker and AWS” on Medium! https://medium.com/aws-activate-startup-blog/a-better-dev-test-experience- docker-and-aws-291da5ab1238 
http://bit.ly/1saojKw
Dramatically lowers the complexity in running developer environments. Let’s set it up: 
[munns@maclaptop ~]$ vagrant init chef/centos-6.5 
[munns@maclaptop ~]$ vagrant up 
[munns@maclaptop ~]$ vagrant ssh 
Last login: Fri Mar 7 16:57:20 2014 from 10.0.2.2 
[vagrant@zekaih ~]$ uname -a 
Linux zekaih.munnsdev.com 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
•Continuous integration 
•Continuous deployment
•Continuous integration
Continuous deploymentalwayscontinuous integration. Continuous integration doesn’tmean that the code gets deployed to production every commit! 
https://secure.flickr.com/photos/isherwoodchris/6917253693
CI tools:
CI bits
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
Green is good!
Deploying code 
https://secure.flickr.com/photos/simononly/15386966677
Convenience 
Control 
Higher-level services 
Do it yourself 
AWSElastic Beanstalk 
AWSOpsWorks 
AWSCloudFormation 
AWS 
CodeDeploy 
AWS application/infrastructure management tools
AWS application/infrastructure management tools 
Convenience 
Control 
Higher-level services 
Do it yourself 
AWSElastic Beanstalk 
AWSOpsWorks 
AWSCloudFormation 
AWS 
CodeDeploy 
NEW!!
You’re not still configuring your servers by hand, right?
Options: 
Deciding factors: 
How are you getting the bits from your code repository to your destination environments?
Simplest of all methods. Use a deployment tool to either do a repo sync, or copy the raw files from one environment to another: 
Pros: 
–Easy to get started with 
–No need for midprocess packaging steps 
Cons: 
–Rollbacks could become a challenge 
–Harder to do at large scale 
AWS services can make it really easy to deploy from a repository: 
–AWS CodeDeploy 
–AWS Elastic Beanstalk 
–AWS OpsWorks
Example with OpsWorks: 
[root@saarbrucken infrahelper]# ll /srv/www/infrahelper/ 
total 8 
lrwxrwxrwx 1 deploy apache 44 Oct 21 20:43 current -> /srv/www/infrahelper/releases/20141021204316 
drwxr-xr-x 7 deploy apache 4096 Oct 21 20:43 releases 
drwxrwx---9 deploy apache 4096 Oct 21 20:43 shared 
<----------------------DEPLOY HAPPENS---------------------> 
[root@saarbrucken infrahelper]# ll /srv/www/infrahelper/ 
total 8 
lrwxrwxrwx 1 deploy apache 44 Nov 7 21:44 current -> /srv/www/infrahelper/releases/20141107214310
Bundle up your code, deploy the bundle: 
Pros: 
–Very atomic solution to deploying code 
–Easy to track versions and changes across environments 
Cons: 
–Potentially very large deployable assets 
Package will be largely unique to the OS/language you are using:
Example using FPM (Effing Package Management) 
[munns@somehost ~]$ gem install fpm 
….. 
[munns@somehost ~]$ git clone https://github.com/teknogeek0/ReInvent2014-InfraHelper.git 
…... 
[munns@somehost ~]$ fpm -s dir -t rpm -n "InfraHelper" -v 1.0 --epoch 1 ReInvent2014-InfraHelper/=/opt/InfraHelper 
Created package {:path=>"InfraHelper-1.0-1.x86_64.rpm"} 
[munns@somehost ~]$ rpm -ivh InfraHelper-1.0-1.x86_64.rpm 
….. 
[munns@somehost ~]$ rpm -qa InfraHelper 
InfraHelper-1.0-1.x86_64 
[munns@somehost ~]$ ls -l /opt/InfraHelper/ 
total 32 
drwxr-xr-x 2 root root 4096 Nov 4 23:07 flow 
-rw-r--r--1 root root 156 Nov 4 23:06 Gemfile 
-rwxr-xr-x 1 root root 661 Nov 4 23:06 IHQueueWatcher_control.rb 
-rw-r--r--1 root root 2765 Nov 4 23:06 infrahelper_utils.rb 
…..
Generate a new AMI with your updated code on it. Launch it: 
Pros: 
–The most atomic way possible 
•Won’t affect any currently running instances 
–Can pretty easily run two versions side by side 
Cons: 
–Bit more work involved 
–Really have to think about data persistence 
–Have to think about how rollbacks would happen 
Bunch of tools to help you build AMIs quick and easy:
# ./packer validate webimage.json 
Template validated successfully. 
# ./packer build webimage.json 
amazon-ebs output will be in this color. 
==> amazon-ebs: Inspecting the source AMI... 
==> amazon-ebs: Creating temporary keypair: packer 5459736e-26a7-5983-db5a-df145dafa7e7 
…. 
Build 'amazon-ebs' finished. 
==> Builds finished. The artifacts of successful builds are: 
--> amazon-ebs: AMIs were created: 
us-west-2: ami-5f9bd36f 
# cat webimage.json 
{ 
"variables": { 
"aws_access_key": "", 
"aws_secret_key": "" 
}, 
"builders": [{ 
"type": "amazon-ebs", 
"access_key": "{{user `aws_access_key`}}", 
"secret_key": "{{user `aws_secret_key`}}", 
"region": "us-west-2", 
"source_ami": "ami-b5a7ea85", 
"instance_type": ”m3.medium", 
"ssh_username": "ec2-user", 
"ami_name": "webserver {{timestamp}}", 
}] 
}
HOST METRICSSERVICEMETRICSLOG ANALYSISBUILD METRICS
AWS Marketplace and Partners 
• You can find, research, and buy 
software 
• Simple pricing, aligns with Amazon 
EC2 usage model 
• Launch in minutes 
• AWS Marketplace billing integrated 
into your AWS account 
• Can also find SaaS offerings from 
partners! 
• 1900+ products across 25 
categories 
Learn more at: aws.amazon.com/marketplace
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
You’ve picked a deployment method; now how are you going to go about acting upon it? 
https://secure.flickr.com/photos/wscullin/3770015991
How do we go about rolling out our code? 
What gotchas are there?
Replace code on all of the 
instances without changing 
them or taking removing traffic: 
Elastic Load Balancing (ELB) 
Web/App instances 
Amazon 
DynamoDB 
MySQL 
Amazon RDS 
Instance 
Amazon 
ElastiCache 
Cache Node 
users 
v1 
v2 
Amazon 
Route 53
• Go through existing tier updating 
the application in batches: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
Amazon 
Route 53 
v1
• Go through existing tier updating 
the application in batches: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
Amazon 
Route 53 
v2 v1
• Go through existing tier updating 
the application in batches: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
Amazon 
Route 53 
v2 v1
• Go through existing tier updating 
the application in batches: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
Amazon 
Route 53 
v2
• Go through existing tier updating 
the application in batches: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
Amazon 
Route 53 
v2
”WebAutoScalingGroup" : { 
"Type" : "AWS::AutoScaling::AutoScalingGroup", 
"Properties" : { 
"AvailabilityZones" : { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }, 
"LaunchConfigurationName" : { "Ref" : ”WebAutoScalingLaunchConfig" }, 
"MaxSize" : ”20", 
"MinSize" : ”10" 
}, 
"UpdatePolicy" : { 
"AutoScalingRollingUpdate" : { 
"MinInstancesInService" : “6", 
"MaxBatchSize" : “2", 
"PauseTime" : "PT5M" 
} 
} 
} 
CloudFormation—Auto Scaling with rolling updates:
”WebAutoScalingGroup" : { 
"Type" : "AWS::AutoScaling::AutoScalingGroup", 
"Properties" : { 
"AvailabilityZones" : { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }, 
"LaunchConfigurationName" : { "Ref" : ”WebAutoScalingLaunchConfig" }, 
"MaxSize" : ”20", 
"MinSize" : ”10" 
}, 
"UpdatePolicy" : { 
"AutoScalingRollingUpdate" : { 
"MinInstancesInService" : “6", 
"MaxBatchSize" : “2", 
"PauseTime" : "PT5M" 
} 
} 
} 
Replace 2 at a time, pause for 5 minutes before doing the next batch 
CloudFormation—Auto Scaling with rolling updates:
Elastic Beanstalk—batch deployments and rolling configuration updates:
CodeDeploy—rolling deployments:
CodeDeploy—rolling deployments:
CodeDeploy—rolling deployments:
We stand up a duplicate part of our 
infrastructure and slowly cut traffic 
over to it: 
As we shift more traffic over, let 
Auto Scaling grow/shrink our 
instances of the new or old 
application: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
v1 
Amazon 
Route 53
We stand up a duplicate part of our 
infrastructure and slowly cut traffic 
over to it: 
As we shift more traffic over, let 
Auto Scaling grow/shrink our 
instances of the new or old 
application: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
Amazon 
Route 53 
v1 
ELB 
v2
We stand up a duplicate part of our 
infrastructure and slowly cut traffic 
over to it: 
As we shift more traffic over, let 
Auto Scaling grow/shrink our 
instances of the new or old 
application: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
v1 
ELB 
v2 
Amazon 
Route 53
We stand up a duplicate part of our 
infrastructure and slowly cut traffic 
over to it: 
As we shift more traffic over, let 
Auto Scaling grow/shrink our 
instances of the new or old 
application: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
v1 
ELB 
v2 
Amazon 
Route 53
We stand up a duplicate part of our 
infrastructure and slowly cut traffic 
over to it: 
As we shift more traffic over, let 
Auto Scaling grow/shrink our 
instances of the new or old 
application: 
ELB 
Web/App instances 
DynamoDB MySQL RDS 
Instance 
ElastiCache 
Cache 
Node 
users 
v2 
Amazon 
Route 53
Some words of caution! 
https://secure.flickr.com/photos/e-coli/3888542890
Schema changes tied to deployments are a blocker to moving fast: 
Unlink this from code deploys:
Be prepared for things to go wrong! 
https://secure.flickr.com/photos/akyamada/4071735996
"Resources" : { 
"myMainSite" : { 
"Type" : "AWS::Route53::RecordSetGroup", 
"Properties" : { 
"HostedZoneName" : {"Ref" : "HostedZoneName"}, 
"Comment" : "Main site with fail whale.", 
"RecordSets" : [ 
{ 
"Name" : {"Ref" : "DNSRecordName"}, 
"Type" : "A", 
"SetIdentifier": "Primary", 
"Failover": "PRIMARY", 
"AliasTarget" : { 
"HostedZoneId" : {"Ref" : "ELBHostedZoneID"}, 
"DNSName" : {"Ref" : "ELBDnsName"}, 
"EvaluateTargetHealth" : "True" 
} 
}, 
{ 
"Name": {"Ref" : "DNSRecordName"}, 
"Type": "A", 
"SetIdentifier" : "Secondary", 
"Failover": "SECONDARY", 
"AliasTarget": { 
"HostedZoneId": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "HostedZoneId" ]}, 
"EvaluateTargetHealth": "False", 
"DNSName": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "DNSEndpoint" ]} 
} 
} 
] 
} 
} 
} 
}
"Resources" : { 
"myMainSite" : { 
"Type" : "AWS::Route53::RecordSetGroup", 
"Properties" : { 
"HostedZoneName" : {"Ref" : "HostedZoneName"}, 
"Comment" : "Main site with fail whale.", 
"RecordSets" : [ 
{ 
"Name" : {"Ref" : "DNSRecordName"}, 
"Type" : "A", 
"SetIdentifier": "Primary", 
"Failover": "PRIMARY", 
"AliasTarget" : { 
"HostedZoneId" : {"Ref" : "ELBHostedZoneID"}, 
"DNSName" : {"Ref" : "ELBDnsName"}, 
"EvaluateTargetHealth" : "True" 
} 
}, 
{ 
"Name": {"Ref" : "DNSRecordName"}, 
"Type": "A", 
"SetIdentifier" : "Secondary", 
"Failover": "SECONDARY", 
"AliasTarget": { 
"HostedZoneId": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "HostedZoneId" ]}, 
"EvaluateTargetHealth": "False", 
"DNSName": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "DNSEndpoint" ]} 
} 
} 
] 
} 
} 
} 
} Example template: http://bit.ly/113cNaa
HOST METRICSSERVICEMETRICSLOG ANALYSISEXTERNAL SITE METRICS
When things break during a deploy you’ll need to decide how to react: 
How do you decide? Deployment pattern and method will be deciding factors:
Have a real-time communication method for the entire company: 
Share knowledge:
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
QA 
Staging 
Dev 
Prod
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014
We need robots 
https://secure.flickr.com/photos/spenceyc/7481166880
Good news, we’ve got lots of “robots”! 
https://secure.flickr.com/photos/peyri/10207629
(NEW!) (NEW!) (SOON!) (NEW!)
https://secure.flickr.com/photos/jeffedoe/506027963
Code Repository
Code Repository 
CI 
Infra 
CI 
SaaS
Code Repository 
CI 
Infra 
CI 
SaaS
Code Repository 
CI 
Infra 
CI 
SaaS 
Code Bundler
Code Repository 
CI 
Infra 
CI 
SaaS 
Code Bundler 
Deploy Object Amazon S3 Bucket
Code Repository 
CI 
Infra 
CI 
SaaS 
Code Bundler 
Deploy Object Amazon S3 Bucket
Code Repository 
CI 
Infra 
CI 
SaaS 
Code Bundler 
Deploy Object Amazon S3 Bucket 
AWSOpsWorks
Code Repository 
CI 
Infra 
CI 
SaaS 
Code Bundler 
Deploy Object Amazon S3 Bucket 
AWSOpsWorks 
Dev Web/App Servers
Code Repository 
CI 
Infra 
CI 
SaaS 
Code Bundler 
Deploy Object Amazon S3 Bucket 
AWSOpsWorks 
Dev Web/App Servers 
Dev/ QA Users
Deploy Object Amazon S3 Bucket 
AWSOpsWorks 
Prod Web/App Servers 
Users 
Deployment Interface
Automation good! 
https://secure.flickr.com/photos/macwagen/94975613
?
✓
? 
https://secure.flickr.com/photos/dullhunk/202872717/
http://bit.ly/awsevals

More Related Content

What's hot

Monitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesMonitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar Series
Amazon Web Services
 
Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)
Julien SIMON
 
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
 
Continuous Deployment Practices, with Production, Test and Development Enviro...
Continuous Deployment Practices, with Production, Test and Development Enviro...Continuous Deployment Practices, with Production, Test and Development Enviro...
Continuous Deployment Practices, with Production, Test and Development Enviro...
Amazon Web Services
 
An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)
Julien SIMON
 
Building Serverless APIs on AWS
Building Serverless APIs on AWSBuilding Serverless APIs on AWS
Building Serverless APIs on AWS
Julien SIMON
 
AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)
Julien SIMON
 
Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)
Julien SIMON
 
DevOps on AWS: Deep Dive on Infrastructure as Code - Toronto
DevOps on AWS: Deep Dive on Infrastructure as Code - TorontoDevOps on AWS: Deep Dive on Infrastructure as Code - Toronto
DevOps on AWS: Deep Dive on Infrastructure as Code - Toronto
Amazon Web Services
 
DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)
Julien SIMON
 
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
Amazon Web Services
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
Amazon Web Services
 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
Amazon Web Services
 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Amazon Web Services
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as Code
Amazon Web Services
 
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
Amazon Web Services
 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Amazon Web Services
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings
Adam Book
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
Amazon Web Services
 
DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring
Amazon Web Services
 

What's hot (20)

Monitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar SeriesMonitoring Containers at Scale - September Webinar Series
Monitoring Containers at Scale - September Webinar Series
 
Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)
 
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
 
Continuous Deployment Practices, with Production, Test and Development Enviro...
Continuous Deployment Practices, with Production, Test and Development Enviro...Continuous Deployment Practices, with Production, Test and Development Enviro...
Continuous Deployment Practices, with Production, Test and Development Enviro...
 
An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)
 
Building Serverless APIs on AWS
Building Serverless APIs on AWSBuilding Serverless APIs on AWS
Building Serverless APIs on AWS
 
AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)AWS re:Invent 2016 recap (part 1)
AWS re:Invent 2016 recap (part 1)
 
Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)Building Serverless APIs (January 2017)
Building Serverless APIs (January 2017)
 
DevOps on AWS: Deep Dive on Infrastructure as Code - Toronto
DevOps on AWS: Deep Dive on Infrastructure as Code - TorontoDevOps on AWS: Deep Dive on Infrastructure as Code - Toronto
DevOps on AWS: Deep Dive on Infrastructure as Code - Toronto
 
DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)DevOps with Amazon Web Services (November 2016)
DevOps with Amazon Web Services (November 2016)
 
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as Code
 
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
AWS CloudFormation under the Hood (DMG303) | AWS re:Invent 2013
 
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings
 
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS OrganizationsSEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
SEC302 Becoming an AWS Policy Ninja using AWS IAM and AWS Organizations
 
DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring
 

Viewers also liked

Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
Amazon Web Services
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
TriNimbus
 
AWS Tips for LAUNCHing Your Infrastructure in the Cloud
AWS Tips for LAUNCHing Your Infrastructure in the CloudAWS Tips for LAUNCHing Your Infrastructure in the Cloud
AWS Tips for LAUNCHing Your Infrastructure in the Cloud
Amazon Web Services
 
State of Infrastructure as Code - AutomaCon 2016
State of Infrastructure as Code - AutomaCon 2016State of Infrastructure as Code - AutomaCon 2016
State of Infrastructure as Code - AutomaCon 2016
Amazon Web Services
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
Amazon Web Services
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Amazon Web Services
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at Amazon
Apigee | Google Cloud
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
Amazon Web Services
 
AWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDBAWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDB
Amazon Web Services
 
Scale Your Application while Improving Performance and Lowering Costs (SVC203...
Scale Your Application while Improving Performance and Lowering Costs (SVC203...Scale Your Application while Improving Performance and Lowering Costs (SVC203...
Scale Your Application while Improving Performance and Lowering Costs (SVC203...
Amazon 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 Code
Amazon Web Services
 

Viewers also liked (12)

Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
 
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
Chris Munns, DevOps @ Amazon: Microservices, 2 Pizza Teams, & 50 Million Depl...
 
AWS Tips for LAUNCHing Your Infrastructure in the Cloud
AWS Tips for LAUNCHing Your Infrastructure in the CloudAWS Tips for LAUNCHing Your Infrastructure in the Cloud
AWS Tips for LAUNCHing Your Infrastructure in the Cloud
 
State of Infrastructure as Code - AutomaCon 2016
State of Infrastructure as Code - AutomaCon 2016State of Infrastructure as Code - AutomaCon 2016
State of Infrastructure as Code - AutomaCon 2016
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at Amazon
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
ARC204 AWS Infrastructure Automation - AWS re: Invent 2012
 
AWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDBAWS Webcast - Build high-scale applications with Amazon DynamoDB
AWS Webcast - Build high-scale applications with Amazon DynamoDB
 
Scale Your Application while Improving Performance and Lowering Costs (SVC203...
Scale Your Application while Improving Performance and Lowering Costs (SVC203...Scale Your Application while Improving Performance and Lowering Costs (SVC203...
Scale Your Application while Improving Performance and Lowering Costs (SVC203...
 
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
 

Similar to (ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014

Microservices and Friends
Microservices and FriendsMicroservices and Friends
Microservices and Friends
Yun Zhi Lin
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Emerson Eduardo Rodrigues Von Staffen
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
Amazon Web Services
 
Omaha (Google Update) server
Omaha (Google Update) serverOmaha (Google Update) server
Omaha (Google Update) server
Dmitry Lyfar
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
Ben Hall
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
Yan Cui
 
Deploying your web application with AWS ElasticBeanstalk
Deploying your web application with AWS ElasticBeanstalkDeploying your web application with AWS ElasticBeanstalk
Deploying your web application with AWS ElasticBeanstalk
Julien SIMON
 
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
Timofey Turenko
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
Amazon Web Services
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)
Julien SIMON
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
Amazon Web Services
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Amazon Web Services
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
Yan Cui
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
Carlos Sanchez
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
Arun prasath
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
Antons Kranga
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On Demand
Yan Pritzker
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
MariaDB plc
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestration
Mo Rawi
 

Similar to (ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014 (20)

Microservices and Friends
Microservices and FriendsMicroservices and Friends
Microservices and Friends
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
Omaha (Google Update) server
Omaha (Google Update) serverOmaha (Google Update) server
Omaha (Google Update) server
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
 
Deploying your web application with AWS ElasticBeanstalk
Deploying your web application with AWS ElasticBeanstalkDeploying your web application with AWS ElasticBeanstalk
Deploying your web application with AWS ElasticBeanstalk
 
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)
 
AWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for GovernmentAWS Webcast - Build Agile Applications in AWS Cloud for Government
AWS Webcast - Build Agile Applications in AWS Cloud for Government
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Virtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On DemandVirtualization and Cloud Computing with Elastic Server On Demand
Virtualization and Cloud Computing with Elastic Server On Demand
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestration
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
Amazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
Amazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
Amazon Web Services
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Amazon Web Services
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
Amazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
Amazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Amazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
Amazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Amazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Recently uploaded

BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
maigasapphire
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
The Evolution of Remote Server Management
The Evolution of Remote Server ManagementThe Evolution of Remote Server Management
The Evolution of Remote Server Management
Bert Blevins
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAIApplying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
ssuserd4e0d2
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Zilliz
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Torry Harris
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 

Recently uploaded (20)

BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
The Evolution of Remote Server Management
The Evolution of Remote Server ManagementThe Evolution of Remote Server Management
The Evolution of Remote Server Management
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAIApplying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 

(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Screens | AWS re:Invent 2014

  • 1. November 13, 2014 | Las Vegas NV Chris Munns, AWS Solutions Architect
  • 4. Historically, there was no automation for developers:
  • 6. Historically, development needed to be tightly controlled:
  • 8. ?
  • 11. QA Staging Dev ProdUnit TestsIntegration TestsUsability TestsPerformance TestsAcceptance TestsSystem TestsRegression TestsMonitoringA/B Tests
  • 13. QA Staging Dev ProdUnit TestsIntegration TestsUsability TestsPerformance TestsAcceptance TestsSystem TestsRegression TestsMonitoringA/B Tests
  • 14. ?
  • 19. Where do we begin? https://secure.flickr.com/photos/stevendepolo/5749192025/
  • 20. If you are part of an Ops / “DevOps” / “DevTools” / “CoreInfra” / whatever team that has developers as an internal customer, it’s your job to help them:
  • 22. DEVQAPROD BarkerYour environments should be as similar to each other as possible!
  • 23. Make the process so easy a Cavemancould do it* *provided they have the appropriate access to!
  • 24. Complexity of the process isn’t necessarily bad, so long as not everyone in the organization HAS to know how the sausage is made https://secure.flickr.com/photos/erix/2657100921
  • 25. https://secure.flickr.com/photos/jasoneppink/499531891Make the results of change visible to everyone who causes or deals with change!
  • 28. Aim to reduce the “works on my machine” failures inherent with developing on one OS and running production on another:
  • 29. Docker is really changing how applications are being built and deployed! NEW!
  • 30. “A Better Dev/Test Experience: Docker and AWS” on Medium! https://medium.com/aws-activate-startup-blog/a-better-dev-test-experience- docker-and-aws-291da5ab1238 http://bit.ly/1saojKw
  • 31. Dramatically lowers the complexity in running developer environments. Let’s set it up: [munns@maclaptop ~]$ vagrant init chef/centos-6.5 [munns@maclaptop ~]$ vagrant up [munns@maclaptop ~]$ vagrant ssh Last login: Fri Mar 7 16:57:20 2014 from 10.0.2.2 [vagrant@zekaih ~]$ uname -a Linux zekaih.munnsdev.com 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
  • 35. Continuous deploymentalwayscontinuous integration. Continuous integration doesn’tmean that the code gets deployed to production every commit! https://secure.flickr.com/photos/isherwoodchris/6917253693
  • 41. Convenience Control Higher-level services Do it yourself AWSElastic Beanstalk AWSOpsWorks AWSCloudFormation AWS CodeDeploy AWS application/infrastructure management tools
  • 42. AWS application/infrastructure management tools Convenience Control Higher-level services Do it yourself AWSElastic Beanstalk AWSOpsWorks AWSCloudFormation AWS CodeDeploy NEW!!
  • 43. You’re not still configuring your servers by hand, right?
  • 44. Options: Deciding factors: How are you getting the bits from your code repository to your destination environments?
  • 45. Simplest of all methods. Use a deployment tool to either do a repo sync, or copy the raw files from one environment to another: Pros: –Easy to get started with –No need for midprocess packaging steps Cons: –Rollbacks could become a challenge –Harder to do at large scale AWS services can make it really easy to deploy from a repository: –AWS CodeDeploy –AWS Elastic Beanstalk –AWS OpsWorks
  • 46. Example with OpsWorks: [root@saarbrucken infrahelper]# ll /srv/www/infrahelper/ total 8 lrwxrwxrwx 1 deploy apache 44 Oct 21 20:43 current -> /srv/www/infrahelper/releases/20141021204316 drwxr-xr-x 7 deploy apache 4096 Oct 21 20:43 releases drwxrwx---9 deploy apache 4096 Oct 21 20:43 shared <----------------------DEPLOY HAPPENS---------------------> [root@saarbrucken infrahelper]# ll /srv/www/infrahelper/ total 8 lrwxrwxrwx 1 deploy apache 44 Nov 7 21:44 current -> /srv/www/infrahelper/releases/20141107214310
  • 47. Bundle up your code, deploy the bundle: Pros: –Very atomic solution to deploying code –Easy to track versions and changes across environments Cons: –Potentially very large deployable assets Package will be largely unique to the OS/language you are using:
  • 48. Example using FPM (Effing Package Management) [munns@somehost ~]$ gem install fpm ….. [munns@somehost ~]$ git clone https://github.com/teknogeek0/ReInvent2014-InfraHelper.git …... [munns@somehost ~]$ fpm -s dir -t rpm -n "InfraHelper" -v 1.0 --epoch 1 ReInvent2014-InfraHelper/=/opt/InfraHelper Created package {:path=>"InfraHelper-1.0-1.x86_64.rpm"} [munns@somehost ~]$ rpm -ivh InfraHelper-1.0-1.x86_64.rpm ….. [munns@somehost ~]$ rpm -qa InfraHelper InfraHelper-1.0-1.x86_64 [munns@somehost ~]$ ls -l /opt/InfraHelper/ total 32 drwxr-xr-x 2 root root 4096 Nov 4 23:07 flow -rw-r--r--1 root root 156 Nov 4 23:06 Gemfile -rwxr-xr-x 1 root root 661 Nov 4 23:06 IHQueueWatcher_control.rb -rw-r--r--1 root root 2765 Nov 4 23:06 infrahelper_utils.rb …..
  • 49. Generate a new AMI with your updated code on it. Launch it: Pros: –The most atomic way possible •Won’t affect any currently running instances –Can pretty easily run two versions side by side Cons: –Bit more work involved –Really have to think about data persistence –Have to think about how rollbacks would happen Bunch of tools to help you build AMIs quick and easy:
  • 50. # ./packer validate webimage.json Template validated successfully. # ./packer build webimage.json amazon-ebs output will be in this color. ==> amazon-ebs: Inspecting the source AMI... ==> amazon-ebs: Creating temporary keypair: packer 5459736e-26a7-5983-db5a-df145dafa7e7 …. Build 'amazon-ebs' finished. ==> Builds finished. The artifacts of successful builds are: --> amazon-ebs: AMIs were created: us-west-2: ami-5f9bd36f # cat webimage.json { "variables": { "aws_access_key": "", "aws_secret_key": "" }, "builders": [{ "type": "amazon-ebs", "access_key": "{{user `aws_access_key`}}", "secret_key": "{{user `aws_secret_key`}}", "region": "us-west-2", "source_ami": "ami-b5a7ea85", "instance_type": ”m3.medium", "ssh_username": "ec2-user", "ami_name": "webserver {{timestamp}}", }] }
  • 52. AWS Marketplace and Partners • You can find, research, and buy software • Simple pricing, aligns with Amazon EC2 usage model • Launch in minutes • AWS Marketplace billing integrated into your AWS account • Can also find SaaS offerings from partners! • 1900+ products across 25 categories Learn more at: aws.amazon.com/marketplace
  • 54. You’ve picked a deployment method; now how are you going to go about acting upon it? https://secure.flickr.com/photos/wscullin/3770015991
  • 55. How do we go about rolling out our code? What gotchas are there?
  • 56. Replace code on all of the instances without changing them or taking removing traffic: Elastic Load Balancing (ELB) Web/App instances Amazon DynamoDB MySQL Amazon RDS Instance Amazon ElastiCache Cache Node users v1 v2 Amazon Route 53
  • 57. • Go through existing tier updating the application in batches: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users Amazon Route 53 v1
  • 58. • Go through existing tier updating the application in batches: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users Amazon Route 53 v2 v1
  • 59. • Go through existing tier updating the application in batches: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users Amazon Route 53 v2 v1
  • 60. • Go through existing tier updating the application in batches: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users Amazon Route 53 v2
  • 61. • Go through existing tier updating the application in batches: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users Amazon Route 53 v2
  • 62. ”WebAutoScalingGroup" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "AvailabilityZones" : { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }, "LaunchConfigurationName" : { "Ref" : ”WebAutoScalingLaunchConfig" }, "MaxSize" : ”20", "MinSize" : ”10" }, "UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MinInstancesInService" : “6", "MaxBatchSize" : “2", "PauseTime" : "PT5M" } } } CloudFormation—Auto Scaling with rolling updates:
  • 63. ”WebAutoScalingGroup" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "AvailabilityZones" : { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }, "LaunchConfigurationName" : { "Ref" : ”WebAutoScalingLaunchConfig" }, "MaxSize" : ”20", "MinSize" : ”10" }, "UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MinInstancesInService" : “6", "MaxBatchSize" : “2", "PauseTime" : "PT5M" } } } Replace 2 at a time, pause for 5 minutes before doing the next batch CloudFormation—Auto Scaling with rolling updates:
  • 64. Elastic Beanstalk—batch deployments and rolling configuration updates:
  • 68. We stand up a duplicate part of our infrastructure and slowly cut traffic over to it: As we shift more traffic over, let Auto Scaling grow/shrink our instances of the new or old application: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users v1 Amazon Route 53
  • 69. We stand up a duplicate part of our infrastructure and slowly cut traffic over to it: As we shift more traffic over, let Auto Scaling grow/shrink our instances of the new or old application: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users Amazon Route 53 v1 ELB v2
  • 70. We stand up a duplicate part of our infrastructure and slowly cut traffic over to it: As we shift more traffic over, let Auto Scaling grow/shrink our instances of the new or old application: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users v1 ELB v2 Amazon Route 53
  • 71. We stand up a duplicate part of our infrastructure and slowly cut traffic over to it: As we shift more traffic over, let Auto Scaling grow/shrink our instances of the new or old application: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users v1 ELB v2 Amazon Route 53
  • 72. We stand up a duplicate part of our infrastructure and slowly cut traffic over to it: As we shift more traffic over, let Auto Scaling grow/shrink our instances of the new or old application: ELB Web/App instances DynamoDB MySQL RDS Instance ElastiCache Cache Node users v2 Amazon Route 53
  • 73. Some words of caution! https://secure.flickr.com/photos/e-coli/3888542890
  • 74. Schema changes tied to deployments are a blocker to moving fast: Unlink this from code deploys:
  • 75. Be prepared for things to go wrong! https://secure.flickr.com/photos/akyamada/4071735996
  • 76. "Resources" : { "myMainSite" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneName" : {"Ref" : "HostedZoneName"}, "Comment" : "Main site with fail whale.", "RecordSets" : [ { "Name" : {"Ref" : "DNSRecordName"}, "Type" : "A", "SetIdentifier": "Primary", "Failover": "PRIMARY", "AliasTarget" : { "HostedZoneId" : {"Ref" : "ELBHostedZoneID"}, "DNSName" : {"Ref" : "ELBDnsName"}, "EvaluateTargetHealth" : "True" } }, { "Name": {"Ref" : "DNSRecordName"}, "Type": "A", "SetIdentifier" : "Secondary", "Failover": "SECONDARY", "AliasTarget": { "HostedZoneId": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "HostedZoneId" ]}, "EvaluateTargetHealth": "False", "DNSName": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "DNSEndpoint" ]} } } ] } } } }
  • 77. "Resources" : { "myMainSite" : { "Type" : "AWS::Route53::RecordSetGroup", "Properties" : { "HostedZoneName" : {"Ref" : "HostedZoneName"}, "Comment" : "Main site with fail whale.", "RecordSets" : [ { "Name" : {"Ref" : "DNSRecordName"}, "Type" : "A", "SetIdentifier": "Primary", "Failover": "PRIMARY", "AliasTarget" : { "HostedZoneId" : {"Ref" : "ELBHostedZoneID"}, "DNSName" : {"Ref" : "ELBDnsName"}, "EvaluateTargetHealth" : "True" } }, { "Name": {"Ref" : "DNSRecordName"}, "Type": "A", "SetIdentifier" : "Secondary", "Failover": "SECONDARY", "AliasTarget": { "HostedZoneId": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "HostedZoneId" ]}, "EvaluateTargetHealth": "False", "DNSName": { "Fn::FindInMap" : [ "S3RegionWebEndpoints", { "Ref" : "S3BucketRegion" }, "DNSEndpoint" ]} } } ] } } } } Example template: http://bit.ly/113cNaa
  • 79. When things break during a deploy you’ll need to decide how to react: How do you decide? Deployment pattern and method will be deciding factors:
  • 80. Have a real-time communication method for the entire company: Share knowledge:
  • 84. We need robots https://secure.flickr.com/photos/spenceyc/7481166880
  • 85. Good news, we’ve got lots of “robots”! https://secure.flickr.com/photos/peyri/10207629
  • 89. Code Repository CI Infra CI SaaS
  • 90. Code Repository CI Infra CI SaaS
  • 91. Code Repository CI Infra CI SaaS Code Bundler
  • 92. Code Repository CI Infra CI SaaS Code Bundler Deploy Object Amazon S3 Bucket
  • 93. Code Repository CI Infra CI SaaS Code Bundler Deploy Object Amazon S3 Bucket
  • 94. Code Repository CI Infra CI SaaS Code Bundler Deploy Object Amazon S3 Bucket AWSOpsWorks
  • 95. Code Repository CI Infra CI SaaS Code Bundler Deploy Object Amazon S3 Bucket AWSOpsWorks Dev Web/App Servers
  • 96. Code Repository CI Infra CI SaaS Code Bundler Deploy Object Amazon S3 Bucket AWSOpsWorks Dev Web/App Servers Dev/ QA Users
  • 97. Deploy Object Amazon S3 Bucket AWSOpsWorks Prod Web/App Servers Users Deployment Interface
  • 99. ?
  • 100.