• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
AWS Summit Tel Aviv - Startup Track - Continuous Deployment
 

AWS Summit Tel Aviv - Startup Track - Continuous Deployment

on

  • 1,020 views

 

Statistics

Views

Total Views
1,020
Views on SlideShare
1,020
Embed Views
0

Actions

Likes
4
Downloads
27
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    AWS Summit Tel Aviv - Startup Track - Continuous Deployment AWS Summit Tel Aviv - Startup Track - Continuous Deployment Presentation Transcript

    • AWS Summit 2013 Tel Aviv Oct 16 – Tel Aviv, Israel Continuous Deployment Tiago Henriques Solutions Architect, Amazon Web Services
    • CONTINUOUS INTEGRATION
    • DEVELOPER
    • SOURCE CODE REPOSITORY
    • SOURCE CODE REPOSITORY PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVER PICK TASKS
    • SOURCE CODE REPOSITORY SUBMIT CODE CONTINUOUS INTEGRATION SERVER PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER SCHEDULE BUILD PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER RECURRENT BUILDS PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER CODE FETCH PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER CODE QUALITY TESTS PROJECT MANAGEMENT SERVER TEST RESULTS
    • SOURCE CODE REPOSITORY CONTINUOUS INTEGRATION SERVER BUILD OUTPUT PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY DOCS CONTINUOUS INTEGRATION SERVER BINARIES & PACKAGES PROJECT MANAGEMENT SERVER
    • SOURCE CODE REPOSITORY BUILDS CONTINUOUS INTEGRATION SERVER DNS PROJECT MANAGEMENT SERVER
    • PAIN POINTS • • • • • UNIT TESTS INCOMPLETE MOCK TESTS MAINTENANCE EXPENSIVE TEST ENVIRONMENT TEST ENVIRONMENT ≠ PRODUCTION DEPLOYMENT CYCLES
    • ON-DEMAND ELASTIC PAY AS YOU GO
    • = PROGRAMMABLE PLATFORM
    • IF YOU CAN PROGRAM IT YOU CAN AUTOMATE IT
    • AWS CLOUDFORMATION STACK-BASED DEPLOYMENT SERVICE
    • CLOUDFORMATION TEMPLATE
    • { "Description" : "Create RDS with username and password", "Resources" : { "MyDB" : { "Type" : "AWS::RDS::DBInstance", "Properties" : { "AllocatedStorage" : "500", "DBInstanceClass" : "db.m1.small", "Engine" : "MySQL", "EngineVersion" : "5.5", "MasterUsername" : "MyName", "MasterUserPassword" : "MyPassword" } } } }
    • "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" } }
    • { "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance", "Type" : "String" } }, }
    • PROCEDURAL DEFINITION KNOWN CONFIGURATION Create it programmatically Store stack configuration in source control CLOUDFORMATION TEMPLATE PARAMETER DRIVEN Dynamic and user-driven templates COLLABORATION Share templates with ease as just files
    • APPLICATION VERSIONS + INFRASTRUCTURE VERSIONS
    • CLOUDFORMATION TEMPLATE
    • HTTP://SORCERY.SMUGMUG.COM/
    • TEST ENVIRONMENTS
    • 30,000 REQUESTS / SECOND 1 TB TRAFFIC / DAY
    • “…AWS seemed to be the best solution available to 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
    • LOAD TESTING
    • USING AMAZON EC2 TO SIMULATE 2.4 MILLION PLAYERS
    • CONTINUOUS DEPLOYMENT SMALL, FREQUENT CHANGES CONSTANTLY INTEGRATING INTO PRODUCTION
    • KEY = ITERATION
    • ITERATION = MODIFY THE SYSTEM TO BETTER MEET THE EXPECTATIONS OF YOUR USERS
    • DEPLOYMENTS AT AMAZON.COM 11.6s 1,079 10,000 30,000 Mean time between deployments (weekday) Max number of deployments in a single hour Mean number of hosts simultaneously receiving a deployment Max number of hosts simultaneously receiving a deployment
    • SOFTWARE DEPLOY ≠ PRODUCT LAUNCH
    • 1.5 BILLION PAGE VIEWS $83 MILLION IN TRANSACTIONS 4.2 MILLION ITEMS SOLD OCTOBER 2012
    • 30 DEPLOYS PER DAY 1 DEPLOY EVERY 20 MINUTES
    • "Production is truly the only place you can validate your code."
    • AWS OPSWORKS INTEGRATED APPLICATION MANAGEMENT
    • 14 BILLION REQUESTS/MONTH 50 000 DATABASE UPDATES / SEC NO CACHE
    • A / B TESTING
    • DATA-DRIVEN ARCHITECTURES
    • METRICS @ETSY
    • COST-ORIENTED ARCHITECTURES
    • PHP+APACHE+VARNISH NGINX+NODEJS
    • CONTINUOUS DEPLOYMENT CONTINUOUS INTEGRATION
    • CONTINUOUS DEPLOYMENT = CONTINUOUS EXPERIMENTATION
    • CONTINUOUS DEPLOYMENT = CONTINUOUS IMPROVEMENT
    • INNOVATE
    • « Want to increase innovation? Lower the cost of failure » Joi Ito
    • SPEED AND AGILITY “ON-PREMISE” Experiment Infrequently Experiment Often Failure is expensive Fail quickly at a low cost Less Innovation More Innovation
    • CloudOn Dev / Test Flows AWS IL Conference Oct 16 2013
    • What is CloudOn? CloudOn is a versatile productivity solution that allows you to connect with cloud storage providers to create, review, edit and share your Micosoft Office files across different devices. Proprietary and Confidential | 82
    • The CloudOn Production Environment Provisioning Storage Social Sessions DB File Sharing API RDS Proprietary and Confidential | 83
    • Production Deployment Flow  Bootsrapping Launch Instances install 3rd party infra (Java, Tomcat, etc) Configure roles  Deploy CloudOn Java services    (Not using OpsWorks yet) Proprietary and Confidential | 84
    • Dev / Test Deployment Needs Developer Needs    Push-button deploy by developers Deploy any branch Several deployments in parallel Automated Regression Needs    Deploy specific release candidate combos Run parallel regressions Low Cost Proprietary and Confidential | 85
    • The CloudOn Dev/Test Deployment Model All In One Proprietary and Confidential | 86
    • All In One (AIO) - Deploy    A single instance hosting all CloudOn services Launches via Jenkins Job All In One Allows to override defaults:        Branch and build Instance type Regions Settings Tagged by the developer name Each CloudOn service runs on a different port, no collision Allows re-deploy on existing AIO Proprietary and Confidential | 87
    • All In One – External Services What to do with the external, AWS services?       RDS DynamoDB ElastiCache RDS SQS SES Proprietary and Confidential | 88
    • All In One – SQS, DynamoDB, SES     Using a shared dev account - SQS, DynamoDB, SES New Queue, Tables created for each AIO Keyed by the instance private IP Old Queues and Tables (from obsolete AIOs) deleted upon creation of the newest AIO Proprietary and Confidential | 89
    • All In One – RDS, Memcached     Using a local mySQL, memcached on the machine Allows each instance to have its own data Allows exploring private schema changes (No cost) Proprietary and Confidential | 90
    • All In One – Cost     Medium instance (default, can be changed) Most AIOs are automatically destroyed at midnight (unless requested not to at creation time) Weekly report on long-running AIOs (still find rogue AIOs running for too long…) Proprietary and Confidential | 91
    • All In One – Additional Benefits • • • • • • Push-button deploy by developers On demand Easy end-to-end integration test on AWS Any branch and version Allows operational testing Allows sandboxing for QA, partners Proprietary and Confidential | 92
    • Thanks! Proprietary and Confidential | 93