Your SlideShare is downloading. ×
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or i...
What you will learn in this session
•  Deployment approaches on AWS
•  Overview of each approach, and when to use
•  Demo ...
AWS Platform
AWS Global Infrastructure
Application Services
Networking
Deployment & Administration
DatabaseStorageCompute
Programmable platform
AWS Global Infrastructure
Application Services
Networking
Deployment & Administration
DatabaseStorag...
In your language of choice
CODE();	
  
AWS Global Infrastructure
Application Services
Networking
Deployment & Administrati...
//	
  Everything	
  is	
  code	
  
CODE();	
  
AWS Elastic Beanstalk
AWS OpsWorks
AWS CloudFormation
Roll-your-own
Deployment options
AWS
Elastic Beanstalk
AWS
OpsWorks
AWS
CloudFormation
Application
Container
Application
Automation
Templated
Provisioning
...
Jane Doe, Elastic Beanstalk developer
Jane Doe, Elastic Beanstalk developer
•  Role: Developer
•  Builds web apps, APIs, and handles some
background processing ...
The demonstration
•  A PHP application that
stores text messages in
a database
•  Uses Elastic Load
Balancing and Amazon
R...
Demo time
•  Checkout app from GitHub
•  Integrate with the eb command line tool
•  Deploy from the command line
•  View t...
Elastic Beanstalk Supports…
Java PHP Python Ruby .NET Node.js Docker
Deploy Your App for Test
Alert
Log
Mon
App
AZ
http://your-app.elasticbeanstalk.com
Deploy Your App for Scale
Alert
Log
Mon
App
AZ
ELB
http://your-app.elasticbeanstalk.com
Deploy Your Background Processing
App
Alert
Log
Mon
App
AZ
Amazon SQS queueProducers
Deploy With Tools You Know
Deploy With Tools You Know
v1.1 V1.2bV1.0
Deploy With Tools You Know
Alert
Log
Mon
App
AZ
ELB
http://your-app.elasticbeanstalk.com
v1.1 V1.2bV1.0
John Doe, AWS OpsWorks Developer
John Doe, AWS OpsWorks Developer
•  Role: Developer
•  Builds apps with broad architectural patterns
and software; e.g., M...
Benefits
•  Any architecture
•  Configuration as code
•  Automation to run at scale
•  Control any component
The heart of the service
Agent	
  on	
  each	
  
EC2	
  instance	
  
OpsWorks	
  talks	
  with	
  
Overview
A	
  stack	
  represents	
  your	
  
applica9on.	
  One	
  stack	
  
might	
  be	
  used	
  for	
  
staging	
  an...
