SlideShare a Scribd company logo
1 of 79
Download to read offline
# finger $(whoami)
Login: susan               Name: Susan Potter
Directory: /home/susan     Shell: /bin/zsh
On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0
No mail on me@susanpotter.net
Plan:
  twitter: @SusanPotter
  github: mbbx6spp
# finger $(whoami)
Login: susan               Name: Susan Potter
Directory: /home/susan     Shell: /bin/zsh
On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0
No mail on me@susanpotter.net
Plan:
  twitter: @SusanPotter
  github: mbbx6spp
# finger $(whoami)
Login: susan               Name: Susan Potter
Directory: /home/susan     Shell: /bin/zsh
On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0
No mail on me@susanpotter.net
Plan:
  twitter: @SusanPotter
  github: mbbx6spp
# finger $(whoami)
Login: susan               Name: Susan Potter
Directory: /home/susan     Shell: /bin/zsh
On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0
No mail on me@susanpotter.net
Plan:
  twitter: @SusanPotter
  github: mbbx6spp
# finger $(whoami)
Login: susan               Name: Susan Potter
Directory: /home/susan     Shell: /bin/zsh
On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0
No mail on me@susanpotter.net
Plan:
  twitter: @SusanPotter
  github: mbbx6spp
Scope of Talk


    • Approaches
Scope of Talk


    • Approaches
    • Best Practices
Scope of Talk


    • Approaches
    • Best Practices
    • Pitfalls
Scope of Talk


    •   Approaches
    •   Best Practices
    •   Pitfalls
    •   Possibilities
Scope of Talk


    •   Approaches       • (not) Chef vs Puppet
    •   Best Practices
    •   Pitfalls
    •   Possibilities
Scope of Talk


    •   Approaches       • (not) Chef vs Puppet
    •   Best Practices   • (not) Why Cloud?
    •   Pitfalls
    •   Possibilities
Scope of Talk


    •   Approaches       • (not) Chef vs Puppet
    •   Best Practices   • (not) Why Cloud?
    •   Pitfalls         • (not) Why DevOps?
    •   Possibilities
Scope of Talk


    •   Approaches       •   (not) Chef vs Puppet
    •   Best Practices   •   (not) Why Cloud?
    •   Pitfalls         •   (not) Why DevOps?
    •   Possibilities    •   (not) Which Delivery Model?
Scope of Talk


    •   Approaches       •   (not) Chef vs Puppet
    •   Best Practices   •   (not) Why Cloud?
    •   Pitfalls         •   (not) Why DevOps?
    •   Possibilities    •   (not) Which Delivery Model?
                         •   (not) Release Management
Scope of Talk


    •   Approaches       •   (not) Chef vs Puppet
    •   Best Practices   •   (not) Why Cloud?
    •   Pitfalls         •   (not) Why DevOps?
    •   Possibilities    •   (not) Which Delivery Model?
                         •   (not) Release Management
                         •   (not) Monitoring
Cloud




        buzzzzz
Cloud: Delivery Models [1/2]

        Software
        (as a Service)




        Platform
        (as a Service)




      Infrastructure
        (as a Service)
Cloud: Delivery Models [1/2]

        Software
        (as a Service)




        Platform
        (as a Service)




      Infrastructure
        (as a Service)
Cloud: Delivery Models [1/2]

        Software
        (as a Service)




        Platform
        (as a Service)




      Infrastructure
        (as a Service)
Cloud: Delivery Models [1/2]

        Software
        (as a Service)




        Platform
        (as a Service)




      Infrastructure
        (as a Service)
Cloud: Delivery Models [2/2]
Cloud: Characteristics


    • Instant
      on-demand
Cloud: Characteristics


    • Instant        • Virtualized
      on-demand          performance, reliability
Cloud: Characteristics


    • Instant        • Virtualized
      on-demand          performance, reliability

    • Managed
      by others
Cloud: Characteristics


    • Instant        • Virtualized
      on-demand          performance, reliability

    • Managed        • Lack control
      by others          predictability, reliability, quality
Cloud: Characteristics


    • Instant        • Virtualized
      on-demand          performance, reliability

    • Managed        • Lack control
      by others          predictability, reliability, quality

    • Pay
      as you go
Cloud: Characteristics


    • Instant        • Virtualized
      on-demand          performance, reliability

    • Managed        • Lack control
      by others          predictability, reliability, quality

    • Pay            • Pay
      as you go          as you go!
DevOps




     Is it a command?
DevOps: Definition [1/2]


       • Share responsibility
         across organizational boundaries
