Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Application Deployment
on AWS
ianmas@amazon.com
@IanMmmm
Ian Massingham — Technical Evangelist
Before we start …
… I’d love your feedback @IanMmmm
What will we cover?
Options for Application Deployment on AWS
Resources you can use to learn more
Some Background1
2
3
Some
Background
Startups on AWS
http://aws.amazon.com/solutions/case-studies/
Meerkat
400,000

people are hosted 

on any given night
Up by Over 10 Million in One Year
Total Number of Guests
Sep 2008 Mar 2009 Sep 2013Sep 2009 Mar 2013Sep 2012Mar 2012Sep 20...
0
350
700
1,050
1,400
2010 2014
24 48
432
1,300
Total Number of EC2 instances
Why AWS?
EC2 

Servers, Production Traffic,
Hive, Hadoop
RDS

All Relational Databases
S3

Storage, User Generated
Content
DynamoDB...
We have a 5 person
operations team.
AWS allows us to devote our resources
and mindshare to the core business.
“
”
Deployment
Options
Deployment & Management
Containers
Dev/ops Tools
Resource Templates
Usage Tracking
Monitoring and Logs
AWS Elastic Beanstalk
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web
applications and servi...
AWS Elastic Beanstalk
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web
applications and servi...
DEMO: AWS ELASTIC BEANSTALK
Elastic Beanstalk: Deploy Applications with 7 Popular Containers
Alert
Log
Mon
AppELB AZ
http://your-app.elasticbeanstalk.com
Elastic Beanstalk
Deploy your app to a load balanced, auto sc...
Alert
Log
Mon
App AZ
ELB
http://your-app.elasticbeanstalk.com
Elastic Beanstalk
Deploy your app to a load balanced, auto s...
Alert
DB
Log
Mon
App AZ
AZ
ELB
http://your-app.elasticbeanstalk.com
Elastic Beanstalk
Deploy your app to a load balanced, ...
AWS Elastic Beanstalk
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web
applications and servi...
AWS CodeDeploy
• Scale from 1 instance to thousands
• Deploy without downtime
• Centralize deployment control and monitori...
DEMO: AWS CODEDEPLOY
1) Package your application (with an AppSpec)
version: 0.0
os: linux
files:
- source: chef/
destination: /etc/chef/codedep...
1) Package your application (with an AppSpec)
version: 0.0
os: linux
files:
- source: chef/
destination: /etc/chef/codedep...
1) Package your application (with an AppSpec)
Start
BeforeInstall
ApplicationStart
ApplicationStop
Install
ValidateService...
1) Package your application (with an AppSpec)
version: 0.0
os: linux
files:
- source: chef/
destination: /etc/chef/codedep...
2) Set up your target environments
Agent Agent Agent
Staging
Agent Agent
Agent Agent
Agent
Agent
Production
Deployment Gro...
3) Deploy!
aws deploy create-deployment 
--application-name MyApp 
--deployment-group-name TargetGroup 
--s3-location buck...
Deployment Config – Choose speed
v2 v1 v1 v1 v1 v1 v1 v1
v2 v2 v2 v2 v1 v1 v1 v1
v2 v2 v2 v2 v2 v2 v2 v2
One-at-a-Time
Half...
Rolling Update – Deploy without downtime
v1v1 v1
Load Balancer
Rolling Update – Deploy without downtime
v1v2 v1
Load Balancer
Rolling Update – Deploy without downtime
v2v2 v1
Load Balancer
Rolling Update – Deploy without downtime
v2v2 v2
Load Balancer
Rolling Update – Deploy without downtime
v2v2 v2
Load Balancer
Health Tracking – Catch deployment problems
v3 v2 v2Stop
Load Balancer
Health Tracking – Catch deployment problems
v2v2 v2
Load Balancer
Rollback
Health Tracking – Catch deployment problems
v2v2 v2
Load Balancer
AWS CodePipeline
• Inspired by Pipelines
• Flexible workflow engine
• Extensible, plugin based architecture
Continuous del...
AWS CodeCommit
• Data redundancy across AZs
• Data at rest encryption
• Integrated with AWS Identity and Access Management...
AWS Elastic Beanstalk
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web
applications and servi...
AWS CloudFormation
An easy way to create & manage a collection of AWS resources

Allows orderly and predictable provisioni...
https://youtu.be/6R44BADNJA8
Building With Smaller Blocks
Quicker to build Lower costEasier to adapt and update
</> </></>
Containers, the Cloud & Application Architecture
Application

portability
Environment

fidelity
Continuous

deployment
High...
The Four Horsemen of Container-Based Applications
Application

components
Resource

description
Capacity

pool
Placement

...
Launch and terminate 

Docker containers
Across a cluster 

of EC2 instances
Mount persistent 

volumes at launch
Private ...
EC2 Container Service Is Now Generally Available
Available to 