Layer Lifecycle Events & Recipes
•  Layer lifecycle events
(You can also run recipes on demand)
•  Chef Recipes
Built-in
C...
Layer: PHP App Server
Layer: Ganglia
Layer: PHP App Server
Layer: Ganglia
Layer: Ganglia
Layer: PHP App Server
Layer: PHP App Server
Layer: Ganglia
•  Start App Svr •  Start Ganglia •  Start App S...
Jean Doe, CloudFormation Architect
Jean Doe, CloudFormation Architect
•  Role: Architect
•  Builds architectures to host whole products or
organizations
•  N...
AWS CloudFormation: Model Your App
•  Document, version control, and share your
applications and infrastructure as a JSON
...
Elastic Beanstalk or AWS OpsWorks Resource
AppELB
AZ
your-app.elasticbeanstalk.com
Alert
Log
Mon
Database Resources
AppELB
AZ
your-app.elasticbeanstalk.com
Alert
Log
Mon
Users Table
(Amazon
DynamoDB)
MySQL Primary
(Amaz...
Object Storage and Security Resources
IAM Instance Profile
AppELB
AZ
your-app.elasticbeanstalk.com
Alert
Log
Mon
Users Tab...
Deployed as an AWS CloudFormation Stack
Users Table
(Amazon
DynamoDB)
MySQL Primary
(Amazon RDS)
App Storage
(Amazon S3)
I...
Modeled in a Template File
Users Table
(Amazon
DynamoDB)
MySQL Primary
(Amazon RDS)
App Storage
(Amazon S3)
IAM Instance P...
Ninja Doe, Roll your own specialist
Code
+ Tools
+ SDKs
Ninja Doe, Roll your own specialist
•  Role: everything
•  Builds systems
•  Needs total control and customization
•  Want...
Deployments
Source Code
Repository
Deployment
Server
Continuous Integration
Server
Web
Server
DB
Server
App
Package
Develo...
What we discussed
•  Deployment approaches on AWS
•  Overview of each approach, and when to use
•  Demo how to get an appl...
AWS
Elastic Beanstalk
AWS
OpsWorks
AWS
CloudFormation
Code
+ Tools
+ SDKs
Get started:
http://amzn.to/1dh8QkU
Follow us @a...
Deployment Done Right: Requirements and
Considerations for Easy App Deployment
Steve Blake - CTO
steve.blake@sportpursuit....
SportPursuit – Business Overview
•  Founded in 2011
•  What – Flash sale business unbeatable deals on the world’s best
spo...
Brands & Awards
Brands we work with Awards
Technical Overview
•  AWS
–  Used since 2011, when business started
–  Chosen to prove business model – Cost, lack of long...
Technical Architecture
Amazon S3
Amazon RDS -
MySQL
Build Server
Load
Balancer
Varnish
App Servers
 Internal App
Server
Re...
Past Deployment Challenges
•  Out of sync
–  Different releases of code
–  Snapshot based
–  Out of date new instances
•  ...
Deployment Solution
•  Active instances
•  Jenkins
–  Continuous Integration
–  Triggers Deployment
–  Testing
•  Unit Tes...
Deployment Solution
•  Capistrano
•  Capify - EC2
–  Ruby / Github
–  Instance Tagging – Application, caching etc
Deployment Solution
•  Boto
–  Python / Github
–  Interfaces to AWS
–  Deployment
–  Current release
•  S3
–  Releases
Deployment Solution
•  New instances
•  Boto
–  Upstart
–  Rolling deployment
•  S3
–  5 Release archive
–  Current releas...
Summary
•  Variety of tools
–  AWS specific
–  Open source community
–  Powerful AWS interface
•  Solution to suite your n...
Deployment Done Right: Requirements and
Considerations for Easy App Deployment
Steve Blake - CTO
steve.blake@sportpursuit....
AWS Partner Trail
Win a Kindle Fire
•  10 in total
•  Get a code from our
sponsors
Please rate
this session
using the AWS
Summits App
and help us build
better events
#AWSSummit
@AWScloud @AWS_UKI
Upcoming SlideShare
Loading in...5
×

AWS Summit London 2014 | Deployment Done Right (300)

1,817

Published on

This mid-level technical session will help you choose among the AWS services that can help you deploy and run your applications more easily. You will learn how to get an application running using AWS OpsWorks and AWS Elastic Beanstalk and how to use AWS CloudFormation templates to document, version control, and share your application configuration

Published in: Technology
1 Comment
13 Likes
Statistics
Notes
  • Hi thanks for this, I was at the summit, great pres by the way! Any reason why the save is disabled? I would like to download the pres as PDF.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,817
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
1
Likes
13
Embeds 0
No embeds

No notes for slide

Transcript of "AWS Summit London 2014 | Deployment Done Right (300)"

  1. 1. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Deployment Done Right: Requirements and Considerations for Easy App Deployment “Fitz” Philip Fitzsimons Solutions Architecture April 30, 2014
  2. 2. What you will learn in this session •  Deployment approaches on AWS •  Overview of each approach, and when to use •  Demo how to get an application running •  Customer story: Steve Blake from SportPursuit
  3. 3. AWS Platform AWS Global Infrastructure Application Services Networking Deployment & Administration DatabaseStorageCompute
  4. 4. Programmable platform AWS Global Infrastructure Application Services Networking Deployment & Administration DatabaseStorageCompute HTTP Web Services SDKs
  5. 5. In your language of choice CODE();   AWS Global Infrastructure Application Services Networking Deployment & Administration DatabaseStorageCompute
  6. 6. //  Everything  is  code   CODE();  
  7. 7. AWS Elastic Beanstalk AWS OpsWorks AWS CloudFormation Roll-your-own Deployment options
  8. 8. AWS Elastic Beanstalk AWS OpsWorks AWS CloudFormation Application Container Application Automation Templated Provisioning Roll  your  own   Code + Tools + SDKs Control  Convenience     1)  No  “right”  answer  2)  can  mix  &  match  
  9. 9. Jane Doe, Elastic Beanstalk developer
  10. 10. Jane Doe, Elastic Beanstalk developer •  Role: Developer •  Builds web apps, APIs, and handles some background processing workloads •  Needs some flexibility to customize her app environments •  Wants simple API to monitor, view logs, scale, and deploy her apps
  11. 11. The demonstration •  A PHP application that stores text messages in a database •  Uses Elastic Load Balancing and Amazon RDS Load-based Auto Scaling PHP App Server PHP App Server PHP App Server
  12. 12. Demo time •  Checkout app from GitHub •  Integrate with the eb command line tool •  Deploy from the command line •  View the console •  Change, commit, and deploy
  13. 13. Elastic Beanstalk Supports… Java PHP Python Ruby .NET Node.js Docker
  14. 14. Deploy Your App for Test Alert Log Mon App AZ http://your-app.elasticbeanstalk.com
  15. 15. Deploy Your App for Scale Alert Log Mon App AZ ELB http://your-app.elasticbeanstalk.com
  16. 16. Deploy Your Background Processing App Alert Log Mon App AZ Amazon SQS queueProducers
  17. 17. Deploy With Tools You Know
  18. 18. Deploy With Tools You Know v1.1 V1.2bV1.0
  19. 19. Deploy With Tools You Know Alert Log Mon App AZ ELB http://your-app.elasticbeanstalk.com v1.1 V1.2bV1.0
  20. 20. John Doe, AWS OpsWorks Developer
  21. 21. John Doe, AWS OpsWorks Developer •  Role: Developer •  Builds apps with broad architectural patterns and software; e.g., MongoDB and Solr •  Needs a high degree of flexibility to customize app environments •  Wants APIs to control all aspects of application operations including deployments and scaling
  22. 22. Benefits •  Any architecture •  Configuration as code •  Automation to run at scale •  Control any component
  23. 23. The heart of the service Agent  on  each   EC2  instance   OpsWorks  talks  with  
  24. 24. Overview A  stack  represents  your   applica9on.  One  stack   might  be  used  for   staging  and  another  for   produc9on.   A  layer  defines  how  to   setup  and  configure  a   set  of  instances  and   related  resources  such   as  volumes   and  soAware.     Simply  tell  OpsWorks   where  it  can  find  your   code  and  define  any   addi9onal  deployment   tasks.  Then  OpsWorks   will  take  care  of   deploying  your  app  in   your  desired   configura9on.   Scale  your  stack  based   on  9me  or   load.  Clone  your   produc9on  stack  to  a   different  region.  Set   up  user  permissions  and   access.  Automate   workflows  for  common   tasks.  
  25. 25. Layer Lifecycle Events & Recipes •  Layer lifecycle events (You can also run recipes on demand) •  Chef Recipes Built-in Custom Triggers
  26. 26. Layer: PHP App Server Layer: Ganglia
  27. 27. Layer: PHP App Server Layer: Ganglia
  28. 28. Layer: Ganglia Layer: PHP App Server Layer: PHP App Server Layer: Ganglia •  Start App Svr •  Start Ganglia •  Start App Svr •  Deploy •  Undeploy •  Terminate
  29. 29. Jean Doe, CloudFormation Architect
  30. 30. Jean Doe, CloudFormation Architect •  Role: Architect •  Builds architectures to host whole products or organizations •  Needs to be able to control the whole architecture, from networking to app config •  Wants to be able to version and track architecture changes over time, and have repeatable deployment
  31. 31. AWS CloudFormation: Model Your App •  Document, version control, and share your applications and infrastructure as a JSON document •  Provision app and other AWS resources (Amazon VPC, DynamoDB, etc.) from a template •  Repeatable, reliable deployments for test/dev/ prod in any AWS region
  32. 32. Elastic Beanstalk or AWS OpsWorks Resource AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  33. 33. Database Resources AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon Users Table (Amazon DynamoDB) MySQL Primary (Amazon RDS)
  34. 34. Object Storage and Security Resources IAM Instance Profile AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon Users Table (Amazon DynamoDB) MySQL Primary (Amazon RDS) App Storage (Amazon S3)
  35. 35. Deployed as an AWS CloudFormation Stack Users Table (Amazon DynamoDB) MySQL Primary (Amazon RDS) App Storage (Amazon S3) IAM Instance Profile AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  36. 36. Modeled in a Template File Users Table (Amazon DynamoDB) MySQL Primary (Amazon RDS) App Storage (Amazon S3) IAM Instance Profile AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon AWS CloudFormation Template
  37. 37. Ninja Doe, Roll your own specialist Code + Tools + SDKs
  38. 38. Ninja Doe, Roll your own specialist •  Role: everything •  Builds systems •  Needs total control and customization •  Wants to be able to change systems at any level, and reuse existing deployment approach
  39. 39. Deployments Source Code Repository Deployment Server Continuous Integration Server Web Server DB Server App Package Developer Build Triggers Infrastructure Package Build AWS Environment Commits Run Tests
  40. 40. What we discussed •  Deployment approaches on AWS •  Overview of each approach, and when to use •  Demo how to get an application running •  Customer story: Steve Blake from SportPursuit
  41. 41. AWS Elastic Beanstalk AWS OpsWorks AWS CloudFormation Code + Tools + SDKs Get started: http://amzn.to/1dh8QkU Follow us @aws_eb Get started: http://amzn.to/1bSHOPN Follow us @AWSOpsWorks Get started: http://amzn.to/1m11Z3K Follow us @AWSCloudFormer Learn More Get started: http://amzn.to/1mbXZLB
  42. 42. Deployment Done Right: Requirements and Considerations for Easy App Deployment Steve Blake - CTO steve.blake@sportpursuit.com www.sportpursuit.com
  43. 43. SportPursuit – Business Overview •  Founded in 2011 •  What – Flash sale business unbeatable deals on the world’s best sports & outdoor gear •  Why – to inspire more people to discover gear they’ll fall in love with •  1m+ Members – the UK’s largest private shopping club for sports & outdoor enthusiasts •  3x YoY growth •  600+ of the world’s best sports brands •  40% of brands from outside of the UK •  70% of purchasers buying brand for the 1st time •  UK & AU + shipping to 40+ countries
  44. 44. Brands & Awards Brands we work with Awards
  45. 45. Technical Overview •  AWS –  Used since 2011, when business started –  Chosen to prove business model – Cost, lack of long term contracts –  ‘All In’ •  Magento •  Stack: Nginx, PHP, MySQL •  Optimization: Varnish, Redis, Memcached, Elasticsearch
  46. 46. Technical Architecture Amazon S3 Amazon RDS - MySQL Build Server Load Balancer Varnish App Servers Internal App Server Redis Memcached
  47. 47. Past Deployment Challenges •  Out of sync –  Different releases of code –  Snapshot based –  Out of date new instances •  Manual deployments –  Code repository based –  Time consuming
  48. 48. Deployment Solution •  Active instances •  Jenkins –  Continuous Integration –  Triggers Deployment –  Testing •  Unit Tests – PHP Unit •  Acceptance Tests - Behat •  Load Tests – Multi-Mechanize
  49. 49. Deployment Solution •  Capistrano •  Capify - EC2 –  Ruby / Github –  Instance Tagging – Application, caching etc
  50. 50. Deployment Solution •  Boto –  Python / Github –  Interfaces to AWS –  Deployment –  Current release •  S3 –  Releases
  51. 51. Deployment Solution •  New instances •  Boto –  Upstart –  Rolling deployment •  S3 –  5 Release archive –  Current release –  Rollback
  52. 52. Summary •  Variety of tools –  AWS specific –  Open source community –  Powerful AWS interface •  Solution to suite your needs •  Help –  AWS business support –  Community, forums etc
  53. 53. Deployment Done Right: Requirements and Considerations for Easy App Deployment Steve Blake - CTO steve.blake@sportpursuit.com www.sportpursuit.com
  54. 54. AWS Partner Trail Win a Kindle Fire •  10 in total •  Get a code from our sponsors
  55. 55. Please rate this session using the AWS Summits App and help us build better events
  56. 56. #AWSSummit @AWScloud @AWS_UKI

×