DevOps: Definition [1/2]


       • Share responsibility
         across organizational boundaries

       • Invest in people
         by reducing finger pointing [togetherness] and human error [automation]
DevOps: Definition [1/2]


       • Share responsibility
         across organizational boundaries

       • Invest in people
         by reducing finger pointing [togetherness] and human error [automation]

       • Manage infrastructure
         not priority queues of production issues
DevOps: Definition [1/2]


       • Share responsibility
         across organizational boundaries

       • Invest in people
         by reducing finger pointing [togetherness] and human error [automation]

       • Manage infrastructure
         not priority queues of production issues

       • Make infrastructure predictable
         repeatable, testable, deterministic
DevOps: Definition [2/2]
Deployment Pipeline




    commit -> production
Deployment Pipeline: Prerequisites

    • Design for cloud
      e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O
Deployment Pipeline: Prerequisites

    • Design for cloud
      e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O

    • Always-ready codebase
      buildable, testable, deployable
Deployment Pipeline: Prerequisites

    • Design for cloud
      e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O

    • Always-ready codebase
      buildable, testable, deployable

    • Managed infrastructure
      read: SCM and consistent distribution to target nodes
Deployment Pipeline: Prerequisites

    • Design for cloud
      e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O

    • Always-ready codebase
      buildable, testable, deployable

    • Managed infrastructure
      read: SCM and consistent distribution to target nodes

    • Expect [system] failure
      handle failures sensibly, policies for timeouts, etc
Deployment Pipeline: Prerequisites

    • Design for cloud
      e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O

    • Always-ready codebase
      buildable, testable, deployable

    • Managed infrastructure
      read: SCM and consistent distribution to target nodes

    • Expect [system] failure
      handle failures sensibly, policies for timeouts, etc

    • Test early and often!
      outside-in development helps
Deployment Pipeline: Prerequisites

    • Design for cloud
      e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O

    • Always-ready codebase
      buildable, testable, deployable

    • Managed infrastructure
      read: SCM and consistent distribution to target nodes

    • Expect [system] failure
      handle failures sensibly, policies for timeouts, etc

    • Test early and often!
      outside-in development helps

    • Build from the ground up
      layer infrastructure, inject configuration at boot/load time
Deployment: Common Bottlenecks

   •   Automation
       build, provision, configure, integrate




                                               Figure:   http://www.flickr.com/people/laenulfean/
Deployment: Common Bottlenecks

   •   Automation
       build, provision, configure, integrate

   •   Distribution
       binaries, assets, configuration




                                               Figure:   http://www.flickr.com/people/laenulfean/
Deployment: Common Bottlenecks

   •   Automation
       build, provision, configure, integrate

   •   Distribution
       binaries, assets, configuration

   •   Timeframe
       restricted window of time




                                               Figure:   http://www.flickr.com/people/laenulfean/
Deployment: Common Bottlenecks

   •   Automation
       build, provision, configure, integrate

   •   Distribution
       binaries, assets, configuration

   •   Timeframe
       restricted window of time

   •   Data
       schema updates, data migrations



                                               Figure:   http://www.flickr.com/people/laenulfean/
Solution Approaches



      Solve problems,
      don’t use tools!
Automation Approaches

                                                   • Full stack server-driven
                                                     e.g. Chef/Knife, Puppet Master




 Figure:   http://www.flickr.com/people/krazydad/
Automation Approaches

                                                   • Full stack server-driven
                                                     e.g. Chef/Knife, Puppet Master

                                                   • Full stack client
                                                     e.g. Chef Solo




 Figure:   http://www.flickr.com/people/krazydad/
Automation Approaches

                                                   • Full stack server-driven
                                                     e.g. Chef/Knife, Puppet Master

                                                   • Full stack client
                                                     e.g. Chef Solo

                                                   • Application-tier client
                                                     e.g. Capistrano, Vlad the Deployer




 Figure:   http://www.flickr.com/people/krazydad/
Automation Approaches

                                                   • Full stack server-driven
                                                     e.g. Chef/Knife, Puppet Master

                                                   • Full stack client
                                                     e.g. Chef Solo

                                                   • Application-tier client
                                                     e.g. Capistrano, Vlad the Deployer

                                                   • Command & control
                                                     e.g. Vertibrae (inactive), Nanite




 Figure:   http://www.flickr.com/people/krazydad/
Distribution Approaches

                                                • Shared filesystem
                                                 less security and reliability in community/public or across

                                                 zones/regions




  Figure:   http://www.flickr.com/people/nsalt
