Draft vs. Skaffold: Developing on Kubernetes
Take a quick look at these two tools developed by Google for Kubernetes that works to shrink your continuous integration and delivery pipelines.
Join the DZone community and get the full member experience.Join For Free
A few weeks ago, one of our DX engineers, Ilya, discussed the differences and similarities between Draft and Skaffold in his most recent online office hours, “Developing on Kubernetes”. Both of these tools can be used as building blocks in your CI/CD pipeline to automate and deploy changes to your cluster with the ultimate goal of getting your newly-updated app running on Kubernetes with as few errors as possible. More frequent updates to your app will keep your customers happy and can also maintain your competitive edge.
In a series of regular posts, we’re going to discuss the benefits and use cases of the tools and technologies that Ilya introduces in his weekly online office hours series, "Developing on Kubernetes with Ilya!." We’ll sometimes follow up these discussions with a hands-on tutorial that shows you how to implement the tools discussed and we’ll also demonstrate how to use them with Weave Cloud. In this post, the two tools we are discussing are one such case, where Ilya is working on a detailed tutorial and discussion on how to implement Skaffold using GitOps best practices with Weave Cloud.
Stay tuned and watch for Ilya’s follow-up post in the coming days.
What are Draft and Skaffold and how do they differ in their approach to Kubernetes deployments?
Draft is Microsoft’s open-source build and deployment tool. It is like a pipeline orchestration CLI that could also be classed as a package manager. At present, Draft intended to be used by developers when writing code locally and before being committed to source control.
Draft can generate Docker images directly from their local machine and deploy it to a cluster — usually minikube. It creates and uses Helm charts that generate the Kubernetes manifests needed to deploy your application.
A pro of using Draft is that you can use it with Helm to package their applications and deploy them to Kubernetes running on Azure.
Draft requires that you have Helm installed and so relies on Helm as a dependency. It is still at an alpha stage release which you may want to consider before using it.
Links for further reading:
Skaffold is a relatively new tool released by Google. Skaffold is a command line tool that manages the workflow for building, pushing and deploying your application updates to Kubernetes. It is designed so that you can continue to iterate your code locally and Skaffold will then build and deploy the updates to either a local or a remote Kubernetes cluster.
Like Draft, it can also be used as a building block in a CI/CD pipeline to leverage the same workflow and tooling when you are moving an application into production.
Links for further reading:
Differences between Draft and Skaffold
While both tools allow developers to iterate and experiment with Kubernetes applications locally, Skaffold also provides the tooling to build a production ready pipeline for your deployments.
It uses a pluggable architecture that allows you to build both a local pipeline for testing and a production pipeline for deployments to a running cluster.
(from Skaffold Documentation)
Another difference is that Skaffold optionally works with Helm should you wish and it is not dependent on Helm like Draft is.
In this post we described some of the differences between two fairly new CICD pipeline tools for Kubernetes. Watch for Ilya’s deep dive blog on GitOps, Skaffold and Weave Cloud in the upcoming week.
To hear more about tools you can use for your own Kubernetes powered applications, be sure to join and tune into “Developing with Kubernetes” Office Hours with Ilya every Thursday at 10:00 PT / 18:00 BST (British Standard Time).
Published at DZone with permission of Anita Buehrle, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.