Chapter 13. Development Workflow

Surfing is such an amazing concept. You’re taking on Nature with a little stick and saying, I’m gonna ride you! And a lot of times Nature says, No you’re not! and crashes you to the bottom.

Jolene Blalock

In this chapter we’ll expand on the discussion in Chapter 12, turning our attention to the whole application life cycle, from local development to deploying updates to a Kubernetes cluster, including the tricky topic of database migrations. We’ll cover some tools that help you develop, test, and deploy your applications: Skaffold, Draft, Telepresence, and Knative. Once you’re ready to deploy your application to the cluster, you’ll learn about more complex deployments with Helm using hooks.

Development Tools

In Chapter 12 we looked at some tools to help you write, build, and deploy your Kubernetes resource manifests. That’s fine as far as it goes, but often when you’re developing an application that runs in Kubernetes, you want to be able to try things out and see changes instantly, without going through a full build-push-deploy-update loop.

Skaffold

Skaffold is an open source tool from Google designed to provide a fast local development workflow. It automatically rebuilds your containers as you develop locally, and deploys those changes to either a local or remote cluster.

You define your desired workflow in a skaffold.yaml file in your repository and run the skaffold command-line tool to start the pipeline. As you make changes to files in ...

Get Cloud Native DevOps with Kubernetes now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.