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

How Microservices and Containers Drive Agility

How Microservices and Containers Drive Agility

Presented at Agile Manchester 2016

Matt Saunders

May 29, 2016
Tweet

More Decks by Matt Saunders

Other Decks in Technology

Transcript

  1. sendachi.com Sendachi • Formed in 2016 • Merging Clutch (US)

    and Contino (UK) • VC Funded Services Company • Docker Premier Partner
  2. sendachi.com Sendachi • Enterprise Focus • DevOps & Continuous Delivery

    • Containerisation & Virtualisation • Microservices • Security, Reliability & Resilience • Cloud Architecture
  3. sendachi.com Matt Saunders Principal Consultant @cm6051 [email protected] Sendachi • Old-school

    Sysadmin • Principal Consultant • Training and Learning • DevOps before it was cool • DevOps now it wasn’t cool any more
  4. sendachi.com Microservices “While there is no precise definition of this

    architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.” - Martin Fowler, James Lewis - ThoughtWorks
  5. sendachi.com Microservices • Small replaceable services • Loosely coupled together

    • Deploy seperately • REST APIs • Independent backends
  6. sendachi.com Containerisation Benefits (1/2) • Container abstraction layer • Platform

    Portability • Resilience with Clustering • Provenance and Traceability
  7. sendachi.com Containerisation Benefits (2/2) • Environment Consistency • Improved Compute

    Density • Multi-Tenancy • Remove the Virtualisation Tax
  8. sendachi.com Container Abstraction Layer • Common point of entry for

    containers • Run diverse technology stacks • HTTP with RESTful Interfaces work well • Microservices • 12 Factor Applications
  9. sendachi.com Platform Portability • Move applications easily between servers •

    Private and public cloud • Everything is contained
  10. sendachi.com Resilience with Clustering • Higher-order clustering options • Built

    specifically for Docker • Docker Swarm itself is a containerised application
  11. sendachi.com Provenance and Traceability • Container builds can be automated

    • Cryptographic signing available • Docker registry comms are encrypted • Proof that the image is as-built
  12. sendachi.com Environment Consistency • Applications run purely inside containers •

    Environment information stored outside containers • The same unaltered container runs in all environments • Environmental drift is minimised
  13. sendachi.com Improved Compute Density • Applications can be limited by

    memory and CPU • Pre-allocation of resources isn’t necessary • Intelligent scheduling of workloads with Swarm • Run larger Docker host servers without virtualisation
  14. sendachi.com Multi-Tenancy • Docker containers are insulated from each other

    • Containers can’t interfere or interact with each other • Enables greater density
  15. sendachi.com Remove the Virtualisation Tax • Docker machine can run

    on bare metal • Swarm orchestration optimally places containers • Swarm will replace containers on failed nodes • Any need for virtualisation?
  16. sendachi.com Docker Datacenter • Docker Toolbox • Run a Docker

    environment locally • Build containers • Cryptographic signing
  17. sendachi.com Docker Datacenter • Docker Content Trust • Cryptographic Guarantees

    • Signed with keys • Establishes trust • Valid Signatures required
  18. sendachi.com Not a Free Lunch • Significant Operations Overhead •

    Substantial DevOps Skills Needed • Implicit Interfaces • Distributed System Complexity • Testability Challenges
  19. sendachi.com Container Lunchbox • Reduce Operations Overhead • Bundle Applications

    into a Container • Manage them at scale in a Cluster • Scale your service horizontally
  20. sendachi.com Container Lunchbox • Invest in DevOps • DevOps and

    Release Skills in Dev Teams • Build Containers in Dev World • Build Images only once
  21. sendachi.com Container Lunchbox • Make Interfaces Explicit • Written Contracts

    between Microservices • Use RESTful APIs over HTTPS • Docker doesn’t really help here :) •
  22. sendachi.com Container Lunchbox • Embrace Distributed Systems • Failover •

    Horizontal Scaling • Resilience • Easier with Docker
  23. sendachi.com Container Lunchbox • Test Containers • Build a CI

    Pipeline • Repeatable Infrastructure • Run tests
  24. sendachi.com Container Lunchbox • Test Containers • Build a CI

    Pipeline • Repeatable Infrastructure • Run tests
  25. sendachi.com Container Lunchbox • Test Containers • Build a CI

    Pipeline • Repeatable Infrastructure • Run tests
  26. sendachi.com Containers & Microservices • Run a staged move to

    Docker • Run your monolith in a container
  27. sendachi.com Containers & Microservices • Run a staged move to

    Docker • Run your monolith in a container
  28. sendachi.com Containers & Microservices • Get some benefits • Faster

    startup times • Move app between environments
  29. sendachi.com Containers & Microservices • Start breaking up the monolith

    • Slice bits off the edges of the ball of mud • Make microservices
  30. sendachi.com Driving Agility • Simplified environment provisioning • Use the

    same container everywhere • Abstract per-environment config away