Slide 1

Slide 1 text

The Reactive Edge: Reinventing the Edge Tier Using a Reactive Communication Protocol Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 2

Slide 2 text

Who Am I? Ryland Degnan Chief Technical Officer at Netifi Formerly Netflix Edge Platform Team Contributor to RSocket, RxNetty linkedin.com/in/rjdegnan twitter.com/rjdegnan Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 3

Slide 3 text

“The Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man-made. When was the last time a technology with a scale like that was so error-free? The Web, in comparison, is a joke. The Web was done by amateurs.” —Alan Kay The Web is a Joke… Source: http://www.drdobbs.com/architecture-and-design/interview-with-alan-kay/240003442 Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 4

Slide 4 text

The Web is a Joke… Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 5

Slide 5 text

Increased Connectivity Massive Mobile Device Growth Realtime Interaction Expected The World is Changing… Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 6

Slide 6 text

Image Messaging New connected experiences are being created everyday VR Video Games Video Streaming The World is Changing… Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 7

Slide 7 text

Communication Communication is the foundation that all of these experiences are built upon Communication Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 8

Slide 8 text

HTTP Would you build your house on an old foundation? Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 9

Slide 9 text

The Foundation is Rotten HTTP Lots of Moving Parts Communicating between applications is complicated and inefficient. Unable to Cancel Work in Progress Server Unable to Signal When Ready to Handle Traffic Complicated Server and Application Configuration Errors are Hard to Handle Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 10

Slide 10 text

Does it have to be that way? Simplifying Distributed Communication Ryland Degnan ryland@netifi.com The Foundation is Rotten

Slide 11

Slide 11 text

Time to Change the Foundation More Performant More Secure Cheaper and Easier to Build Faster Time to Market By changing the way applications communicate you can easily build rich experiences Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 12

Slide 12 text

HTTP Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 13

Slide 13 text

HTTP Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 14

Slide 14 text

HTTP Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 15

Slide 15 text

HTTP Thundering herds Cascading failure Circuit breaking Retry logic Timeouts Configuration Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 16

Slide 16 text

HTTP TCP is a full-duplex protocol! Can’t we do better? Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 17

Slide 17 text

Streams Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 18

Slide 18 text

2 2 2 2 2 2 Streams Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 19

Slide 19 text

2 2 2 Streams Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 20

Slide 20 text

2 2 2 Streams Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 21

Slide 21 text

HTTP Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 22

Slide 22 text

HTTP Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 23

Slide 23 text

HTTP Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 24

Slide 24 text

Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 25

Slide 25 text

Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 26

Slide 26 text

Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 27

Slide 27 text

Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 28

Slide 28 text

Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 29

Slide 29 text

Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 30

Slide 30 text

RSocket Reactive Streams over network boundaries, with different interaction models Application flow control, supports cancellation of work in progress Collaboration between Netflix, Facebook, Pivotal, Netifi and others A Better Foundation Reactive Streams Common interfaces for streaming data across an asynchronous boundary Collaboration between Netflix, Lightbend, Twitter, Pivotal and others Many implementations, now supported in JDK 9 Flow API Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 31

Slide 31 text

Towards a Reactive Edge: A Netflix Case Study Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 32

Slide 32 text

Genesis of the Netflix Edge Source: https://www.capgemini.com/2017/03/what-is-fog-and-edge-computing/ Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 33

Slide 33 text

The Netflix API circa 2007 Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 34

Slide 34 text

The Netflix API circa 2007 Fine-grained REST API forces client applications to make multiple calls that need to be assembled Mobile clients pay the price of WAN latency multiple times Ignores differences between devices Poor developer velocity for UI teams No fault tolerance isolation layer Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 35

Slide 35 text

The Netflix API circa 2012 Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 36

Slide 36 text

The Netflix Edge Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 37

Slide 37 text

The Edge is Expanding Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 38

Slide 38 text

Edge PoPs Core regions The Edge is Expanding Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 39

Slide 39 text

The Netflix API circa 2017 Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 40

Slide 40 text

Source: https://www.capgemini.com/2017/03/what-is-fog-and-edge-computing/ Evolution of the Netflix Edge Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 41

Slide 41 text

AWS Region AWS Region AWS Region Middle Tier & Platform Evolution of the Netflix Edge Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 42

Slide 42 text

Edge Network Edge Router Edge Router iOS Endpoint Load Balancer AWS Region AWS Region iOS User Evolution of the Netflix Edge Middle Tier & Platform Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 43

Slide 43 text

Edge Network Edge Router Edge Router iOS Endpoint Load Balancer AWS Region AWS Region iOS User Evolution of the Netflix Edge Middle Tier & Platform Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 44

Slide 44 text

Simplifying Distributed Communication Ryland Degnan ryland@netifi.com Reactive Edge Network… as a service A globally distributed Edge Network that anyone can plug into Self healing, no configuration of queues or circuit breakers Transparent discovery, load balancing, resumability, authentication/encryption

Slide 45

Slide 45 text

IoT Analytics Logs Data Streams Kafka Spark Hadoop Other Services Your Infrastructure Global Edge Network Edge Data Gateway Edge Data Gateway Proprietary Optimized Transport US West US East Durable Message Storage Your Apps and Devices Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 46

Slide 46 text

Reactive Programming Model Advanced Application Protocol Secure By Default Predictive Load Balancing Application Flow Control prevents overloading downstream systems Leverage the richness of Reactive Streams APIs for client and server code Predicts latency of downstream systems and routes to best endpoint Provides a layer of abstraction over the complexity of building distributed systems Reactive programming model over the network Guaranteed message ordering and delivery All communication is encrypted point-to-point preventing message tampering and viewing by unauthorized parties Provides Perfect Forward Secrecy preventing MITM attacks Automatically routes traffic away from unhealthy instances Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 47

Slide 47 text

Reactive Programming Model Identical Examples No Callback Hell Easy fanout/composition Easier Error Handling Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 48

Slide 48 text

Proteus Protobuf compiler plugin Microservices with the click of a button https://github.com/netifi/proteus-java Netifi SDK Plug into our global edge network from anywhere Java & Android, iOS, C++ and JS soon https://github.com/netifi Get Involved! Simplifying Distributed Communication Ryland Degnan ryland@netifi.com

Slide 49

Slide 49 text

Simplifying Distributed Communication Simplifying Distributed Communication Ryland Degnan ryland@netifi.com