AWS Summit London 2014 | Deployment Done Right (300)

2,587 views
2,264 views

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
2,587
On SlideShare
0
From Embeds
0
Number of Embeds
148
Actions
Shares
0
Downloads
0
Comments
1
Likes
13
Embeds 0
No embeds

No notes for slide

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

×