»Code Fast and Test Accurately Without Kubectl«
2019-11-16, 15:25–15:55, Room1

As cloud native software continues to grow and mature, code bases become larger and more complicated. What used to be simple build workflows with some Makefiles, now spans across multiple repositories and registries and CI/CD systems. As a Kubernetes developer, jumping through hoops to test your code change on remote clusters can be frustrating. The commands to learn, the build scripts to debug, the clusters policies to remember and the builds wait times are all nuisances which distract from development and don’t help with the delivery progress. In this talk, Ivan and Dan will share some lessons learned on identifying development workflow bottlenecks, and how we utilize Tilt to streamline the Linkerd development workflow, where Tilt makes “getting started” boring and the developers will feel “right at home” both when writing code on their laptops as well as remotely in the cloud.

The developers’ daily development experience is one of the most underserved areas in the cloud native ecosystem. Virtualization, networking, CI, and observability tools keep improving, but they only help cluster administrators. There's been fewer improvements to make the developer's inner loop more cloud native. Developers have to learn CLI tools like kubectl, Docker and Helm just to see the effect of their code change. Hurdles like remote cloud access, rewriting image names and tags, cloud policy configurations etc. increase the microservice tax on development.

In this talk, we want to share with our peer developers the importance of a tight inner loop, ways to identify bottlenecks in their workflow, and practical tips on how to code faster and test more accurately. Using a substantial code base like that of Linkerd, we will demonstrate how Tilt serves both the core maintainers and open source contributors by reducing the “Getting Started” guide to a single command, minimizing build wait times through automatic live updates mechanisms, and automating away mundane tasks like building, pushing and tagging images.