Frankenstein's Microservices

Frankenstein's Microservices

How to create a healthy microservice organization

3ca5501cb61a4251bd1e6f0a878bb8d4?s=128

Michael Hamrah

October 10, 2017
Tweet

Transcript

  1. 1 Frankenstein Microservices Michael Hamrah @mhamrah / Chief Architect @NamelyHR

  2. None
  3. None
  4. https://segment.com/blog/goodbye-microservices/ https://news.ycombinator.com/item?id=14415485

  5. Transportation As Reliable As Running Water

  6. ‘Microservices’ is not an architecture

  7. Services Power Products Infrastructure Powers Platform

  8. Owns Data and Function Prevent Coupling Creates Opportunity Has an

    SLO What is a Service?
  9. Core Dependencies Frameworks Focus Here Help You Not Your App

  10. None
  11. What’s in a Platform?

  12. Ownership

  13. Pick a Serialization + Transport We ♥ gRPC

  14. $ docker run -v `pwd`:/defs \ namely/gen-grpc-gateway -f todos.proto -s

    Todos $ docker build -t todos-gateway gen/grpc-gateway rpc UpdateTodo (UpdateTodoRequest) returns (Todo ) { option (google.api.http) = { patch: "/todos/{todo.id}" body: "todo" }; } grpc-gateway gRPC HTTP Call
  15. Make Integration Easy

  16. Deployments Most outages occur from a bad deploy • How

    is it running? • Who deployed what? • How much traffic? • Is it stable? • Can you rollback?
  17. Pipeliner + Estuary https://github.com/namely/k8s-pipeliner Pipeliner is a simple yaml configuration

    for Spinnaker. Estuary automagically applies pipelines to Spinnaker. Single-purpose composable tools are key for any SRE team.
  18. Never Coordinate Deployments

  19. Service Mack Service Lack Service Pack Service Discovery and Traffic

    Management Service A Service B Service C Service Pack Service Lack Service Mack 300ms Timeout x 3 300ms Timeout x 3 Deadline 400ms Budget 20% Deadline 200ms Budget 20%
  20. None
  21. None
  22. Live vs Background Processing Orders Analytics Shipments Oldest Create Order

    Order Created Order Created: Pixel Order Created: iPhone
  23. None
  24. None
  25. Chaos Engineering Putting Failure First

  26. None
  27. Build A Platform • Make DevEx great • Ownership is

    a feature • Observability is a feature • Deployments are a feature • Traffic Management is a feature • Standards are important but not absolute
  28. Know Your Tools

  29. The End