Distribution Approaches

                                                • Shared filesystem
                                                  less security and reliability in community/public or across

                                                  zones/regions

                                                • Pull from source control
                                                  higher time variance as target nodes increase




  Figure:   http://www.flickr.com/people/nsalt
Distribution Approaches

                                                • Shared filesystem
                                                  less security and reliability in community/public or across

                                                  zones/regions

                                                • Pull from source control
                                                  higher time variance as target nodes increase

                                                • Bittorrent or similar
                                                  e.g. Twitter’s Murder




  Figure:   http://www.flickr.com/people/nsalt
Timeframe Approaches
                                                     • Hot upgrades
                                                      e.g. Erlang/OTP appup/code_change/3




Figure:   http://www.flickr.com/people/athenicsword
Timeframe Approaches
                                                     • Hot upgrades
                                                       e.g. Erlang/OTP appup/code_change/3

                                                     • Rolling upgrades
                                                       Software design considerations




Figure:   http://www.flickr.com/people/athenicsword
Timeframe Approaches
                                                     • Hot upgrades
                                                       e.g. Erlang/OTP appup/code_change/3

                                                     • Rolling upgrades
                                                       Software design considerations

                                                     • Environment replacement
                                                       Flip a switch, acceptance <-> production




Figure:   http://www.flickr.com/people/athenicsword
Data Approaches
                                                      • Scriptable schema
                                                        Alternative: NoSQL, but. . .




Figure:   http://www.flickr.com/people/shanghaidaddy
Data Approaches
                                                      • Scriptable schema
                                                        Alternative: NoSQL, but. . .

                                                      • Automated migrations
                                                        e.g. Rails’ Migrations




Figure:   http://www.flickr.com/people/shanghaidaddy
Data Approaches
                                                      • Scriptable schema
                                                        Alternative: NoSQL, but. . .

                                                      • Automated migrations
                                                        e.g. Rails’ Migrations

                                                      • Sanity checks
                                                        e.g. cherry picked, consistency checks




Figure:   http://www.flickr.com/people/shanghaidaddy
Common Pitfalls & Workarounds
Organizational Culture




          Figure:   http://www.flickr.com/people/lucgaloppin/
Organizational Culture [Workaround]




         Figure:   http://www.flickr.com/photos/42682395@N04/
Feature Branching




         Figure:   http://www.flickr.com/photos/33939293@N02/
Feature Branching [Workaround]
Feature Branching [Workaround]




             DON’T!
Live by the meter.
Die by the meter.
              Figure: WARNING
Live by the meter.
Die by the meter. [Workarounds]




          Figure:   http://www.flickr.com/people/dirkjankraan/
Great Expectations




          Figure:   http://www.flickr.com/people/atoxinsocks/
Great Expectations [Workaround]




          Figure:   http://www.flickr.com/people/dirkjankraan/
Note: Design & Idempotency




         Figure:   A Twitter dialog between me and @jlouis666
Possibilities




            Where.next?
Possibilities
Possibilities


    •   Dynamic resource allocation
        allocate based on load, time of day, day of week/month
Possibilities


    •   Dynamic resource allocation
        allocate based on load, time of day, day of week/month

    •   Canary deployments
        (e.g. A/B testing)
Possibilities


    •   Dynamic resource allocation
        allocate based on load, time of day, day of week/month

    •   Canary deployments
        (e.g. A/B testing)

    •   Multi-region or multi-provider
        relocate based on time of day, failover
Questions?




         Figure:   http://www.flickr.com/photos/42682395@N04/
Questions?




         Figure:   http://www.flickr.com/photos/42682395@N04/




         @SusanPotter

More Related Content

Viewers also liked

The most amazing bridges in the world
The most amazing bridges in the worldThe most amazing bridges in the world
The most amazing bridges in the worldJosé Ferreiro
 
Lausanne Marathon between the lake and verdant hillsides (2009 Edition)
Lausanne Marathon between the lake and verdant hillsides (2009 Edition)Lausanne Marathon between the lake and verdant hillsides (2009 Edition)
Lausanne Marathon between the lake and verdant hillsides (2009 Edition)José Ferreiro
 
Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)
Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)
Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)José Ferreiro
 
e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation José Ferreiro
 
Craigslist Philadelphia - Selling Tips
Craigslist Philadelphia - Selling TipsCraigslist Philadelphia - Selling Tips
Craigslist Philadelphia - Selling Tipsscherubino
 
