SlideShare a Scribd company logo
1 of 102
Download to read offline
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:
Historically, development needed to be tightly controlled:
?
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
?
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:
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!
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
•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
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
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:
QA 
Staging 
Dev 
Prod
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 SeriesAmazon 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 ToolsDanilo 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 AWSJulien 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 - TorontoAmazon 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
 
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 AvivAmazon 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 CodeAmazon 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 2013Amazon 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 OrganizationsAmazon 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 UsersAmazon 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 CloudAmazon 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 2016Amazon 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 2014Amazon 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 SeriesAmazon 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 AmazonApigee | 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 ToolsAmazon 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 2012Amazon 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 DynamoDBAmazon 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 CodeAmazon 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 FriendsYun 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) serverDmitry Lyfar
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetesBen 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 ElasticBeanstalkJulien 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 GovernmentAmazon 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 GovernmentAmazon 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 VariaAmazon 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 FrontierCarlos 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 InfrastructuresAntons Kranga
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java binOlve 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 DemandYan Pritzker
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with DockerMariaDB plc
 
Salt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationSalt Cloud vmware-orchestration
Salt Cloud vmware-orchestrationMo 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 FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon 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
 
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 WorkloadsAmazon 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 sfatareAmazon 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 NodeJSAmazon 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 webAmazon 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 sfatareAmazon 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 AWSAmazon 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 DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon 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 ServiceAmazon 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

JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 

Recently uploaded (20)

JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

(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:
  • 5.
  • 6. Historically, development needed to be tightly controlled:
  • 7.
  • 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. ?
  • 15.
  • 16.
  • 17.
  • 18.
  • 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:
  • 21.
  • 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!
  • 26.
  • 27.
  • 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
  • 32.
  • 35. Continuous deploymentalwayscontinuous integration. Continuous integration doesn’tmean that the code gets deployed to production every commit! https://secure.flickr.com/photos/isherwoodchris/6917253693
  • 38.
  • 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
  • 53.
  • 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:
  • 81.
  • 83.
  • 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.