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, including Skaffold and Telepresence. We will also introduce Knative and OpenFaaS, two options for running “serverless” architectures on your clusters. We’ll also look at more complex deployments, and ordering application rollouts using Helm 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 ...

Get Cloud Native DevOps with Kubernetes, 2nd Edition 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.