Information Systems and Technologies used in the framework of the TIR Convention
Information Systems and Technologies used in the framework of the TIR ConventionInformation Systems and Technologies used in the framework of the TIR Convention
Information Systems and Technologies used in the framework of the TIR ConventionJosé Ferreiro
 

Viewers also liked (8)

The most amazing bridges in the world
The most amazing bridges in the worldThe most amazing bridges in the world
The most amazing bridges in the world
 
MY FIRST MARATHON
MY FIRST MARATHONMY FIRST MARATHON
MY FIRST MARATHON
 
Lausanne Marathon between the lake and verdant hillsides (2009 Edition)
Lausanne Marathon between the lake and verdant hillsides (2009 Edition)Lausanne Marathon between the lake and verdant hillsides (2009 Edition)
Lausanne Marathon between the lake and verdant hillsides (2009 Edition)
 
SEO - Matej Novak
SEO - Matej NovakSEO - Matej Novak
SEO - Matej Novak
 
Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)
Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)
Beautiful Latin America by Night (Maravillosa Latinoamérica de noche)
 
e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation
 
Craigslist Philadelphia - Selling Tips
Craigslist Philadelphia - Selling TipsCraigslist Philadelphia - Selling Tips
Craigslist Philadelphia - Selling Tips
 
Information Systems and Technologies used in the framework of the TIR Convention
Information Systems and Technologies used in the framework of the TIR ConventionInformation Systems and Technologies used in the framework of the TIR Convention
Information Systems and Technologies used in the framework of the TIR Convention
 

Similar to Distributed software services to the cloud without breaking a sweat

Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new buildAndrew Phillips
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremKris Buytaert
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsPablo Godel
 
Clojure Conj 2014 - Paradigms of core.async - Julian Gamble
Clojure Conj 2014 - Paradigms of core.async - Julian GambleClojure Conj 2014 - Paradigms of core.async - Julian Gamble
Clojure Conj 2014 - Paradigms of core.async - Julian GambleJulian Gamble
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
IEEE Cloud 2012: Clouds Hands-On Tutorial
IEEE Cloud 2012: Clouds Hands-On TutorialIEEE Cloud 2012: Clouds Hands-On Tutorial
IEEE Cloud 2012: Clouds Hands-On TutorialSrinath Perera
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable productJulian Simpson
 
CCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid Community
CCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid CommunityCCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid Community
CCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid CommunityShapeBlue
 
The Straight Skinny on Cloud Platforms
The Straight Skinny on Cloud PlatformsThe Straight Skinny on Cloud Platforms
The Straight Skinny on Cloud PlatformsHostway|HOSTING
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOpsRicard Clau
 
Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Amazon Web Services
 
CI doesn’t start with Jenkins
CI doesn’t start with JenkinsCI doesn’t start with Jenkins
CI doesn’t start with JenkinsYuriy Rochnyak
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous DeliveryXebiaLabs
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Vadym Kazulkin
 
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best PracticesTechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best PracticesDag Sonstebo
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
 

Similar to Distributed software services to the cloud without breaking a sweat (20)

Why puppet? Why now?
Why puppet? Why now?Why puppet? Why now?
Why puppet? Why now?
 
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 -  Rock Solid Deployment of Symfony AppsSymfony Live NYC 2014 -  Rock Solid Deployment of Symfony Apps
Symfony Live NYC 2014 - Rock Solid Deployment of Symfony Apps
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Deployment is the new build
Deployment is the new buildDeployment is the new build
Deployment is the new build
 
Deploying your SaaS stack OnPrem
Deploying your SaaS stack OnPremDeploying your SaaS stack OnPrem
Deploying your SaaS stack OnPrem
 
Rock Solid Deployment of Web Applications
Rock Solid Deployment of Web ApplicationsRock Solid Deployment of Web Applications
Rock Solid Deployment of Web Applications
 
Clojure Conj 2014 - Paradigms of core.async - Julian Gamble
Clojure Conj 2014 - Paradigms of core.async - Julian GambleClojure Conj 2014 - Paradigms of core.async - Julian Gamble
Clojure Conj 2014 - Paradigms of core.async - Julian Gamble
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
IEEE Cloud 2012: Clouds Hands-On Tutorial
IEEE Cloud 2012: Clouds Hands-On TutorialIEEE Cloud 2012: Clouds Hands-On Tutorial
IEEE Cloud 2012: Clouds Hands-On Tutorial
 
Continuous Integration, the minimum viable product
Continuous Integration, the minimum viable productContinuous Integration, the minimum viable product
Continuous Integration, the minimum viable product
 
CCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid Community
CCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid CommunityCCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid Community
CCCNA17 Distributed CI and Testing for Cloudstack in a Hybrid Community
 
The Straight Skinny on Cloud Platforms
The Straight Skinny on Cloud PlatformsThe Straight Skinny on Cloud Platforms
The Straight Skinny on Cloud Platforms
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401Application Delivery Patterns for Developers - Technical 401
Application Delivery Patterns for Developers - Technical 401
 
CI doesn’t start with Jenkins
CI doesn’t start with JenkinsCI doesn’t start with Jenkins
CI doesn’t start with Jenkins
 
5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery5 Steps on the Way to Continuous Delivery
5 Steps on the Way to Continuous Delivery
 
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
Measure and Increase Developer Productivity with Help of Serverless at AWS Co...
 
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best PracticesTechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
TechUG Glasgow talk 22/Feb/17 Configuration Management Best Practices
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 

More from José Ferreiro

EMBA_brochure_2012-2013
EMBA_brochure_2012-2013EMBA_brochure_2012-2013
EMBA_brochure_2012-2013José Ferreiro
 
Shanghai train central station
Shanghai train central stationShanghai train central station
Shanghai train central stationJosé Ferreiro
 
Canadian Federal Government - Digital Economy leadership white paper
Canadian Federal Government - Digital Economy leadership white paperCanadian Federal Government - Digital Economy leadership white paper
Canadian Federal Government - Digital Economy leadership white paperJosé Ferreiro
 
Setting up a private cloud for academic environment with OSS by Zoran Pantic ...
Setting up a private cloud for academic environment with OSS by Zoran Pantic ...Setting up a private cloud for academic environment with OSS by Zoran Pantic ...
Setting up a private cloud for academic environment with OSS by Zoran Pantic ...José Ferreiro
 
e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation José Ferreiro
 
Cloud Computing - Why and How? (by Forrester Research, Inc.)
Cloud Computing - Why and How? (by Forrester Research, Inc.)Cloud Computing - Why and How? (by Forrester Research, Inc.)
Cloud Computing - Why and How? (by Forrester Research, Inc.)José Ferreiro
 
Security Lock Down Your Computer Like the National Security Agency (NSA)
Security Lock Down Your Computer Like the National Security Agency (NSA)Security Lock Down Your Computer Like the National Security Agency (NSA)
Security Lock Down Your Computer Like the National Security Agency (NSA)José Ferreiro
 
Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android DevelopmentJosé Ferreiro
 
The most amazing world roads
The most amazing world roadsThe most amazing world roads
The most amazing world roadsJosé Ferreiro
 
Main challenges to achieving Millenium Development Goals (MDGs) by 2015
Main challenges to achieving Millenium Development Goals (MDGs) by 2015Main challenges to achieving Millenium Development Goals (MDGs) by 2015
Main challenges to achieving Millenium Development Goals (MDGs) by 2015José Ferreiro
 
Information Systems used in the framework of the TIR Convention : ITDBonline+
Information Systems used in the framework of the TIR Convention : ITDBonline+Information Systems used in the framework of the TIR Convention : ITDBonline+
Information Systems used in the framework of the TIR Convention : ITDBonline+José Ferreiro
 
Mikhael Gorbachev - Resetting the Nuclear Disarmament Agenda
Mikhael Gorbachev - Resetting the Nuclear Disarmament AgendaMikhael Gorbachev - Resetting the Nuclear Disarmament Agenda
Mikhael Gorbachev - Resetting the Nuclear Disarmament AgendaJosé Ferreiro
 
United Nations Office in Geneva: Palais des Nations’ view
United Nations Office in Geneva:Palais des Nations’ viewUnited Nations Office in Geneva:Palais des Nations’ view
United Nations Office in Geneva: Palais des Nations’ viewJosé Ferreiro
 
A conference at the United Nations Office - Palais des Nations - Geneva
A conference at the United Nations Office - Palais des Nations - GenevaA conference at the United Nations Office - Palais des Nations - Geneva
A conference at the United Nations Office - Palais des Nations - GenevaJosé Ferreiro
 
United Nations Office Geneva - Kofi Annan
United Nations Office Geneva - Kofi AnnanUnited Nations Office Geneva - Kofi Annan
United Nations Office Geneva - Kofi AnnanJosé Ferreiro
 
United Nations Office Geneva - Sergei Lavrov
United Nations Office Geneva - Sergei LavrovUnited Nations Office Geneva - Sergei Lavrov
United Nations Office Geneva - Sergei LavrovJosé Ferreiro
 

