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

from zero to production ready in minutes
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

From Zero to Production-Ready in Minutes

Tim Bozarth @timbozarth

slide-2
SLIDE 2

Dev Experience: Level up your Eng Effectiveness

slide-3
SLIDE 3

Agenda

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

It was the best of times…

(ie: The story of the skeletons in our closet)

1

slide-5
SLIDE 5

About Netflix..

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

slide-6
SLIDE 6
slide-7
SLIDE 7

Runtime Platform

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

slide-8
SLIDE 8

Major Investments in Platform

slide-9
SLIDE 9

High Availability = Winning

Moments of Truth

slide-10
SLIDE 10

High Availability =

slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13

Challenges:

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

slide-14
SLIDE 14

Challenges:

slide-15
SLIDE 15
slide-16
SLIDE 16

Productivity++

(availability is table stakes)

slide-17
SLIDE 17

Complexity is the mind killer.

slide-18
SLIDE 18
slide-19
SLIDE 19

Runtime Platform

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

slide-20
SLIDE 20

Best-practices made easy

(Better living through less complexity)

2

slide-21
SLIDE 21

Generators

slide-22
SLIDE 22

Generators

What: Gives you a deployed app

  • n the “paved road” in

minutes.

slide-23
SLIDE 23

Generators

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

slide-24
SLIDE 24

+

Best Practices

slide-25
SLIDE 25

Historically: “Let’s go!”

slide-26
SLIDE 26
slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29

With Generators: “Let’s go!”

slide-30
SLIDE 30
slide-31
SLIDE 31
slide-32
SLIDE 32

+ + + + +

=

slide-33
SLIDE 33

But wait! There’s more!

(Consistency)

slide-34
SLIDE 34

Components != PaaS

slide-35
SLIDE 35

Goodbye hand-written client libraries

3

slide-36
SLIDE 36
slide-37
SLIDE 37

@Netflix every service owner is responsible for a client

slide-38
SLIDE 38

Clients defend themselves from failure

(and the foundation to much of Netflix’s micro-service success)

slide-39
SLIDE 39

Your service Their service

Your Client

slide-40
SLIDE 40

RPC Internals Platform Integration Serialization & Deserialization Bespoke business logic Your Client Your service

Includes integration with Metrics, Caching, Discovery, Fallbacks, etc...

slide-41
SLIDE 41

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

slide-42
SLIDE 42

Problems

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

slide-43
SLIDE 43

These are solvable problems

slide-44
SLIDE 44

+

slide-45
SLIDE 45
slide-46
SLIDE 46
slide-47
SLIDE 47

2 big wins: Code Generation New Abstraction Layer

slide-48
SLIDE 48

PROTO

slide-49
SLIDE 49

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

slide-50
SLIDE 50

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

slide-51
SLIDE 51

Interceptors encapsulate common patterns

(outside the user’s typical concern domain)

slide-52
SLIDE 52

Client Defense Examples:

  • Fallbacks
  • Advanced Caching
  • Retries
  • Failure Injection
  • Hedged Requests
  • Circuit Breakers (Hystrix)
  • Common analytics & event-logs
  • ... and much more
slide-53
SLIDE 53

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

slide-54
SLIDE 54

(In proto) (In client config)

slide-55
SLIDE 55

gRPC ❤ languages!

slide-56
SLIDE 56

NIH → OSS

4

slide-57
SLIDE 57

Value Effort

slide-58
SLIDE 58

Value Effort

slide-59
SLIDE 59

With every step comes the decision to take another.

slide-60
SLIDE 60

Inertia is a powerful force, and a terrible strategy.

slide-61
SLIDE 61

Favor commodity when it’s not our core competency

(oh right! AWS!)

slide-62
SLIDE 62

Wrapping up…

Ω

slide-63
SLIDE 63

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

slide-64
SLIDE 64

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

slide-65
SLIDE 65

<Appendix>

slide-66
SLIDE 66