SlideShare una empresa de Scribd logo
1 de 79
Descargar para leer sin conexión
# 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

Más contenido relacionado

Destacado

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
 

Destacado (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 a 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 a 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...
 

Más de 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
 

Más de 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
 

Último

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Último (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

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