More from José Ferreiro (17)

EMBA_brochure_2012-2013
EMBA_brochure_2012-2013EMBA_brochure_2012-2013
EMBA_brochure_2012-2013
 
Shanghai train central station
Shanghai train central stationShanghai train central station
Shanghai train central station
 
Canadian Federal Government - Digital Economy leadership white paper
Canadian Federal Government - Digital Economy leadership white paperCanadian Federal Government - Digital Economy leadership white paper
Canadian Federal Government - Digital Economy leadership white paper
 
Setting up a private cloud for academic environment with OSS by Zoran Pantic ...
Setting up a private cloud for academic environment with OSS by Zoran Pantic ...Setting up a private cloud for academic environment with OSS by Zoran Pantic ...
Setting up a private cloud for academic environment with OSS by Zoran Pantic ...
 
e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation e-Customs Services in Border Crossing Facilitation
e-Customs Services in Border Crossing Facilitation
 
Cloud Computing - Why and How? (by Forrester Research, Inc.)
Cloud Computing - Why and How? (by Forrester Research, Inc.)Cloud Computing - Why and How? (by Forrester Research, Inc.)
Cloud Computing - Why and How? (by Forrester Research, Inc.)
 
Security Lock Down Your Computer Like the National Security Agency (NSA)
Security Lock Down Your Computer Like the National Security Agency (NSA)Security Lock Down Your Computer Like the National Security Agency (NSA)
Security Lock Down Your Computer Like the National Security Agency (NSA)
 
Going to the Cloud
Going to the Cloud Going to the Cloud
Going to the Cloud
 
Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
 
The most amazing world roads
The most amazing world roadsThe most amazing world roads
The most amazing world roads
 
Main challenges to achieving Millenium Development Goals (MDGs) by 2015
Main challenges to achieving Millenium Development Goals (MDGs) by 2015Main challenges to achieving Millenium Development Goals (MDGs) by 2015
Main challenges to achieving Millenium Development Goals (MDGs) by 2015
 
Information Systems used in the framework of the TIR Convention : ITDBonline+
Information Systems used in the framework of the TIR Convention : ITDBonline+Information Systems used in the framework of the TIR Convention : ITDBonline+
Information Systems used in the framework of the TIR Convention : ITDBonline+
 
Mikhael Gorbachev - Resetting the Nuclear Disarmament Agenda
Mikhael Gorbachev - Resetting the Nuclear Disarmament AgendaMikhael Gorbachev - Resetting the Nuclear Disarmament Agenda
Mikhael Gorbachev - Resetting the Nuclear Disarmament Agenda
 
United Nations Office in Geneva: Palais des Nations’ view
United Nations Office in Geneva:Palais des Nations’ viewUnited Nations Office in Geneva:Palais des Nations’ view
United Nations Office in Geneva: Palais des Nations’ view
 
A conference at the United Nations Office - Palais des Nations - Geneva
A conference at the United Nations Office - Palais des Nations - GenevaA conference at the United Nations Office - Palais des Nations - Geneva
A conference at the United Nations Office - Palais des Nations - Geneva
 
United Nations Office Geneva - Kofi Annan
United Nations Office Geneva - Kofi AnnanUnited Nations Office Geneva - Kofi Annan
United Nations Office Geneva - Kofi Annan
 
United Nations Office Geneva - Sergei Lavrov
United Nations Office Geneva - Sergei LavrovUnited Nations Office Geneva - Sergei Lavrov
United Nations Office Geneva - Sergei Lavrov
 

Recently uploaded

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 

