AWS Summit London 2014 | Deployment Done Right (300)

  • 1,610 views
Uploaded 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 …

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • 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.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
1,610
On Slideshare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
0
Comments
1
Likes
12

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. AWS Platform AWS Global Infrastructure Application Services Networking Deployment & Administration DatabaseStorageCompute
  • 4. Programmable platform AWS Global Infrastructure Application Services Networking Deployment & Administration DatabaseStorageCompute HTTP Web Services SDKs
  • 5. In your language of choice CODE();   AWS Global Infrastructure Application Services Networking Deployment & Administration DatabaseStorageCompute
  • 6. //  Everything  is  code   CODE();  
  • 7. AWS Elastic Beanstalk AWS OpsWorks AWS CloudFormation Roll-your-own Deployment options
  • 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. Jane Doe, Elastic Beanstalk developer
  • 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. 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. 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. Elastic Beanstalk Supports… Java PHP Python Ruby .NET Node.js Docker
  • 14. Deploy Your App for Test Alert Log Mon App AZ http://your-app.elasticbeanstalk.com
  • 15. Deploy Your App for Scale Alert Log Mon App AZ ELB http://your-app.elasticbeanstalk.com
  • 16. Deploy Your Background Processing App Alert Log Mon App AZ Amazon SQS queueProducers
  • 17. Deploy With Tools You Know
  • 18. Deploy With Tools You Know v1.1 V1.2bV1.0
  • 19. Deploy With Tools You Know Alert Log Mon App AZ ELB http://your-app.elasticbeanstalk.com v1.1 V1.2bV1.0
  • 20. John Doe, AWS OpsWorks Developer
  • 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. Benefits •  Any architecture •  Configuration as code •  Automation to run at scale •  Control any component
  • 23. The heart of the service Agent  on  each   EC2  instance   OpsWorks  talks  with  
  • 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. Layer Lifecycle Events & Recipes •  Layer lifecycle events (You can also run recipes on demand) •  Chef Recipes Built-in Custom Triggers
  • 26. Layer: PHP App Server Layer: Ganglia
  • 27. Layer: PHP App Server Layer: Ganglia
  • 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. Jean Doe, CloudFormation Architect
  • 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. 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. Elastic Beanstalk or AWS OpsWorks Resource AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  • 33. Database Resources AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon Users Table (Amazon DynamoDB) MySQL Primary (Amazon RDS)
  • 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. 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. 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. Ninja Doe, Roll your own specialist Code + Tools + SDKs
  • 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. 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. 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. 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. Deployment Done Right: Requirements and Considerations for Easy App Deployment Steve Blake - CTO steve.blake@sportpursuit.com www.sportpursuit.com
  • 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. Brands & Awards Brands we work with Awards
  • 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. Technical Architecture Amazon S3 Amazon RDS - MySQL Build Server Load Balancer Varnish App Servers Internal App Server Redis Memcached
  • 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. Deployment Solution •  Active instances •  Jenkins –  Continuous Integration –  Triggers Deployment –  Testing •  Unit Tests – PHP Unit •  Acceptance Tests - Behat •  Load Tests – Multi-Mechanize
  • 49. Deployment Solution •  Capistrano •  Capify - EC2 –  Ruby / Github –  Instance Tagging – Application, caching etc
  • 50. Deployment Solution •  Boto –  Python / Github –  Interfaces to AWS –  Deployment –  Current release •  S3 –  Releases
  • 51. Deployment Solution •  New instances •  Boto –  Upstart –  Rolling deployment •  S3 –  5 Release archive –  Current release –  Rollback
  • 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. Deployment Done Right: Requirements and Considerations for Easy App Deployment Steve Blake - CTO steve.blake@sportpursuit.com www.sportpursuit.com
  • 54. AWS Partner Trail Win a Kindle Fire •  10 in total •  Get a code from our sponsors
  • 55. Please rate this session using the AWS Summits App and help us build better events
  • 56. #AWSSummit @AWScloud @AWS_UKI