all customers
New
Management

console
New
Geographic 

exp...
λAWS Lambda
An event-driven computing service for
dynamic applications
A Focus on Functions, Data and Events
AutomaticCloud FunctionsEvents from AWS services
RESOURCES YOU CAN USE
TO LEARN MORE
aws.amazon.com/elasticbeanstalk
aws.amazon.com/codedeploy
aws.amazon.com/cloudformation
aws.amazon.com/ecs
Follow
us
for m
ore
events
&
w
ebinars
@AWScloud for Global AWS News & Announcements
@AWS_UKI for local AWS events & news
...
Application Deployment on AWS - Startup Talks June 2015
Application Deployment on AWS - Startup Talks June 2015
Application Deployment on AWS - Startup Talks June 2015
Application Deployment on AWS - Startup Talks June 2015
Nächste SlideShare
Wird geladen in …5
×

Application Deployment on AWS - Startup Talks June 2015

1.949 Aufrufe

Veröffentlicht am

Learn how AWS services can make it easier for you to rapidly release new features, help you avoid downtime during deployment, and handle the complexity of updating your applications.

Veröffentlicht in: Technologie

Application Deployment on AWS - Startup Talks June 2015

  1. 1. Application Deployment on AWS ianmas@amazon.com @IanMmmm Ian Massingham — Technical Evangelist
  2. 2. Before we start … … I’d love your feedback @IanMmmm
  3. 3. What will we cover? Options for Application Deployment on AWS Resources you can use to learn more Some Background1 2 3
  4. 4. Some Background
  5. 5. Startups on AWS http://aws.amazon.com/solutions/case-studies/ Meerkat
  6. 6. 400,000
 people are hosted 
 on any given night
  7. 7. Up by Over 10 Million in One Year Total Number of Guests Sep 2008 Mar 2009 Sep 2013Sep 2009 Mar 2013Sep 2012Mar 2012Sep 2011Mar 2011Mar 2010 Sep 2010 June 2014 15 Million 3M Mar 2014 Jun 2014 6M 9M 12M 15M June 2015 25 Million
  8. 8. 0 350 700 1,050 1,400 2010 2014 24 48 432 1,300 Total Number of EC2 instances
  9. 9. Why AWS?
  10. 10. EC2 Servers, Production Traffic, Hive, Hadoop RDS All Relational Databases S3 Storage, User Generated Content DynamoDB Rollups, Metadata ElastiCache Memcache Route 53 DNS, Inventory
  11. 11. We have a 5 person operations team. AWS allows us to devote our resources and mindshare to the core business. “ ”
  12. 12. Deployment Options
  13. 13. Deployment & Management Containers Dev/ops Tools Resource Templates Usage Tracking Monitoring and Logs
  14. 14. AWS Elastic Beanstalk AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS. AWS CodeDeploy AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during deployment, and handles the complexity of updating your applications. AWS CloudFormation AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.
  15. 15. AWS Elastic Beanstalk AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS. AWS CodeDeploy AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during deployment, and handles the complexity of updating your applications. AWS CloudFormation AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.
  16. 16. DEMO: AWS ELASTIC BEANSTALK
  17. 17. Elastic Beanstalk: Deploy Applications with 7 Popular Containers
  18. 18. Alert Log Mon AppELB AZ http://your-app.elasticbeanstalk.com Elastic Beanstalk Deploy your app to a load balanced, auto scaled Environment
  19. 19. Alert Log Mon App AZ ELB http://your-app.elasticbeanstalk.com Elastic Beanstalk Deploy your app to a load balanced, auto scaled Environment
  20. 20. Alert DB Log Mon App AZ AZ ELB http://your-app.elasticbeanstalk.com Elastic Beanstalk Deploy your app to a load balanced, auto scaled Environment
  21. 21. AWS Elastic Beanstalk AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS. AWS CodeDeploy AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during deployment, and handles the complexity of updating your applications. AWS CloudFormation AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.
  22. 22. AWS CodeDeploy • Scale from 1 instance to thousands • Deploy without downtime • Centralize deployment control and monitoring • On-Premises support Staging CodeDeployv1, v2, v3 Production Dev Coordinate automated deployments, just like Amazon Application Revisions Deployment Groups
  23. 23. DEMO: AWS CODEDEPLOY
  24. 24. 1) Package your application (with an AppSpec) version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh AfterInstall: - location: deploy_hooks/knife-install.sh ApplicationStart: - location: deploy_hooks/chef-solo.sh ValidateService: - location: deploy_hooks/verify_service.sh
  25. 25. 1) Package your application (with an AppSpec) version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh AfterInstall: - location: deploy_hooks/knife-install.sh ApplicationStart: - location: deploy_hooks/chef-solo.sh ValidateService: - location: deploy_hooks/verify_service.sh
  26. 26. 1) Package your application (with an AppSpec) Start BeforeInstall ApplicationStart ApplicationStop Install ValidateService DownloadBundle AfterInstall End
  27. 27. 1) Package your application (with an AppSpec) version: 0.0 os: linux files: - source: chef/ destination: /etc/chef/codedeploy - source: target/hello.war destination: /var/lib/tomcat6/webapps hooks: ApplicationStop: - location: deploy_hooks/stop-tomcat.sh BeforeInstall: - location: deploy_hooks/install-chef.sh AfterInstall: - location: deploy_hooks/knife-install.sh ApplicationStart: - location: deploy_hooks/chef-solo.sh ValidateService: - location: deploy_hooks/verify_service.sh
  28. 28. 2) Set up your target environments Agent Agent Agent Staging Agent Agent Agent Agent Agent Agent Production Deployment GroupDeployment Group • Group instances by: • Auto Scaling group • EC2 tag • On-premises tag
  29. 29. 3) Deploy! aws deploy create-deployment --application-name MyApp --deployment-group-name TargetGroup --s3-location bucket=MyBucket,key=MyApp.zip AWS CLI & SDKs AWS Console CI / CD Partners GitHub
  30. 30. Deployment Config – Choose speed v2 v1 v1 v1 v1 v1 v1 v1 v2 v2 v2 v2 v1 v1 v1 v1 v2 v2 v2 v2 v2 v2 v2 v2 One-at-a-Time Half-at-a-Time All-at-Once
  31. 31. Rolling Update – Deploy without downtime v1v1 v1 Load Balancer
  32. 32. Rolling Update – Deploy without downtime v1v2 v1 Load Balancer
  33. 33. Rolling Update – Deploy without downtime v2v2 v1 Load Balancer
  34. 34. Rolling Update – Deploy without downtime v2v2 v2 Load Balancer
  35. 35. Rolling Update – Deploy without downtime v2v2 v2 Load Balancer
  36. 36. Health Tracking – Catch deployment problems v3 v2 v2Stop Load Balancer
  37. 37. Health Tracking – Catch deployment problems v2v2 v2 Load Balancer Rollback
  38. 38. Health Tracking – Catch deployment problems v2v2 v2 Load Balancer
  39. 39. AWS CodePipeline • Inspired by Pipelines • Flexible workflow engine • Extensible, plugin based architecture Continuous delivery and release automation, just like Amazon Build 1) Build 2) Unit test 1) Deploy 2) UI test Source Beta Production 1) Deploy 2) Load test Gamma 1) Deploy region1 2) Deploy region2 3) Deploy region3
  40. 40. AWS CodeCommit • Data redundancy across AZs • Data at rest encryption • Integrated with AWS Identity and Access Management • No repo size limit git  push CodeCommit Git objects in S3 Git index in DynamoDB Encryption key in KMS SSH or HTTPS Secure, scalable, and managed Git source control
  41. 41. AWS Elastic Beanstalk AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS. AWS CodeDeploy AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during deployment, and handles the complexity of updating your applications. AWS CloudFormation AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.
  42. 42. AWS CloudFormation An easy way to create & manage a collection of AWS resources
 Allows orderly and predictable provisioning and updating of resources
 Allows you to version control your AWS infrastructure 
 Deploy and update stacks using console, command line or API
 You only pay for the resources you create
  43. 43. https://youtu.be/6R44BADNJA8
  44. 44. Building With Smaller Blocks Quicker to build Lower costEasier to adapt and update </> </></>
  45. 45. Containers, the Cloud & Application Architecture Application
 portability Environment
 fidelity Continuous
 deployment High availability
 & scale
  46. 46. The Four Horsemen of Container-Based Applications Application
 components Resource
 description Capacity
 pool Placement
 & management 1 2 3 4
  47. 47. Launch and terminate 
 Docker containers Across a cluster 
 of EC2 instances Mount persistent 
 volumes at launch Private Docker 
 repositories Amazon EC2 Container Service
  48. 48. EC2 Container Service Is Now Generally Available Available to 
 all customers New Management
 console New Geographic 
 expansion US East, US West, EU West and Japan New CloudTrail
 integration New aws.amazon.com/ecs
  49. 49. λAWS Lambda An event-driven computing service for dynamic applications
  50. 50. A Focus on Functions, Data and Events AutomaticCloud FunctionsEvents from AWS services
  51. 51. RESOURCES YOU CAN USE TO LEARN MORE
  52. 52. aws.amazon.com/elasticbeanstalk aws.amazon.com/codedeploy aws.amazon.com/cloudformation
  53. 53. aws.amazon.com/ecs
  54. 54. Follow us for m ore events & w ebinars @AWScloud for Global AWS News & Announcements @AWS_UKI for local AWS events & news @IanMmmm Ian Massingham — Technical Evangelist

×