from zero to production ready in minutes
play

From Zero to Production-Ready in Minutes Tim Bozarth @timbozarth - PowerPoint PPT Presentation

From Zero to Production-Ready in Minutes Tim Bozarth @timbozarth Dev Experience: Level up your Eng Effectiveness Agenda 1. It was the best of times... 2. Best practices made easy 3. Goodbye hand-written clients 4. From NIH to OSS 1 It was


  1. From Zero to Production-Ready in Minutes Tim Bozarth @timbozarth

  2. Dev Experience: Level up your Eng Effectiveness

  3. Agenda 1. It was the best of times... 2. Best practices made easy 3. Goodbye hand-written clients 4. From NIH to OSS

  4. 1 It was the best of times… (ie: The story of the skeletons in our closet)

  5. About Netflix.. 100m+ members 1000+ developers 190+ countries 1/3 US download traffic 500+ microservices Over 100,000 VMs

  6. Runtime Platform Enable developers to productively create and integrate software in the Netflix ecosystem.

  7. Major Investments in Platform

  8. High Availability = Winning Moments of Truth

  9. High Availability =

  10. Challenges: Hard to take advantage of evolving best practices Owning client-side logic is complex and stressful Non-Java experience is hard

  11. Challenges:

  12. Productivity++ (availability is table stakes)

  13. Complexity is the mind killer.

  14. Runtime Platform Enable developers to productively create and integrate software in the Netflix ecosystem.

  15. 2 Best-practices made easy (Better living through less complexity)

  16. Generators

  17. Generators What: Gives you a deployed app on the “paved road” in minutes.

  18. Generators Why: To make it easy to adopt, understand, and build production-ready apps.

  19. Best + Practices

  20. Historically: “Let’s go!”

  21. With Generators: “Let’s go!”

  22. + = + + + +

  23. But wait! There’s more! (Consistency)

  24. Components != PaaS

  25. 3 Goodbye hand-written client libraries

  26. @Netflix every service owner is responsible for a client

  27. Clients defend themselves from failure (and the foundation to much of Netflix’s micro-service success)

  28. Their service Your Client Your service

  29. Bespoke business logic Client Your Serialization & Platform Deserialization Integration RPC Internals Includes integration with Metrics, Caching, Discovery, Fallbacks, etc... Your service

  30. Bespoke business logic Server Their Client Your Serialization & Platform Deserialization Integration RPC Internals RPC Internals Your Service Dependencies Serialization & Platform Integration Deserialization Server Logic

  31. Problems Server-API changes are a nightmare So much hand-written RPC-related code No cross-language client story

  32. These are solvable problems

  33. +

  34. 2 big wins: Code Generation New Abstraction Layer

  35. PROTO

  36. Server Their Bespoke business logic (please no) Client Your gRPC Generated Client Depend Service gRPC generated interfaces Your Service encies Proto Server Logic

  37. aching, Circuit-breake Fallbacks, Failure Injection, Discovery, Request-context-tracin Metrics, Retries, Hedge Requests, oh my!

  38. Interceptors encapsulate common patterns (outside the user’s typical concern domain)

  39. Client Defense Examples: • Fallbacks • Advanced Caching • Retries • Failure Injection • Hedged Requests • Circuit Breakers (Hystrix) • Common analytics & event-logs • ... and much more

  40. Complex, multi-tier caching took a lot of code.

  41. (In proto) (In client config)

  42. gRPC ❤ languages!

  43. 4 NIH → OSS

  44. Value Effort

  45. Value Effort

  46. With every step comes the decision to take another.

  47. Inertia is a powerful force, and a terrible strategy.

  48. Favor commodity when it’s not our core competency (oh right! AWS!)

  49. Ω Wrapping up…

  50. Everything discussed is done gRPC = 10%+ of Netflix RPC 800+ projects made with generators 100+ services currently deployed from generators This stuff = Default for 6-12 months

  51. Code generation is the short & long term solution IDLs = micro-services’ best friend Don’t build stuff you don’t need to

  52. <Appendix>

Recommend


More recommend