Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Next Generation of Microservices

837 views

Published on

How are microservices in 2017 different from how we used to build them at the beginning of the decade?
More traditional Service-Oriented Architectures were defined by protocols and standards published and curated by industry consortiums. Knowledge of the architectural style usually called "microservices", on the other hand, is often in the form of patterns, cautionary tales, and tools extracted from real-world reports and software made available by organisations that have adopted this style.
Almost ten years since the first wave of such reports, the landscape has changed considerably. Many hard challenges from the past have been eased or completely solved, and a lot of the custom software created by the microservices pioneers have been made off-the-shelf open source software.
In this talk, Phil Calçado will contrast what we first found in the first generation of microservices architectures against the current generation's landscape. Let's talk about which previous common knowledge and patterns are deprecated, which ones are still active, and introduce some of the ones that have been recently added to our toolbox.

Published in: Software
  • Be the first to comment

  • Be the first to like this

The Next Generation of Microservices

  1. 1. The Next Genera,on of Microservices Phil Calçado h9p://philcalcado.com @pcalcado
  2. 2. highly distributed applica1on architecture We can think of microservices as
  3. 3. Highly distributed applica,on architectures are just a flavor of distributed compu1ng
  4. 4. Technical Challenges Organiza,on Challenges Introducing distribu,on into your architecture brings up new
  5. 5. Introducing distribu,on into your architecture brings up new
  6. 6. The example we will work with today: Recovering from temporary failure
  7. 7. Back in 2013…
  8. 8. "I know, let’s use microservices”
  9. 9. Timeouts Your code looks like this now Biz Logic Timeouts
  10. 10. server client
  11. 11. Timeouts Your code looks like this now Biz Logic Timeouts RPC code
  12. 12. server client 🔥🔥 🔥
  13. 13. 🔥 wait ☺ 😰 🔥 🔥 wait ☺ 😰 🔥 ☺ ☺ ☺ ☺ ☺ ☺ ☺ ☺
  14. 14. "I know, let’s implement circuit breakers and ,meouts”
  15. 15. Circuit breakers Timeouts Your code looks like this now Biz Logic Timeouts Telemetry RPC code
  16. 16. server client client client client client client
  17. 17. 🔥 wait ☺ 😰 🔥 🔥 wait ☺ 😰 🔥 ☺ ☺ ☺ ☺ ☺ ☺ ☺ ☺
  18. 18. 🔥 wait ☺ 😰 🔥 🔥 ☺ wait 😰 ☺ 🔥 🔥 wait 😰 ☺ 🔥 🔥 wait 😰 ☺ 🔥 🔥 …
  19. 19. 🔥 🗑
  20. 20. "I know, let’s have all circuit breakers share state”
  21. 21. "I know, let’s have all circuit breakers share state” Answer to the question “how did my application ended up importing a Zookeeper library again?"
  22. 22. Circuit breakers Timeouts Your code looks like this now Biz Logic Timeouts Telemetry RPC code Distributed state
  23. 23. server client 🔥🔥 🔥 server server serverserver 🔥🔥 🔥💩 🤔 Which instance should we talk to? ☺
  24. 24. DNS be like… '
  25. 25. "I know, let’s have clients keep track of healthy instances”
  26. 26. Circuit breakers Timeouts Your code looks like this now Biz Logic Timeouts Telemetry RPC code Distributed state Client-side Service Discovery
  27. 27. And that’s just for RPC reliability.
  28. 28. What makes 2017 different?
  29. 29. Experience reports Open-source sobware you can use
  30. 30. Circuit breakers Timeouts Biz Logic Timeouts Telemetry RPC code Distributed state Client-side Service Discovery SDK
  31. 31. Applica,on Transport Internet Network Circuit breakers Telemetry RPC code Distributed state Client-side Service Discovery }TCP/IP }? One way to think about it
  32. 32. But how does one go about adding a new layer to the TCP/IP stack?
  33. 33. Sidecars to the rescue Circuit breakers Timeouts Biz Logic Timeouts Telemetry RPC code Distributed state Client-side Service Discovery SCARY OUTSIDE WORLD
  34. 34. Sidecars to the rescue Circuit breakers Timeouts Biz Logic Timeouts Telemetry RPC code Distributed state Client-side Service Discovery SCARY OUTSIDE WORLDSidecar
  35. 35. Sidecars to the rescue
  36. 36. How does that impact your service?
  37. 37. Circuit breakers Timeouts Biz Logic Timeouts Telemetry RPC code Distributed state Client-side Service Discovery Service Plaform
  38. 38. Biz Logic Stability Service Plaform
  39. 39. Timeouts Biz Logic Stability Service Plaform Capacity Security Availability
  40. 40. Biz LogicService Plaform Service Mesh
  41. 41. Allows our services to pretend some of those are true
  42. 42. It’s not that these pa9erns aren’t used anymore, it’s just that the dumb work moved down the stack.
  43. 43. New, optmised, protocols are quite opaque (e.g. gRPC and friends) Works be9er with metadata-rich protocols
  44. 44. It makes it even harder to fully replicate produc,on earlier in the development cycle Coupled to the plaform
  45. 45. Not everything will be part of the mesh, i.e. the network s,ll isn’t homogeneous Leaky abstrac,on
  46. 46. Q&A

×