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

Agile in a World of micro services

Agile in a World of micro services

Microservices are great - but if you are not careful you have just created a new set of silos. And response time is through the floor because a new service you have never heard of is hammering your app.The right tooling helps - but communication is even more important. This talk will discuss how to build the kind of culture you need to make micro services work.

68d40c5cc1496c2abc1f862dd148a036?s=128

Lisa van Gelder

April 21, 2015
Tweet

Transcript

  1. Agile in a world of micro services How to have

    disparate apps in different languages with different datastores without going crazy
  2. About me • Lisa van Gelder • VP of Engineering

    at Stride • lisa@stridenyc.com • @techbint
  3. The Monolith

  4. How to tell when you have monolith pains • You

    have a release manager • It takes days/weeks to get a release ready • You don’t know which team just broke the site in production • Refactoring is hard because you break everyone else’s changes
  5. You can’t move fast.

  6. What is a micro service? • A bounded context -

    something with clear defined responsibilities • Deployed and hosted separately • With clear data ownership
  7. The good!

  8. None
  9. Scaling!

  10. None
  11. Empowered teams!

  12. The bad

  13. None
  14. None
  15. Releases

  16. Versioning

  17. Testing

  18. None
  19. Who owns cross-team functionality?

  20. Shared common code?

  21. Re-inventing the wheel

  22. The surprise service causing issues

  23. How to make it work

  24. Shared ownership

  25. Cross-team goals

  26. Scrum of Scrums!

  27. None
  28. None
  29. Timeouts

  30. Service discoverability - with clear owners

  31. None
  32. Fake transactions in production

  33. SLOs & priorities what happens when service goes down at

    3 in the morning?
  34. Shared understanding on what happens when something goes wrong •

    error codes • circuit breakers • kill switch • game days or the Simian Army
  35. Mean time to repair

  36. Common interfaces: deployment, healthchecks, logging, monitoring

  37. Trace a user’s journey through the system by shared identifier

  38. Collect logs into a standard searchable system

  39. Dashboards! make it easy for teams to make their own

    and track their own metrics
  40. Standardize common metric names

  41. Publish the state of your circuit breakers

  42. In conclusion: Shared ownership!

  43. Questions? Read this book! Building Microservices by Sam Newman @techbint

  44. Image credits • http://wall.alphacoders.com/big.php?i=121812 • http://eadesign-designisfun.deviantart.com/art/High- speed-city-167609421 • https://www.flickr.com/photos/woolner/4943166258/ •

    http://pixabay.com/en/brewery-tychy-vats-vat-silo-377019/ • http://en.wikipedia.org/wiki/Coral_reef • http://commons.wikimedia.org/wiki/ File:ShadowRidgeRoadFire.JPG • http://en.wikipedia.org/?title=User:Enricoslasheric/ pools_test • https://www.flickr.com/photos/leafbug/409950515/ • http://pixabay.com/en/photos/jigsaw%20puzzle/