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 your local machine and then deploy it to a cluster -- usually minikube. It creates and uses Helm charts to 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)
We can help you accelerate your Kubernetes journey with our subscription service that supports installing production-grade Kubernetes on-premise, in AWS and GCP from dev to production. For the past 3 years, Kubernetes has been powering Weave Cloud, our operations as a service offering, so we’re taking our knowledge and helping teams embrace the benefits of cloud native tooling. We've focused on creating GitOps workflows - our approach uses developer-centric tooling (e.g. git) and a tested approach to help you install, set-up, operate and upgrade Kubernetes. Contact us for more details.