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

DevOps and Microservices: I love you, but it’s complicated.

DevOps and Microservices: I love you, but it’s complicated.

Richard Li (Datawire)

A continuous delivery workflow is essential for adopting microservices. Richard shares Datawire's continuous delivery evolution.

Presented at the Boston DevOps Meetup May 18 2016.

http://www.meetup.com/Boston-Devops/events/230870643/

Boston DevOps

May 18, 2016
Tweet

More Decks by Boston DevOps

Other Decks in Technology

Transcript

  1. datawire.io 3 Break a large cloud application into smaller microservices

    … Enabling teams to independently iterate and ship. Long Iteration Cycle of Monolithic Apps Faster Iteration Cycles of Microservices
  2. datawire.io 4 Continuous delivery workflow 1. Need to have service

    running in production in order to fully test. 2. Quickly move from commit to customer for faster iteration.
  3. datawire.io 5 Bake Docker Packer Deploy AWS Cloud Foundry Docker

    GCP Kubernetes Mesos Microso! Azure Build Circle CI Go.cd JFrog Jenkins Travis Define Datawire Quark Finagle / Thri! HTTP / JSON gRPC / Protobuf Monitor AppDynamics DataDog InfluxData Nagios New Relic SignalFX Sysdig Wavefront Zipkin Connect Datawire Connect Homegrown Hystrix / RIbbon SmartStack DevOps Development Build and package the code/ contract into a source artifact GitHub / Source JAR, Gem, npm AMI, Container, VM Microservice Define the contract (API, data format, protocol) the business logic Code Connect the microservice to other microservices Monitor the health of the deployed microservice Deploy the artifact to run on the appropriate compute resources the application & dependencies into deploy- able artifact Bake Continuous Delivery Ecosystem for Microservices Automated DevOps workflow: Spinnaker
  4. datawire.io 6 Bake Docker Packer Deploy AWS Cloud Foundry Docker

    GCP Kubernetes Mesos Microso! Azure Build Circle CI Go.cd JFrog Jenkins Travis Define Datawire Quark Finagle / Thri! HTTP / JSON gRPC / Protobuf Monitor AppDynamics DataDog InfluxData Nagios New Relic SignalFX Sysdig Wavefront Zipkin Connect Datawire Connect Homegrown Hystrix / RIbbon SmartStack DevOps Development Build and package the code/ contract into a source artifact GitHub / Source JAR, Gem, npm AMI, Container, VM Microservice Define the contract (API, data format, protocol) the business logic Code Connect the microservice to other microservices Monitor the health of the deployed microservice Deploy the artifact to run on the appropriate compute resources the application & dependencies into deploy- able artifact Bake Continuous Delivery Ecosystem for Microservices Automated DevOps workflow: Spinnaker What does DevOps deploy?
  5. datawire.io … is a DevOps Headache (tm) 8 Lots of

    infrastructure to automate & set up for each microservice DNS Single point of failure
  6. datawire.io … and doesn’t work at scale 9 1. Same

    environment between dev, staging, & production 2. Updating microservices rapidly (e.g., blue green deploys)
  7. datawire.io Central -> Distributed 14 Resolution DNS Service discovery Registration

    Manual / auto scaling group Smart endpoint Health checking Central load balancer Smart endpoint Load balancing Central load balancer Smart endpoint
  8. datawire.io 15 Bake Docker Packer A C D G K

    M M Build Circle CI Go.cd JFrog Jenkins Travis Define Datawire Quark Finagle / Thri! HTTP / JSON gRPC / Protobuf A D In N N S S W Z Connect Datawire Connect Homegrown Hystrix / RIbbon SmartStack DevOps Development Build and package the code/ contract into a source artifact GitHub / Source JAR, Gem, npm AMI, Container, VM Microservice Define the contract (API, data format, protocol) the business logic Code Connect the microservice to other microservices Monitor the health of the deployed microservice Deploy the artifact to run on the appropriate compute resources the application & dependencies into deploy- able artifact Bake Continuous Delivery Ecosystem for Microservices Automated DevOps workflow: Spinnaker
  9. datawire.io 17 1. Automated infrastructure. 2. Shared version control. 3.

    One step build and deploy. 4. Feature flags. 5. Shared metrics. 6. IRC and IM robots. Allspaw and Hammond: 10+ deploys/day http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr/
  10. Microservices requires meaningful collaboration on software AND deployment architecture. 1.

    How does your cloud application do load balancing? Do we deploy a new LB? Do we deploy a sidecar? Do we do it in a library? 2. Resilience 3. Monitoring 4. …
  11. datawire.io 20 1. A continuous delivery workflow is essential for

    adopting microservices. 2. Building this workflow has implications for both your deployment architecture AND your software architecture. 3. Microservices requires DevOps + Software to collaborate on design in meaningful ways. 4. Successful collaboration will lead to true love. Summary • microservices.com for talks from our Microservices Practitioner Summit • [email protected] for beta test for our OSS microservices infrastructure • datawire.io/careers for jobs!