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

The Dark Side Of Microservices

The Dark Side Of Microservices

The term "microservices" has been around for a while now. We've seen a lot of information on why you should adopt this type of architecture, but no one tells you why you shouldn't. This talk won't do that either, but we'll go over some of the issues and traps that microservices bring with it.

We'll look at what kind of tools you need to get a system like this up and running. What kind of decisions do you have to take to roll out a system like this?

How do you communicate between services? REST or RPC? XML or JSON? What framework do we use? micro or go-kit? Where do we store our metrics? How do we create new services? How do we develop these newly created services and communicate with existing services?

These are all decisions a team can get hung up on and spend a lot of time on. This talk aims to help in the decision making and give some insights in our decisions.

Besides the tools and decisions, we'll also look at the extra complexity this system brings with it. How do you debug multiple services? How do you keep track of all these services?

Resources:

- What is `Site Reliability Engineering`?: https://landing.google.com/sre/interview/ben-treynor.html
- Uber Engineering: https://eng.uber.com/
- Netflix Techblog: http://techblog.netflix.com/
- Google Dapper: http://research.google.com/pubs/pub36356.html
- Scaling with AWS Lambda: https://jelmersnoeck.com/2016/08/10/lambda.html
- Experiment: https://github.com/jelmersnoeck/experiment

Jelmer Snoeck

August 19, 2016
Tweet

More Decks by Jelmer Snoeck

Other Decks in Programming

Transcript

  1. Goals • Preview • Print • Reliable • Reusable •

    Language agnostic • Extendable @jelmersnoeck - Lost My Name
  2. Microservices2 • Fault tolerant • Easy development • Language agnostic

    • Scaling 2 simplified summary @jelmersnoeck - Lost My Name
  3. What to use? • REST vs RPC • HTTP vs

    Message Bus • JSON vs Protobuf • Containers vs VMs • … @jelmersnoeck - Lost My Name
  4. Toolkit • gRPC • go-kit • go-micro • gizmo •

    … • our own? @jelmersnoeck - Lost My Name
  5. golumn 3 • configuration • bootstrap • extra functionality 3

    Like Twitter's Finagle or Netflix's Karyon, makes services "reusable" @jelmersnoeck - Lost My Name
  6. Reading list What is Site Reliability Engineering? Uber Engineering Netflix

    Techblog Google Dapper Scaling with AWS Lambda Experiment @jelmersnoeck - Lost My Name