Finagle is an open-source, high-volume RPC client library, handling millions of QPS at companies like Twitter, Pinterest and Soundcloud. In this talk, we demonstrate how Finagle can be applied to Kubernetes applications via linkerd, an open-source, standalone Finagle proxy. By deploying linkerd as a sidecar container or with DaemonSets, we show how polyglot multi-service applications running in Kubernetes can be “wrapped” in Finagle’s operational model, adding connection pooling, load-balancing, failure detection, and failover mechanisms to existing applications with minimal code change. We demonstrate how linkerd communicates with the Kubernetes API and how the resulting systems perform under load and adverse conditions.
Sched Link: http://sched.co/6BhW
7. Resilience is an imperative: our software
runs on the truly dismal computers we call
datacenters. Besides being heinously
complex… they are unreliable and prone to
operator error.
Marius Eriksen
@marius
RPC Redux
8. resilience in microservices
software you didn’t write
hardware you can’t touch
network you can’t configure
break in new and surprising ways
and your customers shouldn’t notice
15. programming finagle
// proxy requests on 8080 to the users service
// with a timeout of 1 second
val users = Http.newClient(“/s/users”)
Http.serve(“:8080”, Service.mk[Request, Response] { req =>
users(req).within(1.second).handle {
case _: TimeoutException => Response(Status.BadGateway)
}
})
30. make layer 5 great again
transport layer security
service discovery
backpressure
timeouts
retries
stats
tracing
routing
multiplexing
load balancing
circuit breaking
service-level objectives