The Paved PaaS to Microservices
Yunong Xiao, Principal Software Engineer, Netflix yunong@netflix.com, @yunongx, http://yunong.io
June 26, 2017
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
Yunong Xiao, Principal Software Engineer, Netflix yunong@netflix.com, @yunongx, http://yunong.io
June 26, 2017
–Wikipedia
“Platform as a service (PaaS)… allows customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure and platform…”
What is a Platform as a Service (Paas), Anyway?
Netflix Edge API
Script A Script B Script C Script D Script N …
Client Library A Client Library B Client Library C Client Library N
…
Backend Service A Backend Service B Backend Service C Backend Service N
…
1000+ 100
TV iOS Android Windows Browsers
Discovery Playback Non- member …
Backend Service A Backend Service B Backend Service C Backend Service N
…
Clients Standalone Services Edge API Backend Services
Owned by client teams
Mostly
Velocity Reliability
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
µService Client uService µService µService µService
…
µService
…
µService
– Managers everywhere
µService Client uService µService µService µService
…
µService
…
µService
µService Client uService µService µService µService
…
µService
…
µService
Consistency Leverage Interoperability Quality Support
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Off-road Innovation Reintegrate Burden Vacuum New
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Docs Copy/paste Which versions? Initialization Configuration Missing components Days or weeks
Velocity Reliability Product Innovation
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Preassembled Platform
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Application, system, and runtime metrics & logs
Consistent application, system, and runtime metrics & logs
BOEING 747-400 NORMAL PROCEDURES CHECKLIST POWER UP / SAFETY CHECK First Officer Captain CIRCUITBREAKERS...………………...CHECKED BATTERY……………...………………….………ON STANDBY POWER………………...………..AUTO HYDRAULIC DEMAND PUMPS….………..…..OFF WINDSHIELD WIPERS....……………….……..OFF ALTERNATE FLAPS AND GEAR…………….OFF GEAR LEVER…….………….....…………..DOWN FLAPS…..……………………………....CHECKED APU….………………………………...….RUNNING ELECTRICAL SYSTEM....……SET/APU AVAIL ON APU BLEED AIR…...……………………………ON ISOLATION VALVES…………………………OPEN PACKS………………...……………………NORMAL PREFLIGHT First Officer Captain EMERGENCY EQUIPMENT…….…….CHECKED FIRE PROTECTION…………...………CHECKED INTERRUPT SWITCHES………………………ON PASSENGER OXYGEN……………..……NORMAL STAB TRIM CUTOUT SWITCHES………….AUTO NAV EQUIPMENT………………………..CHECKED TRANSPONDER…………………………………SET SOURCE SELECTORS…………………...…….SET CLOCKS…………………………………………..SET CRT SELECTORS…………………………NORMAL PFD………………………………………CHECKED ND…………………………………………CHECKED AUTOBRAKES…………………………………RTO EIU SELECTOR………………………………AUTO HDG REFERENCE SWITCH….…………NORMAL FMC MASTER SELECTOR…………………LEFT GROUND PROX SYSTEM……………CHECKED BEFORE STARTING First Officer Captain HYDRAULIC DEMAND PUMPS……………………. .............................................AUTO, AUX (1 AND 4) BRAKE PRESSURE……..……………….NORMAL FUEL QUANTITY………………..…………. ____KG FUEL SYSTEM………………………………….SET X-FEEDS…………………OPEN (1 & 4 CLOSED) SEAT BELTS SIGN………………………………ON NOTOC………………………………….CHECKED SHIPS PAPERS…………………………ON BOARD PERFORMANCE DATA......…CHECKED AND SET V2……………………………….…………………SET
Versions Updates Compatibility
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Base Platform
Base platform Data access Rendering Backend …
Unit Integration Functional Cloud
Every PR
Dog Food with your own Service
Lock down versions Test components Updates require PRs Gate Keeper
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Customers
vs
Flexibility Reliability Consistency Support
Config overrides Startup & shutdown hooks Access to 3rd party libs Swap, disable, or configure components Raw component access
1.2.3 ^1.0.0 ~1.3.0
Development Testing Deployment Operations
Env bootstrap Integrate tooling & services Run local & cloud
CLI for common dev experience
Live reload Attach debugger localhost
PROD
Preassembled Platform
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Preassembled Platform
Pre-Prod
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
RPC Discovery Registration Runtime OS Configuration Metrics Logging Tracing Dashboards Alerts Stream Processing
Preassembled Platform
RPC
RPC Discovery Registration Configuration Metrics Logging Tracing Alerts Stream Processing
RPS Latency Error rates CPU Memory
CPU profiling Core dump analysis
Yunong Xiao, Principal Software Engineer, Netflix yunong@netflix.com, @yunongx, http://yunong.io
June 26, 2017