the paved paas to microservices
play

The Paved PaaS to Microservices Yunong Xiao, Principal Software - PowerPoint PPT Presentation

June 26, 2017 The Paved PaaS to Microservices Yunong Xiao, Principal Software Engineer, Netflix yunong@netflix.com, @yunongx, http://yunong.io 100 million customers in over 190 countries streaming 125 million hrs/day What is a Platform as a


  1. June 26, 2017 The Paved PaaS to Microservices Yunong Xiao, Principal Software Engineer, Netflix yunong@netflix.com, @yunongx, http://yunong.io

  2. 100 million customers in over 190 countries streaming 125 million hrs/day

  3. What is a Platform as a Service (Paas), Anyway? “Platform as a service (PaaS)… allows customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure and platform …” –Wikipedia

  4. Our Use Case

  5. Netflix Edge API Backend Service A Script A Client Library A Backend Script B Client Service B Library B Script C Client Backend Library C Service C Script D … … … Client Library N Backend Script N Service N 100 1000+

  6. Owned by client teams Clients Standalone Services Edge API Backend Services TV Backend Service A Discovery iOS Backend Service B Playback Backend Android Service C Non- member … … Windows Backend Service N Browsers Mostly

  7. Know Your Customer

  8. Goals Velocity Reliability

  9. Our PaaS to Achieving Both 1. Standardized components 2. Preassembled platform 3. Automation and tooling

  10. 1. Standardized Components

  11. What’s Inside a Microservice? RPC Discovery Registration Runtime OS Configuration Stream Metrics Logging Tracing Dashboards Alerts Processing

  12. Why Standards?

  13. Mélange of RPC

  14. Microservice Interactions µService … uService µService Client µService µService … µService µService

  15. Failure: When not If

  16. Mean Time to Detection (MTTD) Mean Time to Repair (MTTR) “Is it fixed yet?” – Managers everywhere

  17. N Flavors of RPC µService … uService µService Client µService µService … µService µService

  18. One Standard RPC µService … uService µService Client µService µService … µService µService

  19. Benefits of Standardizing RPC Discovery Registration Runtime OS Configuration Stream Metrics Logging Tracing Dashboards Alerts Processing Consistency Leverage Interoperability Quality Support

  20. But I'm a Snowflake... Freedom & Responsibility O ff -road Innovation Reintegrate New Vacuum Burden

  21. 2. Preassembled Platform

  22. Assembly Required OS Discovery Runtime Configuration RPC Registration Logging Dashboards Stream Processing Metrics Tracing Alerts

  23. Getting Out of the Blocks Docs Copy/paste Which versions? Initialization Configuration Missing components Days or weeks

  24. Velocity Reliability Product Innovation Not a single line of business logic!

  25. Assembly Required OS Discovery Runtime Configuration RPC Registration Metrics Logging Dashboards Stream Processing Tracing Alerts

  26. Preassembled Platform RPC Discovery Registration Runtime OS Configuration Stream Metrics Logging Tracing Dashboards Alerts Processing

  27. Out of the Box

  28. Component Management

  29. Insights

  30. Application, system, and runtime metrics & logs

  31. Consistent application, system, and runtime metrics & logs Reduces MTTD & MTTR

  32. Configures and Initializes Correctly BOEING 747-400 NORMAL PROCEDURES CHECKLIST TRANSPONDER…………………………………SET POWER UP / SAFETY CHECK First Officer Captain SOURCE SELECTORS…………………...…….SET CLOCKS…………………………………………..SET CIRCUITBREAKERS...………………...CHECKED CRT SELECTORS…………………………NORMAL BATTERY……………...………………….………ON PFD………………………………………CHECKED STANDBY POWER………………...………..AUTO ND…………………………………………CHECKED HYDRAULIC DEMAND PUMPS….………..…..OFF AUTOBRAKES…………………………………RTO WINDSHIELD WIPERS....……………….……..OFF EIU SELECTOR………………………………AUTO ALTERNATE FLAPS AND GEAR…………….OFF HDG REFERENCE SWITCH….…………NORMAL GEAR LEVER…….………….....…………..DOWN FMC MASTER SELECTOR…………………LEFT FLAPS…..……………………………....CHECKED GROUND PROX SYSTEM……………CHECKED APU….………………………………...….RUNNING ELECTRICAL SYSTEM....……SET/APU AVAIL ON APU BLEED AIR…...……………………………ON BEFORE STARTING ISOLATION VALVES…………………………OPEN First Officer Captain PACKS………………...……………………NORMAL HYDRAULIC DEMAND PUMPS……………………. .............................................AUTO, AUX (1 AND 4) PREFLIGHT BRAKE PRESSURE……..……………….NORMAL First Officer Captain FUEL QUANTITY………………..…………. ____KG FUEL SYSTEM………………………………….SET EMERGENCY EQUIPMENT…….…….CHECKED X-FEEDS…………………OPEN (1 & 4 CLOSED) FIRE PROTECTION…………...………CHECKED SEAT BELTS SIGN………………………………ON INTERRUPT SWITCHES………………………ON NOTOC………………………………….CHECKED PASSENGER OXYGEN……………..……NORMAL SHIPS PAPERS…………………………ON BOARD STAB TRIM CUTOUT SWITCHES………….AUTO PERFORMANCE DATA......…CHECKED AND SET NAV EQUIPMENT………………………..CHECKED V2……………………………….…………………SET

  33. Versions Updates Compatibility

  34. Important Questions

  35. What’s in and out?

  36. Maintenance vs Convenience RPC Discovery Registration Metrics Logging Tracing Runtime OS Configuration Stream Dashboards Alerts Processing Base Platform

  37. Solution: Layers & Flavors Base platform Data access Rendering Backend …

  38. How to Ensure Platform Correctness?

  39. Test, Test, Test Unit Integration Functional Every PR Cloud

  40. Dog Food with your own Service

  41. Component Correctness RPC Discovery Registration Metrics Logging Tracing Runtime OS Configuration Stream Customers Dashboards Alerts Processing Gate Keeper Lock down Test Updates require versions components PRs

  42. How Locked Down is it?

  43. Tradeoffs Reliability vs Flexibility Consistency Support

  44. Stay on paved path!

  45. Season to Taste Config overrides Startup & shutdown hooks Access to 3rd party libs Swap, disable, or configure components Raw component access

  46. Platform Versioning?

  47. API Semantic Versioning 1.2.3 ^1.0.0 ~1.3.0

  48. Use Conventional Changelog

  49. 3. Automation and Tooling

  50. Ship a Feature

  51. Steps Development Deployment Operations Testing

  52. Development

  53. CLI for common dev experience Env bootstrap Integrate tooling & services Run local & cloud

  54. Local Development Live reload localhost PROD Attach debugger

  55. Testing

  56. Testing

  57. Testing Preassembled Platform RPC Discovery Registration Runtime OS Configuration Stream Metrics Logging Tracing Dashboards Alerts Processing

  58. Preassembled Platform RPC Discovery Registration Runtime OS Configuration Stream Metrics Logging Tracing Dashboards Alerts Processing Pre-Prod

  59. Provide First Class Mocks Preassembled Platform RPC Discovery Registration Runtime OS Configuration Stream Metrics Logging Tracing Dashboards Alerts Processing

  60. Mock Data Generation + RPC

  61. Mock Ownership Stream Configuration Alerts Processing RPC Discovery Registration Metrics Logging Tracing

  62. Platform Testing API • Just like a runtime API, need a testing API • Provide mocks interface for components • Gets platform out of the loop for providing mocks

  63. Deployment

  64. “Production is war!”

  65. Experience Differences

  66. Deploy and Manage Services • Pre-configured pipelines for deployment and rollback • Single command deploy to any stack • Integration for automated canary analysis • Pre-configured autoscaling

  67. Operations

  68. Consolidated View

  69. Generated Dashboards & Alerts RPS CPU Latency Memory Error rates

  70. Automated Analytics & Tooling CPU profiling Core dump analysis

  71. Our PaaS to Velocity & Reliability 1. Standardized components 2. Preassembled platform 3. Automation and tooling

  72. June 26, 2017 The Paved PaaS to Microservices Yunong Xiao, Principal Software Engineer, Netflix yunong@netflix.com, @yunongx, http://yunong.io

Recommend


More recommend