CONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICESCarlos Conde | Solutions Architecture
CONTINUOUSINTEGRATION
DEVELOPER
SOURCE CODE REPOSITORY
SOURCE CODE    REPOSITORYPROJECT MANAGEMENT      SERVER
SOURCE CODE    REPOSITORY    CONTINUOUSINTEGRATION SERVERPROJECT MANAGEMENT      SERVER
SOURCE CODE             REPOSITORY             CONTINUOUS         INTEGRATION SERVER         PROJECT MANAGEMENT           ...
SOURCE CODE             REPOSITORYSUBMIT CODE             CONTINUOUS         INTEGRATION SERVER         PROJECT MANAGEMENT...
SOURCE CODE       REPOSITORY       CONTINUOUS   INTEGRATION SERVERSCHEDULE    BUILD  PROJECT MANAGEMENT        SERVER
SOURCE CODE    REPOSITORY    CONTINUOUSINTEGRATION SERVER              RECURENT              BUILDSPROJECT MANAGEMENT     ...
SOURCE CODE    REPOSITORY    CONTINUOUSINTEGRATION SERVER                     CODE                     FETCHPROJECT MANAGE...
SOURCE CODE    REPOSITORY    CONTINUOUSINTEGRATION SERVER                 CODE QUALITY                 TESTSPROJECT MANAGE...
SOURCE CODE    REPOSITORY    CONTINUOUSINTEGRATION SERVER              BUILD OUTPUTPROJECT MANAGEMENT      SERVER
SOURCE CODE    REPOSITORY    CONTINUOUS           DOCSINTEGRATION SERVER                     BINARIES /                   ...
SOURCE CODE       REPOSITORY                                            BUILDS              CONTINUOUS          INTEGRATIO...
PAIN POINTS:•   UNIT TESTS INCOMPLETE•   MOCKS MAINTENANCE•   TEST ENV EXPENSIVE•   TEST ENV ≠ PROD
KEY = ITERATION
ITERATION          =MODIFY THE SYSTEM TO BETTER MEET THE EXPECTATIONS OF        YOUR USERS
ON-DEMAND       ELASTIC      PAY AS YOU GO
=PROGRAMMABLE  PLATFORM
AWSCLOUDFORMATION STACK-BASED DEPLOYMENT         SERVICE
CLOUDFORMATION   TEMPLATE
{  "Description" : "Create RDS with username andpassword",  "Resources" : {        "MyDB" : {          "Type" : "AWS::RDS:...
"AWS::CloudFormation::Init" : {  "config" : {   "packages" : {     "yum" : {       "mysql"          :   [],       "mysql-s...
{    "Parameters" : {    "KeyName" : {        "Description" : "Name of an existing EC2                         KeyPair to ...
PROCEDURAL                              KNOWN        DEFINITION                            CONFIGURATIONCreate it programm...
CLOUDFORMATION TEMPLATE                     VIDEO CACHING                   INFRASTRUCTURE               Stack            ...
APPLICATION  VERSIONS     &INFRASTRUCTURE    VERSIONS
CLOUDFORMATION   TEMPLATE
TEST ENVIRONMENTS
30,000 REQUESTS / SECOND       1 TB TRAFFIC / DAY
“…AWS seemed to be the best solution availableto allow a small, independent company to rapidly              develop and te...
CONTINUOUS    DEPLOYMENT SMALL, FREQUENT CHANGESCONSTANTLY INTEGRATING INTO        PRODUCTION.
DEPLOYMENTS AT                AMAZON.COM 11.6s            1,079            10,000           30,000 Mean time      Max numb...
SOFTWARE DEPLOY      ≠PRODUCT LAUNCH
1.5 BILLION PAGE VIEWS$83 MILLION IN TRANSACTIONS4.2 MILLION ITEMS SOLDOCTOBER 2012
30 DEPLOYS PER DAY1 DEPLOY EVERY 20 MINUTES
"Production is truly the only place you      can validate your code."
HTTP://CODEASCRAFT.ETSY.COM/HTTPS://GITHUB.COM/ETSY/DEPLOYINATOR
HTTP://SORCERY.SMUGMUG.COM/
AWS OPSWORKSINTEGRATED APPLICATION     MANAGEMENT
MODEL, CONTROL AND AUTOMATEAT ANY SCALE AND COMPLEXITY
A stack represents        A layer defines how to   Tell OpsWorks where      Scale your stackyour application. One     setu...
A stack represents        A layer defines how to   Tell OpsWorks where      Scale your stackyour application. One     setu...
A stack represents        A layer defines how to   Tell OpsWorks where      Scale your stackyour application. One     setu...
A stack represents        A layer defines how to   Tell OpsWorks where      Scale your stackyour application. One     setu...
AWS Elastic     AWS           AWS         Amazon EC2 Beanstalk    OpsWorks   CloudFormation
AWS Elastic     AWS           AWS          Amazon EC2 Beanstalk    OpsWorks   CloudFormationCONVENIENCE                   ...
HIGH-LEVEL             DO IT YOURSELFAWS Elastic     AWS           AWS          Amazon EC2 Beanstalk    OpsWorks   CloudFo...
FREE OF CHARGE
14 BILLION REQUESTS/MONTH50 000 DATABASE UPDATES / SEC                   NO CACHE
“AWS OpsWorks gives us the tools weneed to automate operations.We can scale Monster World, one of thelargest Facebook game...
A / B TESTING
LOAD TESTING
USING AMAZON EC2 TO SIMULATE2.4 MILLION PLAYERS
DATA-DRIVENARCHITECTURES
METRICS @ETSY
COST-ORIENTEDARCHITECTURES
PHP+APACHE+VARNISH       NGINX+NODEJS
CONTINUOUS          DEPLOYMENTCONTINUOUSINTEGRATION
CONTINUOUS  DEPLOYMENT       =  CONTINUOUSEXPERIMENTATION
CONTINUOUS DEPLOYMENT      = CONTINUOUSIMPROVEMENT
INNOVATE
« Want to increase innovation?  Lower the cost of failure »                         Joi Ito
SPEED AND AGILITY   “ON-PREMISE”     Experiment     Experiment     Infrequently     Often      Failure is     Fail quickly...
ARCHITECTURE CENTERhttp://aws.amazon.com/architectureTECHNICAL ARTICLEShttp://aws.amazon.com/articlesPODCASThttp://aws.ama...
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Continuous Deployment with Amazon Web Services by Carlos Conde
Upcoming SlideShare
Loading in...5
×

Continuous Deployment with Amazon Web Services by Carlos Conde

4,202

Published on

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,202
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
71
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide
  • Many developers are familiar with Continuous Integration principles and agile methodologies but Amazon Web Services enables them to push this concept further. This session will cover the benefits and best practices of running development environments along with production environments on Amazon Web services, and techniques such as A/B testing as promoted in lean development practices.
  • what is continuous deployment, how does it help developers to do their job.Continuous Integration is a helpful practice, but without a deployment operation, tests are difficult to achieve.
  • Jira / Redmine / BugTrack
  • Hudson / Jenkins
  • Even if you’re a rock star programmer, and have a nice moustache t-shirt, you have to test your code
  • Extension: SQS for queued builds
  • All canonical software life cycles were designed by people who build installed software
  • From GitHub presentation -> work togetherNot only together between developers, or app builders, but together, WITH YOUR END USERS, or your early testers.
  • The world’s handmade and vintage marketplace.
  • AUGUST 20121.4 Billion page viewsUSD $76 Million in transactions3.8 Million items sold
  • Deploying code is the very first thing engineers learn to do at Etsy.
  • and now we have OpsWorks- which is a integrated app management solution- it enables you to model, control and automate your infrastructure- at any scale and complexity- without any additional charge- Now you might ask yourself don't we actually have something in that space
  • AWS Elastic Beanstalk:An easy-to-use solution for building web apps and web services with popular application containers such as Java, PHP, Python, Ruby and .NETAWS OpsWorks:is a powerful end-to-end solution that gives you an easy way to manage applications of nearly any scale and complexity without sacrificing control.AWS CloudFormation:A building block service that enables customers to provision and manage almost any AWS resource via a domain specific languageNext to these solutions you can of course manage your compute resources directly, for example using CloudWatch, AutoScaling and Elastic Load Balancing.
  • AWS Elastic Beanstalk:An easy-to-use solution for building web apps and web services with popular application containers such as Java, PHP, Python, Ruby and .NETAWS OpsWorks:is a powerful end-to-end solution that gives you an easy way to manage applications of nearly any scale and complexity without sacrificing control.AWS CloudFormation:A building block service that enables customers to provision and manage almost any AWS resource via a domain specific languageNext to these solutions you can of course manage your compute resources directly, for example using CloudWatch, AutoScaling and Elastic Load Balancing.
  • AWS Elastic Beanstalk:An easy-to-use solution for building web apps and web services with popular application containers such as Java, PHP, Python, Ruby and .NETAWS OpsWorks:is a powerful end-to-end solution that gives you an easy way to manage applications of nearly any scale and complexity without sacrificing control.AWS CloudFormation:A building block service that enables customers to provision and manage almost any AWS resource via a domain specific languageNext to these solutions you can of course manage your compute resources directly, for example using CloudWatch, AutoScaling and Elastic Load Balancing.
  • Games draw an unpredictable number of players, making it difficult to calculate the number of instances needed at any given time. A high degree of automation to enable the rapid deployment of apps, as quick reaction speeds are a decisive factor for social games in the market.Solid reliability. If a game is offline, players will move on to the next.A solution that would work for small, agile teams, as Wooga runs a lean engineering organization.
  • GUIs / algos
  • +24% on magic wand sales !
  • DAU = Daily Active UsersMAU = Monthly Active Users
  • No authorization required, Detect problems quickly, gain confidence
  • Quecesoit iteration ou pivot, pas le choix, ilfautinnover
  • Pour illustrer le launch early
  • Continuous Deployment with Amazon Web Services by Carlos Conde

    1. 1. CONTINOUS DEPLOYMENTWITH AMAZON WEB SERVICESCarlos Conde | Solutions Architecture
    2. 2. CONTINUOUSINTEGRATION
    3. 3. DEVELOPER
    4. 4. SOURCE CODE REPOSITORY
    5. 5. SOURCE CODE REPOSITORYPROJECT MANAGEMENT SERVER
    6. 6. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVERPROJECT MANAGEMENT SERVER
    7. 7. SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVER PICKTASKS
    8. 8. SOURCE CODE REPOSITORYSUBMIT CODE CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVER
    9. 9. SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVERSCHEDULE BUILD PROJECT MANAGEMENT SERVER
    10. 10. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER RECURENT BUILDSPROJECT MANAGEMENT SERVER
    11. 11. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER CODE FETCHPROJECT MANAGEMENT SERVER
    12. 12. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER CODE QUALITY TESTSPROJECT MANAGEMENT SERVER TEST RESULTS
    13. 13. SOURCE CODE REPOSITORY CONTINUOUSINTEGRATION SERVER BUILD OUTPUTPROJECT MANAGEMENT SERVER
    14. 14. SOURCE CODE REPOSITORY CONTINUOUS DOCSINTEGRATION SERVER BINARIES / PACKAGESPROJECT MANAGEMENT SERVER
    15. 15. SOURCE CODE REPOSITORY BUILDS CONTINUOUS INTEGRATION SERVERDNS PROJECT MANAGEMENT SERVER
    16. 16. PAIN POINTS:• UNIT TESTS INCOMPLETE• MOCKS MAINTENANCE• TEST ENV EXPENSIVE• TEST ENV ≠ PROD
    17. 17. KEY = ITERATION
    18. 18. ITERATION =MODIFY THE SYSTEM TO BETTER MEET THE EXPECTATIONS OF YOUR USERS
    19. 19. ON-DEMAND ELASTIC PAY AS YOU GO
    20. 20. =PROGRAMMABLE PLATFORM
    21. 21. AWSCLOUDFORMATION STACK-BASED DEPLOYMENT SERVICE
    22. 22. CLOUDFORMATION TEMPLATE
    23. 23. { "Description" : "Create RDS with username andpassword", "Resources" : { "MyDB" : { "Type" : "AWS::RDS::DBInstance", "Properties" : { "AllocatedStorage" : "500", "DBInstanceClass" : "db.m1.small", "Engine" : "MySQL", "EngineVersion" : "5.5", "MasterUsername" : "MyName", "MasterUserPassword" : "MyPassword" } } }}
    24. 24. "AWS::CloudFormation::Init" : { "config" : { "packages" : { "yum" : { "mysql" : [], "mysql-server" : [], "httpd" : [], "php" : [], "php-mysql" : [] } }, "sources" : { "/var/www/html" : "https://s3.amazonaws.com/my-builds/build-v4.zip" } }}
    25. 25. { "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance", "Type" : "String" } },}
    26. 26. PROCEDURAL KNOWN DEFINITION CONFIGURATIONCreate it programmatically Store stack configuration in source control CLOUDFORMATION TEMPLATE PARAMETER COLLABORATION DRIVEN Share templates with easeDynamic and user-driven as just files templates
    27. 27. CLOUDFORMATION TEMPLATE VIDEO CACHING INFRASTRUCTURE Stack ELBs to frontTemplate secondary cache ~100 Nginx secondary cache servers 2-3 Nginx mid-tier cache servers
    28. 28. APPLICATION VERSIONS &INFRASTRUCTURE VERSIONS
    29. 29. CLOUDFORMATION TEMPLATE
    30. 30. TEST ENVIRONMENTS
    31. 31. 30,000 REQUESTS / SECOND 1 TB TRAFFIC / DAY
    32. 32. “…AWS seemed to be the best solution availableto allow a small, independent company to rapidly develop and test a completely new infrastructure, and host it. We also loved the flexibility that AWS allowed us, when spinning up smaller test environments, for beta trials, QA, localization, and during development. The low initial cost was also crucial.” Alex Evans, CTO
    33. 33. CONTINUOUS DEPLOYMENT SMALL, FREQUENT CHANGESCONSTANTLY INTEGRATING INTO PRODUCTION.
    34. 34. DEPLOYMENTS AT AMAZON.COM 11.6s 1,079 10,000 30,000 Mean time Max number of Mean number of Max number of between deployments in a hosts hostsdeployments single hour simultaneously simultaneously (weekday) receiving a receiving a deployment deployment
    35. 35. SOFTWARE DEPLOY ≠PRODUCT LAUNCH
    36. 36. 1.5 BILLION PAGE VIEWS$83 MILLION IN TRANSACTIONS4.2 MILLION ITEMS SOLDOCTOBER 2012
    37. 37. 30 DEPLOYS PER DAY1 DEPLOY EVERY 20 MINUTES
    38. 38. "Production is truly the only place you can validate your code."
    39. 39. HTTP://CODEASCRAFT.ETSY.COM/HTTPS://GITHUB.COM/ETSY/DEPLOYINATOR
    40. 40. HTTP://SORCERY.SMUGMUG.COM/
    41. 41. AWS OPSWORKSINTEGRATED APPLICATION MANAGEMENT
    42. 42. MODEL, CONTROL AND AUTOMATEAT ANY SCALE AND COMPLEXITY
    43. 43. A stack represents A layer defines how to Tell OpsWorks where Scale your stackyour application. One setup and configure a it can find your code based on time orstack might be used set of instances and and define any load. Clone yourfor staging and related resources additional deployment production stack to aanother for production. such as volumes tasks. OpsWorks will different region. and software. take care of deploying Automate workflows your app. for common tasks.
    44. 44. A stack represents A layer defines how to Tell OpsWorks where Scale your stackyour application. One setup and configure a it can find your code based on time orstack might be used set of instances and and define any load. Clone yourfor staging and related resources additional deployment production stack to aanother for production. such as volumes tasks. OpsWorks will different region. and software. take care of deploying Automate workflows your app. for common tasks.
    45. 45. A stack represents A layer defines how to Tell OpsWorks where Scale your stackyour application. One setup and configure a it can find your code based on time orstack might be used set of instances and and define any load. Clone yourfor staging and related resources additional deployment production stack to aanother for production. such as volumes tasks. OpsWorks will different region. and software. take care of deploying Automate workflows your app. for common tasks.
    46. 46. A stack represents A layer defines how to Tell OpsWorks where Scale your stackyour application. One setup and configure a it can find your code based on time orstack might be used set of instances and and define any load. Clone yourfor staging and related resources additional deployment production stack to aanother for production. such as volumes tasks. OpsWorks will different region. and software. take care of deploying Automate workflows your app. for common tasks.
    47. 47. AWS Elastic AWS AWS Amazon EC2 Beanstalk OpsWorks CloudFormation
    48. 48. AWS Elastic AWS AWS Amazon EC2 Beanstalk OpsWorks CloudFormationCONVENIENCE CONTROL
    49. 49. HIGH-LEVEL DO IT YOURSELFAWS Elastic AWS AWS Amazon EC2 Beanstalk OpsWorks CloudFormationCONVENIENCE CONTROL
    50. 50. FREE OF CHARGE
    51. 51. 14 BILLION REQUESTS/MONTH50 000 DATABASE UPDATES / SEC NO CACHE
    52. 52. “AWS OpsWorks gives us the tools weneed to automate operations.We can scale Monster World, one of thelargest Facebook games, to millions ofusers without ever needing more than twobackend developers” Jesper Richter-Reichhelm Head of engineering – Wooga
    53. 53. A / B TESTING
    54. 54. LOAD TESTING
    55. 55. USING AMAZON EC2 TO SIMULATE2.4 MILLION PLAYERS
    56. 56. DATA-DRIVENARCHITECTURES
    57. 57. METRICS @ETSY
    58. 58. COST-ORIENTEDARCHITECTURES
    59. 59. PHP+APACHE+VARNISH NGINX+NODEJS
    60. 60. CONTINUOUS DEPLOYMENTCONTINUOUSINTEGRATION
    61. 61. CONTINUOUS DEPLOYMENT = CONTINUOUSEXPERIMENTATION
    62. 62. CONTINUOUS DEPLOYMENT = CONTINUOUSIMPROVEMENT
    63. 63. INNOVATE
    64. 64. « Want to increase innovation? Lower the cost of failure » Joi Ito
    65. 65. SPEED AND AGILITY “ON-PREMISE” Experiment Experiment Infrequently Often Failure is Fail quickly expensive at a low cost Less More Innovation Innovation
    66. 66. ARCHITECTURE CENTERhttp://aws.amazon.com/architectureTECHNICAL ARTICLEShttp://aws.amazon.com/articlesPODCASThttp://aws.amazon.com/podcastBLOGhttp://aws.typepad.com
    1. Gostou de algum slide específico?

      Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

    ×