Dave Cheney

Staff Systems Engineer @ Heptio

Dave started his career as a lab tech at Melbourne University and worked his way up from there. Over the last two decades David has worked for companies big and small, international and local, including Ericsson, Aconex, Atlassian, Canonical, and Heptio in a range of roles from sysop to architect. In 2009, while idly perusing Google Reader (we'll never forget!) he ran across the announcement of a new open source language, Go. It was love at first sight. From that point David's passion for Go has taken him around the world writing, teaching, and speaking about Go.

talkHow we built Contour, and what you can learn from our experience

In 2017 I built Contour, a Kubernetes Ingress controller built using the Envoy proxy project from Lyft. Contour was the first public project to use the new Envoy gRPC API. I chose Envoy for the data plane for our ingress controller because Envoy represents the first of a new class of proxies that have made pull based API configuration a first class citizen. This made it ideal for integration with a highly dynamic system like Kubernetes. Envoy turned out to be a great fit for this project. In this presentation I will explain why, how we went about building Contour, and what others can learn from our missteps along the way. This presentation will provide operators and developers real world advice on how to extend the capabilities of a Kubernetes cluster using the development of Contour Ingress controller as a case study. This session I will cover: What an ingress controller is and what role it plays in a Kubernetes cluster. Why Heptio chose Envoy as the data plane for our ingress controller. How Contour works as a translator from Kubernetes to Envoy. The parts that were a good match, the parts that weren’t, and how we dealt with it. Traps, pitfalls, and ambiguities in the Ingress spec. Patterns we developed to track the state of thousands of backend services spread across multiple streams of API resources. How to develop a component of an interactive system like Kubernetes while avoiding the dreaded compile/push/deploy time sink. Realistic solutions for how to manage the dependencies of a project that uses the kubernetes client libraries.

Meet our international lineup of container experts

Learn about security, orchestration, networking and more