Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Getting to MVP on AWS

5,999 views

Published on

The 2nd part of our APAC Startup Webinar Series as presented by Pieter Kemps and Joe Ziegler

Published in: Technology
  • Be the first to comment

Getting to MVP on AWS

  1. 1. Startups on AWS:From Idea to MVPPieter Kemps - @P_KempsBusiness Development & Venture CapitalJoe Ziegler - @jiyosubStartup Business Development Manager
  2. 2. Traditional Worldcustomer is knownfeatures are knownsolution is known
  3. 3. Traditional Worldis not where we live
  4. 4. Most startupsKnow the problem, but not the solutionMany dont even know precisely whatproblem they solve
  5. 5. Lean Startups:LEARN & ADAPT
  6. 6. 1. Focus on a simple implementation of your idea
  7. 7. 1. Focus on a simple implementation of your idea2. Start with a minimal core set of features
  8. 8. 1. Focus on a simple implementation of your idea2. Start with a minimal core set of features3. Release and listen to your users
  9. 9. 1. Focus on a simple implementation of your idea2. Start with a minimal core set of features3. Release, listen to your users, then iterateMinimum Viable Product
  10. 10. MVPSmallest thing I can do to test my idea?
  11. 11. « If youre not embarrassedwhen you ship your first versionyou waited too long »Matt MullenwegCEO & Founder of WordPress
  12. 12. amazon.com, 1995
  13. 13. amazon.com, today
  14. 14. Staying lean is creating thesmallest viable product andthen iterate around it
  15. 15. Lean Startup goal is to accelerate iteration
  16. 16. Mean Time between deployments (weekday)Max # of deployments in a single hourMean # of hosts simultaneously receiving a deploymentMax # of hosts simultaneously receiving a deployment11.6Seconds1,07910,00030,000Iteration & Innovation at Amazon.com
  17. 17. How can I lower the cost of innovation?How can I launch faster & do more with less?How do I develop a killer MVP?Today
  18. 18. How can I lower the cost of innovation?Fail Forward, Fail FasterHow can I launch faster & do more with less?Build Apps, Not InfrastructureHow do I develop a killer MVP?Develop Lean, Test HeavyToday
  19. 19. Fail Forward, Fail FasterBuild Apps, Not InfrastructureDevelop Lean, Test HeavyToday
  20. 20. « Want to increase innovation?Lower the cost of failure »Johi Ito
  21. 21. AWS enables you toFail ForwardFail FasterFail Cheaper
  22. 22. a prototype shouldnt require big investments
  23. 23. It should be cheap and validate ideas
  24. 24. Product DevelopmentMVPTimeScale
  25. 25. Innovation & IterationMVPTimeScale
  26. 26. Innovation & IterationTimeScaleStarted: burbn, location-based mobileapp. Photo sharing is just one featureNow: re-written asphoto app. Sold to FBfor 1bn
  27. 27. Innovation & IterationTimeScaleStarted: odeo, site to create & sharepodcastsNow: micro-blogging,500M users, >10Bnvaluation
  28. 28. Innovation & IterationTimeScaleStarted: developed 51 games, none verysuccessful. But then game 52…Now: raised $42M,downloaded 1B times,25% paid, best soldgame on AppStore
  29. 29. “Timing, perseverance, and ten years of tryingwill eventually make you look like an overnightsuccess.”Biz Stone, Twitter co-founder
  30. 30. AWS lowers the cost of InnovationTimeScaleScenarioSmall team with initial idea for Mobile app3 months to get to launchUnknown customer/problem/solutionNo cash….
  31. 31. • Internal testing with your team• 2 Tier Web - Database Servers• Use t1.micro InstancesDev / Test EnvironmentTimeScaleAverage Spend$0p/m
  32. 32. • Release to small group of ‘core testers’• 2 Tier Web & Database Servers• 2 x t1.micro InstancesAlpha ReleaseTimeScaleAverage Spend$15p/m
  33. 33. • First public release – limited audience• Master / Slave DB setup• m1.small Instances• Auto-Scaling Instances (2 Instance minimum)Beta Release / MVPTimeScaleAverage Spend$235p/m
  34. 34. Getting to MVP for $250TimeScaleTotal Spend to MVP$250$235$15$0• 3 months dev/test/release• Serving Beta customers• Ready for full productionand scale
  35. 35. • Full production, ready to scale to 1000s of users• Multi AZ Web & DB Servers• m1.medium Web Instances & Read Slaves• m1.large DB Master Server• Auto-Scaling Instances (2 Instance minimum)Production(v 1.0)TimeScaleAverage Spend$1000p/m
  36. 36. In Summary…Low Cost of IterationMeans more Innovation
  37. 37. Fail Forward, Fail FasterBuild Apps, Not InfrastructureDevelop Lean, Test HeavyToday
  38. 38. Build Apps, Not InfrastructureAWS=Automation=Launch Faster & Do more with Less
  39. 39. Your applicationYour business & what makes you uniqueInnovation, not undifferentiated heavy liftingSpending developer time in the right placeAutomate as much as you can(Deep insight alert: Developer Time = Money)FOCUS!
  40. 40. "Startups are all about focus. AWS enables focus"Ray Bradford, Kleiner Perkins, Caulfield & Byers
  41. 41. FullAutomationFullControlElasticBeanstalkCloudFormation“I just want my app torun, and I only wantaccess to machines ifI really need to”“I want to source controlmy entire datacenterdeployment like I wouldmy apache config”Build Apps, Not InfrastructureAWSOpsWorks
  42. 42. FullAutomationFullControlElasticBeanstalkCloudFormation“I just want my app torun, and I only wantaccess to machines ifI really need to”“I want to source controlmy entire datacenterdeployment like I wouldmy apache config”Build Apps, Not InfrastructureAWSOpsWorks
  43. 43. Elastic Beanstalk CloudFormationOpsWorksQuestion for you
  44. 44. Stacks available with BeanstalkElastic Beanstalk CloudFormation.NetPHPJavaPythonRubyNode.jsOpsWorks
  45. 45. Quickly deploy and manage apps in AWS…Elastic Beanstalk CloudFormationOpsWorks
  46. 46. Application package is deployed into BeanstalkElastic Beanstalk CloudFormationOpsWorks
  47. 47. User ApplicationApplication ServiceHTTP ServiceLanguage InterpreterOperating SystemHostWhich creates the container in EC2Elastic Beanstalk CloudFormationOpsWorks
  48. 48. Beanstalk takes care of the environment…Elastic Beanstalk CloudFormationOpsWorks
  49. 49. …adding Elastic Load Balancer…Elastic Beanstalk CloudFormationOpsWorks
  50. 50. …Auto Scaling groupsElastic Beanstalk CloudFormationOpsWorks
  51. 51. …and launching instancesElastic Beanstalk CloudFormationOpsWorks
  52. 52. …all wired into the Beanstalk frameworkElastic Beanstalk CloudFormationOpsWorks
  53. 53. …and published under a CNAMEElastic Beanstalk CloudFormationOpsWorks
  54. 54. …with logs and app versions held in S3Elastic Beanstalk CloudFormationOpsWorks
  55. 55. How do you create an app forAWS ElasticBeanstalk?
  56. 56. Like any other app…
  57. 57. No dependencies on AWS inherent for Beanstalk deploymentElastic Beanstalk CloudFormationSourceuploaded andexecuted inAWSSourcedownloadedand executedlocallyOpsWorks
  58. 58. Package up as normal…Elastic Beanstalk CloudFormationJava .war fileMicrosoft WebDeploy packagePHP .zip filePython .zip fileGit integrationIDE pluginsOpsWorks
  59. 59. Package up as normal…Elastic Beanstalk CloudFormationJava .war fileMicrosoft WebDeploy packagePHP .zip filePython .zip fileGit integrationIDE pluginsOpsWorks
  60. 60. With ElasticBeanstalk…Full admin access on underlying resourcesEC2 instances, AMIs, AutoScaling groups…
  61. 61. Cost of ElasticBeanstalk?$0
  62. 62. FullAutomationFullControlElasticBeanstalkCloudFormation“I just want my app torun, and I only wantaccess to machines ifI really need to”“I want to source controlmy entire datacenterdeployment like I wouldmy apache config”Build Apps, Not InfrastructureAWSOpsWorks
  63. 63. What happens under the covers of Beanstalk?Elastic Beanstalk CloudFormationElasticBeanstalkAWSCreate security groupCreate auto-scaling policyCreate elastic load balancerAdd instanceInstall softwareConsolidate logsOpsWorks
  64. 64. What happens under the covers of Beanstalk?Elastic Beanstalk CloudFormationAWSCreate security groupCreate auto-scaling policyCreate elastic load balancerAdd instanceInstall softwareConsolidate logsA series of calls into AWSto marshal resourcecreation/configurationOpsWorks
  65. 65. Elastic Beanstalk CloudFormationCloudFormationA consistent scripting interface forcreating/configuring AWSresourcesA framework for lifecyclemanagement of resourcescreated using scriptsSecurityScalingDatabaseNetworkingMonitoringMessagingWorkflowDNSLoad BalancingBackupCDNComputeStorageCloudFormation – underlying automation frameworkOpsWorks
  66. 66. CloudFormation components & terminologyTemplateCloudFormationStackJSON formatted fileParameter definitionResource creationConfiguration actionsConfigured AWS servicesComprehensive service supportService event awareCustomisableFrameworkStack creationStack updatesError detection and rollbackCloudFormationElastic Beanstalk OpsWorks
  67. 67. The benefit of templated environmentsTemplateProcedural definitionCreate it programmaticallyCloudFormationElastic Beanstalk OpsWorks
  68. 68. The benefit of templated environmentsTemplateProcedural definitionCreate it programmaticallyKnown configurationStore stack configuration insource controlCloudFormationElastic Beanstalk OpsWorks
  69. 69. The benefit of templated environmentsTemplateProcedural definitionCreate it programmaticallyKnown configurationStore stack configuration insource controlParameter drivenDynamic and user-driventemplatesCloudFormationElastic Beanstalk OpsWorks
  70. 70. The benefit of templated environmentsTemplateProcedural definitionCreate it programmaticallyKnown configurationStore stack configuration insource controlParameter drivenDynamic and user-driventemplatesCollaborationShare templates with ease asjust filesCloudFormationElastic Beanstalk OpsWorks
  71. 71. Cost of CloudFormation?$0
  72. 72. FullAutomationFullControlElasticBeanstalkCloudFormation“I just want my app torun, and I only wantaccess to machines ifI really need to”“I want to source controlmy entire datacenterdeployment like I wouldmy apache config”Build Apps, Not InfrastructureAWSOpsWorks
  73. 73. Powerful management framework with Chef supportElastic Beanstalk CloudFormationStack Layers ManagementManagedenvironmentDefinition of environmentsuch as production or testManagementservicesScaling, cloning, useraccess, self healingCollection ofresourcesBlueprint for acollection of resources(instances, EBS, EIPsetc)OpsWorksAppsYour applicationassetsResources to deployand run in layers
  74. 74. Simple stack creation through layersElastic Beanstalk CloudFormationOpsWorksLayersLoad balancingHA Proxy installation in an availability zoneApplication containerStatic, Node.js, Rails, PHPDatabase layerMySQL
  75. 75. Scaling and auto-healingElastic Beanstalk CloudFormationOpsWorksAuto healingReplacement of an ec2instance regardless ofscaling thresholdsi.e. always maintain 3nodes across 3 AZsTime based scalingRun an ec2 instance on agiven schedulei.e. run these instances onlyduring weekend peaksLoad based scalingAdd and remove instancesfrom a layer based uponload rulesi.e. run these instances onlywhen CPU goes over 80%
  76. 76. Cost of AWS OpsWorks?$0
  77. 77. Get started fast with Beanstalk(Developer sandboxes with production ready infrastructure)Take fine grained control with CloudFormation(Comprehensive control of all aspects of infrastructure)Manage with layers and recipes - OpsWorks(control with Chef customization)
  78. 78. Build Apps, Not InfrastructureWhy do you care?
  79. 79. …grew to 14 million users in just over a year…reached 150 million photos & terabytes of data…signed up 1.0 million users in 12 hours after launching an Android app…over 100 million active users in January 2013on AWS…with only 3 engineers
  80. 80. “Your users around the world don’tcare that you wrote your own DB”Mike Krieger, Instagram Cofounder
  81. 81. Fail Forward, Fail FasterBuild Apps, Not InfrastructureDevelop Lean, Test HeavyToday
  82. 82. Develop Lean, Test HeavyTake lots of it when you need itUnlimited elastic capacity1. Spinning up environments as you need them2. Development and test frameworks in AWS3. Testing at Scale4. Rolling out to Production5. Preserve for future reference
  83. 83. 1.Spinning up environments as you need them
  84. 84. Spinning up environments in a way that suits youDo it yourself CloudFormationBeanstalkAMIs, snapshots,boostrappingUsing core AWS features to setup an environment to meet yourneedsUse console or enact throughsimple scriptingDeclaratively definedto your requirementsTake full control of complexenvironments using CloudFormation template languageGenerate environmentspecifications as you buildsoftwareManaged standardcontainersGive development & testenvironments to developersdirect from IDEsConfigure containers to meetyour needs through properties
  85. 85. 2.Development and test frameworks in AWS
  86. 86. AWS is open and flexible – build your dev-test systemsFrameworks & environmentsSource controlLeverage EC2 to run popular sourcecontrol systemsProject managementAdd integrated projectmanagement and issue trackingWorkstationsEnable standard builddeveloper/test workstationsBuild serversUse EC2 horsepower to drive buildservers and continuous integration
  87. 87. 3.Testing at Scale
  88. 88. Create environments to support specific test typesTesting at scaleUnit & regressionScale up and parallel run unit andregression plans in a fraction of thetimeLoad & performanceUtilize spot market for generatingload and test how applicationsperform with auto-scalingA/BRun A/B scenario testing withreplica stacksSecurityCreate sandboxes for aggressivesecurity testing
  89. 89. Load & Performance TestBees with Machine Guns!
  90. 90. Bees with Machine GunsEC2 Instance ContentsInstancesEC2 Instance ContentsAmazon CloudWatch#1 Spawns#3 MonitorsMy Appgithub.com/newsapps/beeswithmachineguns
  91. 91. DEMO
  92. 92. 4.Rolling out to Production
  93. 93. Auto ScalingGroupV1ElasticLoadBalancerAmazonRelationalDatabase Service(RDS)
  94. 94. Auto ScalingGroupV1Auto ScalingGroupV2ElasticLoadBalancerAmazonRelationalDatabase Service(RDS)
  95. 95. Auto ScalingGroupV1Auto ScalingGroupV2ElasticLoadBalancerAmazonRelationalDatabase Service(RDS)
  96. 96. Auto ScalingGroupV1Auto ScalingGroupV2ElasticLoadBalancerAmazonRelationalDatabase Service(RDS)
  97. 97. Auto ScalingGroupV2ElasticLoadBalancerAmazonRelationalDatabase Service(RDS)
  98. 98. 5.Preserve for future reference
  99. 99. Dispose for cost optimization, but preserve critical configurationsDisposable environments can be recreatedAMIsCreate a catalog of AMIs foreach iteration of an applicationStored in S3TemplatesSource control infrastructuretemplates with everyapplication versionSnapshotsSave disk images with ‘frozen’data sets and attach to instanceswhen needed
  100. 100. Dispose for cost optimization, but preserve critical configurationsDisposable environments can be recreatedAMIsCreate a catalog of AMIs foreach iteration of an applicationStored in S3TemplatesSource control infrastructuretemplates with everyapplication versionSnapshotsSave disk images with ‘frozen’data sets and attach to instanceswhen neededRoll back and recreate an environment for any given application version
  101. 101. What’s Next?Today
  102. 102. aws.amazon.com/codeLeverage the AWS Developer ToolsCode, Libs, SDK’s, Architectures and moreaws.amazon.com/developertools
  103. 103. aws.amazon.com/tools
  104. 104. aws.amazon.com/tools
  105. 105. aws.amazon.com/ruby
  106. 106. aws.amazon.com/architecture
  107. 107. Visit aws.amazon.com/startups2 more Startup webinars:1. From MVP to Scale on AWS May 212. From Scale to Profitability on AWS June 4Sign up here: aws.amazon.com/apac/startupwebinarsFill up your feedback form !
  108. 108. Questions?Pieter Kemps – Business Development & Venture CapitalJoe Ziegler – Startup Business Development Manager

×