Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rate of Change, Microservices and Platforms - A tale of devops coevolution

Rate of Change, Microservices and Platforms - A tale of devops coevolution

#devopsdays London talk all about the coevolution of devops, microservices and the need for platforms for managing technology.

Lots of squish people and organisational change bits along with some science.

Gareth Rushgrove

April 20, 2016
Tweet

More Decks by Gareth Rushgrove

Other Decks in Technology

Transcript

  1. (without introducing more risk) Rate of Change, Microservices and Platforms

    Puppet Gareth Rushgrove A tale of devops coevolution
  2. (without introducing more risk) What if I told you It’s

    possible to go faster and to reduce risk at the same time? Gareth Rushgrove
  3. (without introducing more risk) You don’t need to be Google

    or Amazon or Facebook Gareth Rushgrove
  4. (without introducing more risk) - Devops and microservices - The

    effect of communication overhead - The influence of teams on software adoption Gareth Rushgrove
  5. (without introducing more risk) 30x Gareth Rushgrove More frequent deployments

    Faster lead times than their peers 200x 2015 State of DevOps Report
  6. (without introducing more risk) 60x Gareth Rushgrove Change success rate

    Faster mean time to recover 168x 2015 State of DevOps Report
  7. (without introducing more risk) Siloed teams Long cycle times Poor

    visibility Manual processes Gareth Rushgrove Cross-functional teams Short cycle times Fast feedback Automated processes
  8. (without introducing more risk) Gareth Rushgrove Dev Devops Ops From

    http://web.devopstopologies.com/ by Matthew Skelton
  9. (without introducing more risk) There are two essential strategies to

    manage [growing software]: a team can keep everything together (create a monolith) or a team can divide a project into smaller pieces (create microservices). Gareth Rushgrove https://blog.heroku.com/archives/2015/1/20/why_microservices_matter
  10. (without introducing more risk) Paraphrasing There are two essential strategies

    to manage a growing team: keep everyone together or divide into smaller sub-teams Gareth Rushgrove Gareth paraphrasing https://blog.heroku.com/archives/2015/1/20/why_microservices_matter
  11. (without introducing more risk) Gareth Rushgrove Codebase Dependencies Config Backing

    services Build, release, run Processes Port binding Concurrency Disposability Dev/prod parity Logs Admin processes
  12. (without introducing more risk) Or using platforms to drive the

    adoption of standards? Gareth Rushgrove
  13. (without introducing more risk) Problems with microservices - Significant operations

    overhead - Substantial ops skills required - Duplication of effort - Distributed system complexity Gareth Rushgrove http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
  14. (without introducing more risk) We’ve adopted devops, we’re going faster,

    deploying once a week rather than once a quarter Gareth Rushgrove
  15. (without introducing more risk) Conway’s Law Any organization that designs

    a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization's communication structure Gareth Rushgrove
  16. (without introducing more risk) By organizing the stimulus input simultaneously

    into several dimensions and successively into a sequence of chunks, we manage to break (or at least stretch) this informational bottleneck. Gareth Rushgrove The Magical Number Seven, Plus or Minus Two: Some Limits on our Capacity for Processing Information, 1956
  17. (without introducing more risk) The need for coordination drives the

    need for communication among team members. Gareth Rushgrove Findings from Communication Overhead: The Hidden Cost of Team Cognition, 2004
  18. (without introducing more risk) Reduction in communication overhead can be

    created in multiple ways, such as by restructuring the team to reduce the need for coordination… Gareth Rushgrove Findings from Communication Overhead: The Hidden Cost of Team Cognition, 2004
  19. (without introducing more risk) Reduction in communication overhead can be

    created in multiple ways, such as by restructuring the team to reduce the need for coordination… Gareth Rushgrove Microservices?
  20. (without introducing more risk) …or by activities that increase mutual

    awareness and shared mental models among team members Gareth Rushgrove Findings from Communication Overhead: The Hidden Cost of Team Cognition, 2004
  21. (without introducing more risk) …or by activities that increase mutual

    awareness and shared mental models among team members Gareth Rushgrove Devops?
  22. (without introducing more risk) Software adoption is a factor of

    your organisational structure Gareth Rushgrove
  23. (without introducing more risk) Melvin Conway If you have four

    groups working on a compiler, you’ll get a 4-pass compiler Gareth Rushgrove
  24. (without introducing more risk) Paraphrasing If you have four separate

    business units with their own budgets you’ll have 4 contracts with <vendor> Gareth Rushgrove
  25. (without introducing more risk) Change the software you use by

    changing your organisation Gareth Rushgrove
  26. (without introducing more risk) Explosion of new languages Go, Rust,

    Clojure, Scala, Elixir, Elm, Swift, TypeScript… Gareth Rushgrove
  27. (without introducing more risk) Explosion of new platforms Cloud Foundry,

    Docker, Rancher, DC/OS, Kubernetes, Apcera… Gareth Rushgrove
  28. (without introducing more risk) Driven by need for speed? Pick

    the right tool for the job Gareth Rushgrove
  29. (without introducing more risk) Driven by competitive market? Hiring pressure

    for skilled technologists wanting new toys Gareth Rushgrove
  30. (without introducing more risk) More services, many small bets, lower

    risk, less focus on one strategic technology Gareth Rushgrove
  31. (without introducing more risk) Sociotechnical Systems suggests that all human

    systems include both a "technical system" and a "social system" Gareth Rushgrove https://en.wikipedia.org/wiki/Coevolution#Technological_coevolution
  32. (without introducing more risk) It is possible for the system

    to optimize on the technology, giving priority to technical solutions and compelling the social system to adapt to it… Gareth Rushgrove https://en.wikipedia.org/wiki/Coevolution#Technological_coevolution
  33. (without introducing more risk) … or to optimize on the

    social system, giving priority to existing social patterns and procedures and compelling the technology to fill in what gaps remain. Gareth Rushgrove https://en.wikipedia.org/wiki/Coevolution#Technological_coevolution
  34. (without introducing more risk) In practice, both solutions are generally

    suboptimal in terms of outcomes. Gareth Rushgrove https://en.wikipedia.org/wiki/Coevolution#Technological_coevolution
  35. (without introducing more risk) Better outcomes are usually obtained by

    a reciprocal process of joint optimization, through which both the technical system and the social system change to some degree in response to each other Gareth Rushgrove https://en.wikipedia.org/wiki/Coevolution#Technological_coevolution
  36. (without introducing more risk) Devops, microservices and the quest for

    platforms are interdependent examples of coevolution Gareth Rushgrove
  37. (without introducing more risk) Only by understanding this coevolution can

    you successfully evolve your organisation to take advantage Gareth Rushgrove