the next generation of microservices
play

The Next Generation of Microservices Phil Calado - PowerPoint PPT Presentation

The Next Generation of Microservices Phil Calado http://philcalcado.com @pcalcado We can think of microservices as highly distributed application architecture Highly distributed application architectures are just a flavor of distributed


  1. The Next Generation of Microservices Phil Calçado http://philcalcado.com @pcalcado

  2. We can think of microservices as highly distributed application architecture

  3. Highly distributed application architectures are just a flavor of distributed computing

  4. Introducing distribution into your architecture brings up new Organization Technical Challenges Challenges

  5. Introducing distribution into your architecture brings up new

  6. The example we will work with today: Recovering from temporary failure

  7. Back in 2013…

  8. "I know, let’s use microservices”

  9. Your code looks like this now Timeouts Timeouts Biz Logic

  10. client server

  11. Your code looks like this now Timeouts Timeouts RPC code Biz Logic

  12. client server 🔦 🔦 🔦

  13. ☺ 😱 ☺ ☺ 😱 ☺ ☺ ☺ wait wait 🔦 🔦 🔦 ☺ ☺ ☺ ☺ 🔦

  14. "I know, let’s implement circuit breakers and timeouts”

  15. Your code looks like this now Telemetry Timeouts Timeouts Circuit breakers RPC code Biz Logic

  16. client client client client client client server

  17. ☺ 😱 ☺ ☺ 😱 ☺ ☺ ☺ wait wait 🔦 🔦 🔦 ☺ ☺ ☺ ☺ 🔦

  18. ☺ 😱 ☺ 😱 ☺ 😱 ☺ 😱 ☺ … wait wait wait wait 🔦 🔦 🔦 🔦 🔦 🔦 🔦 🔦 🔦

  19. 🔦 🗒

  20. "I know, let’s have all circuit breakers share state”

  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. Your code looks like this now Distributed state Telemetry Timeouts Timeouts Circuit breakers RPC code Biz Logic

  23. Which instance should we talk to? 🤕 client server server server server server 💪 🔦 🔦 🔦 🔦 🔦 ☺ 🔦

  24. DNS be like… 路

  25. "I know, let’s have clients keep track of healthy instances”

  26. Your code looks like this now Client-side Service Discovery Distributed state Telemetry Timeouts Timeouts Circuit breakers RPC code Biz Logic

  27. And that’s just for RPC reliability.

  28. What makes 2017 different?

  29. Open-source Experience software you reports can use

  30. Client-side Service Discovery Timeouts Timeouts Distributed state SDK Biz Logic Telemetry Circuit breakers RPC code

  31. One way to think about it Client-side Service Discovery } ? Distributed state Telemetry Circuit breakers RPC code } TCP/IP Application Transport Internet Network

  32. But how does one go about adding a new layer to the TCP/IP stack?

  33. Sidecars to the rescue Client-side Service Discovery Timeouts Timeouts Distributed state SCARY OUTSIDE Biz Logic Telemetry WORLD Circuit breakers RPC code

  34. Sidecars to the rescue Client-side Service Discovery Timeouts Timeouts Distributed state Sidecar SCARY OUTSIDE Telemetry Biz Logic WORLD Circuit breakers RPC code

  35. Sidecars to the rescue

  36. How does that impact your service?

  37. Service Biz Logic Client-side Service Discovery Platform Timeouts Timeouts Distributed state Telemetry Circuit breakers RPC code

  38. Service Biz Logic Platform Stability

  39. Service Biz Logic Platform Timeouts Stability Capacity Security Availability

  40. Service Biz Logic Platform Service Mesh

  41. Allows our services to pretend some of those are true

  42. It’s not that these patterns aren’t used anymore, it’s just that the dumb work moved down the stack .

  43. Works better with metadata-rich protocols New, optmised, protocols are quite opaque (e.g. gRPC and friends)

  44. Coupled to the platform It makes it even harder to fully replicate production earlier in the development cycle

  45. Leaky abstraction Not everything will be part of the mesh, i.e. the network still isn’t homogeneous

  46. Q&A

Recommend


More recommend