Recently uploaded (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Distributed software services to the cloud without breaking a sweat

  • 1.
  • 2.
  • 3.
  • 4. # finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on me@susanpotter.net Plan: twitter: @SusanPotter github: mbbx6spp
  • 5. # finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on me@susanpotter.net Plan: twitter: @SusanPotter github: mbbx6spp
  • 6. # finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on me@susanpotter.net Plan: twitter: @SusanPotter github: mbbx6spp
  • 7. # finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on me@susanpotter.net Plan: twitter: @SusanPotter github: mbbx6spp
  • 8. # finger $(whoami) Login: susan Name: Susan Potter Directory: /home/susan Shell: /bin/zsh On since Mon 29 Sep 1997 21:18 (GMT) on tty1 from :0 No mail on me@susanpotter.net Plan: twitter: @SusanPotter github: mbbx6spp
  • 9. Scope of Talk • Approaches
  • 10. Scope of Talk • Approaches • Best Practices
  • 11. Scope of Talk • Approaches • Best Practices • Pitfalls
  • 12. Scope of Talk • Approaches • Best Practices • Pitfalls • Possibilities
  • 13. Scope of Talk • Approaches • (not) Chef vs Puppet • Best Practices • Pitfalls • Possibilities
  • 14. Scope of Talk • Approaches • (not) Chef vs Puppet • Best Practices • (not) Why Cloud? • Pitfalls • Possibilities
  • 15. Scope of Talk • Approaches • (not) Chef vs Puppet • Best Practices • (not) Why Cloud? • Pitfalls • (not) Why DevOps? • Possibilities
  • 16. Scope of Talk • Approaches • (not) Chef vs Puppet • Best Practices • (not) Why Cloud? • Pitfalls • (not) Why DevOps? • Possibilities • (not) Which Delivery Model?
  • 17. Scope of Talk • Approaches • (not) Chef vs Puppet • Best Practices • (not) Why Cloud? • Pitfalls • (not) Why DevOps? • Possibilities • (not) Which Delivery Model? • (not) Release Management
  • 18. Scope of Talk • Approaches • (not) Chef vs Puppet • Best Practices • (not) Why Cloud? • Pitfalls • (not) Why DevOps? • Possibilities • (not) Which Delivery Model? • (not) Release Management • (not) Monitoring
  • 19. Cloud buzzzzz
  • 20. Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)
  • 21. Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)
  • 22. Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)
  • 23. Cloud: Delivery Models [1/2] Software (as a Service) Platform (as a Service) Infrastructure (as a Service)
  • 25. Cloud: Characteristics • Instant on-demand
  • 26. Cloud: Characteristics • Instant • Virtualized on-demand performance, reliability
  • 27. Cloud: Characteristics • Instant • Virtualized on-demand performance, reliability • Managed by others
  • 28. Cloud: Characteristics • Instant • Virtualized on-demand performance, reliability • Managed • Lack control by others predictability, reliability, quality
  • 29. Cloud: Characteristics • Instant • Virtualized on-demand performance, reliability • Managed • Lack control by others predictability, reliability, quality • Pay as you go
  • 30. Cloud: Characteristics • Instant • Virtualized on-demand performance, reliability • Managed • Lack control by others predictability, reliability, quality • Pay • Pay as you go as you go!
  • 31. DevOps Is it a command?
  • 32. DevOps: Definition [1/2] • Share responsibility across organizational boundaries
  • 33. DevOps: Definition [1/2] • Share responsibility across organizational boundaries • Invest in people by reducing finger pointing [togetherness] and human error [automation]
  • 34. DevOps: Definition [1/2] • Share responsibility across organizational boundaries • Invest in people by reducing finger pointing [togetherness] and human error [automation] • Manage infrastructure not priority queues of production issues
  • 35. DevOps: Definition [1/2] • Share responsibility across organizational boundaries • Invest in people by reducing finger pointing [togetherness] and human error [automation] • Manage infrastructure not priority queues of production issues • Make infrastructure predictable repeatable, testable, deterministic
  • 37. Deployment Pipeline commit -> production
  • 38. Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O
  • 39. Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable
  • 40. Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes
  • 41. Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes • Expect [system] failure handle failures sensibly, policies for timeouts, etc
  • 42. Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes • Expect [system] failure handle failures sensibly, policies for timeouts, etc • Test early and often! outside-in development helps
  • 43. Deployment Pipeline: Prerequisites • Design for cloud e.g. decentralized, layered, parallelized, collaborating single purpose services, async I/O • Always-ready codebase buildable, testable, deployable • Managed infrastructure read: SCM and consistent distribution to target nodes • Expect [system] failure handle failures sensibly, policies for timeouts, etc • Test early and often! outside-in development helps • Build from the ground up layer infrastructure, inject configuration at boot/load time
  • 44. Deployment: Common Bottlenecks • Automation build, provision, configure, integrate Figure: http://www.flickr.com/people/laenulfean/
  • 45. Deployment: Common Bottlenecks • Automation build, provision, configure, integrate • Distribution binaries, assets, configuration Figure: http://www.flickr.com/people/laenulfean/
  • 46. Deployment: Common Bottlenecks • Automation build, provision, configure, integrate • Distribution binaries, assets, configuration • Timeframe restricted window of time Figure: http://www.flickr.com/people/laenulfean/
  • 47. Deployment: Common Bottlenecks • Automation build, provision, configure, integrate • Distribution binaries, assets, configuration • Timeframe restricted window of time • Data schema updates, data migrations Figure: http://www.flickr.com/people/laenulfean/
  • 48. Solution Approaches Solve problems, don’t use tools!
  • 49. Automation Approaches • Full stack server-driven e.g. Chef/Knife, Puppet Master Figure: http://www.flickr.com/people/krazydad/
  • 50. Automation Approaches • Full stack server-driven e.g. Chef/Knife, Puppet Master • Full stack client e.g. Chef Solo Figure: http://www.flickr.com/people/krazydad/
  • 51. Automation Approaches • Full stack server-driven e.g. Chef/Knife, Puppet Master • Full stack client e.g. Chef Solo • Application-tier client e.g. Capistrano, Vlad the Deployer Figure: http://www.flickr.com/people/krazydad/
  • 52. Automation Approaches • Full stack server-driven e.g. Chef/Knife, Puppet Master • Full stack client e.g. Chef Solo • Application-tier client e.g. Capistrano, Vlad the Deployer • Command & control e.g. Vertibrae (inactive), Nanite Figure: http://www.flickr.com/people/krazydad/
  • 53. Distribution Approaches • Shared filesystem less security and reliability in community/public or across zones/regions Figure: http://www.flickr.com/people/nsalt
  • 54. Distribution Approaches • Shared filesystem less security and reliability in community/public or across zones/regions • Pull from source control higher time variance as target nodes increase Figure: http://www.flickr.com/people/nsalt
  • 55. Distribution Approaches • Shared filesystem less security and reliability in community/public or across zones/regions • Pull from source control higher time variance as target nodes increase • Bittorrent or similar e.g. Twitter’s Murder Figure: http://www.flickr.com/people/nsalt
  • 56. Timeframe Approaches • Hot upgrades e.g. Erlang/OTP appup/code_change/3 Figure: http://www.flickr.com/people/athenicsword
  • 57. Timeframe Approaches • Hot upgrades e.g. Erlang/OTP appup/code_change/3 • Rolling upgrades Software design considerations Figure: http://www.flickr.com/people/athenicsword
  • 58. Timeframe Approaches • Hot upgrades e.g. Erlang/OTP appup/code_change/3 • Rolling upgrades Software design considerations • Environment replacement Flip a switch, acceptance <-> production Figure: http://www.flickr.com/people/athenicsword
  • 59. Data Approaches • Scriptable schema Alternative: NoSQL, but. . . Figure: http://www.flickr.com/people/shanghaidaddy
  • 60. Data Approaches • Scriptable schema Alternative: NoSQL, but. . . • Automated migrations e.g. Rails’ Migrations Figure: http://www.flickr.com/people/shanghaidaddy
  • 61. Data Approaches • Scriptable schema Alternative: NoSQL, but. . . • Automated migrations e.g. Rails’ Migrations • Sanity checks e.g. cherry picked, consistency checks Figure: http://www.flickr.com/people/shanghaidaddy
  • 62. Common Pitfalls & Workarounds
  • 63. Organizational Culture Figure: http://www.flickr.com/people/lucgaloppin/
  • 64. Organizational Culture [Workaround] Figure: http://www.flickr.com/photos/42682395@N04/
  • 65. Feature Branching Figure: http://www.flickr.com/photos/33939293@N02/
  • 68. Live by the meter. Die by the meter. Figure: WARNING
  • 69. Live by the meter. Die by the meter. [Workarounds] Figure: http://www.flickr.com/people/dirkjankraan/
  • 70. Great Expectations Figure: http://www.flickr.com/people/atoxinsocks/
  • 71. Great Expectations [Workaround] Figure: http://www.flickr.com/people/dirkjankraan/
  • 72. Note: Design & Idempotency Figure: A Twitter dialog between me and @jlouis666
  • 73. Possibilities Where.next?
  • 75. Possibilities • Dynamic resource allocation allocate based on load, time of day, day of week/month
  • 76. Possibilities • Dynamic resource allocation allocate based on load, time of day, day of week/month • Canary deployments (e.g. A/B testing)
  • 77. Possibilities • Dynamic resource allocation allocate based on load, time of day, day of week/month • Canary deployments (e.g. A/B testing) • Multi-region or multi-provider relocate based on time of day, failover
  • 78. Questions? Figure: http://www.flickr.com/photos/42682395@N04/
  • 79. Questions? Figure: http://www.flickr.com/photos/42682395@N04/ @SusanPotter