Skaffold — Kubernetes-native app development simplified

Opcito Technologies
2 min readJun 15, 2020

Kubernetes has been a go-to tool for orchestration for most of the DevOps folks. And to manage Kubernetes components, most of us prefer Helm. Now, consider a scenario where the codes in the file, Docker images, and manifest files need to be amended; then the coder will have to restart the current application in the Dev environment. What if the coder doesn’t want to restart the application after every amendment along-with manually updating the Kubernetes manifests? What if there are some minor changes to be made? What if the coder expects the app to automatically undergo those continuous changes to which we refer as Continuous development? Well, I would like to tell you that all these things are possible with the help of a DevOps automation tool named Skaffold.

What is Skaffold?

Skaffold, a command-line tool, is mainly used to facilitate continuous development for the Kubernetes-native applications. Skaffold eases the workflow for building, pushing, and deploying applications. In addition, it works as the main source of building blocks required for creating CI/CD pipelines. While you focus on your application’s iteration in a local environment, Skaffold can help you with the deployment part on your local or remote Kubernetes cluster continuously. Here are some of the highlighting features of Skaffold that make it so popular amongst DevOps aficionados:

  • Skaffold provides a toolkit to create CI/CD pipelines.
  • It tracks the changes in the source code. Also, it initiates an automatic procedure of building code into container images. It pushes these images to the Docker registry and deploys these images on the Kubernetes cluster.
  • Skaffold assists in synchronizing files in the repository with the working directory within the container.
  • With container-structure-test it automatically validates the images.
  • Skaffold reads the logs of the application that runs in the container.
  • Applications that are written in Java, Node.js, Python, Go are easily debugged by Skaffold.

Now that you know Skaffold’s features, let’s see how its workflow.

How Skaffold Works?

Following are the typical steps involved in a Skaffold workflow:

  • Collect and monitor your source code for changes.
  • If the user marks them as synchronizable then file directly to pods.
  • Build artifacts from the source code.
  • Test the build artifacts using container-structure-tests.
  • Tag the artifacts.
  • Push the artifacts.
  • Deploy the artifacts.
  • Monitor the deployed artifacts.
  • Clean deployed artifacts on exit (Ctrl+C)…read more.

--

--

Opcito Technologies

Product engineering experts specializing in DevOps, Containers, Cloud, Automation, Blockchain, Test Engineering, & Open Source Tech