Skaffold vs Tilt vs DevSpace

Skaffold web site

Skaffold Tools

Skaffold allows you to use a wide range of external tools along your pipeline.

Skaffold Features and Functions

To grasp fully how Skaffold works, you need an understanding of its core features.

  • skaffold init: Launches a wizard with breakpoints along the process of building a skaffold.yaml file. You get to set all configuration values but can change them manually at any point in the future.
  • skaffold dev: Triggers your instance to track changes you make to any application files using file sync. Any edits made are tested and pushed to the deploy stage. On localhost, you'd see them take effect almost instantaneously.
  • file sync: Does automated checks for updating your local or cloud-hosted clusters each time you make changes to your dev files. Also included in the sync are dependencies that may have been introduced by new changes.
apiVersion: skaffold/v2beta18 kind: Config build: artifacts: - image: github.com/googlecontainertools/skaffold/examples/custom custom: buildCommand: ./build.sh dependencies: paths: - "go.mod" - "**.go" tagPolicy: sha256: {}

Skaffold Use Case

A standard use case for Skaffold is remotely distributed teams contributing to a single project. The lightweight nature of each installation makes it perfect for on-the-fly changes that don’t hinge on local machines’ capabilities. Skaffold lacks a UI, though, which limits usage to technically adept users.

Tilt web site

Tilt Tools and Features

If you’re planning to use Tilt as a Kubernetes manager locally, then you can choose Docker Desktop, kind, or MicroK8s to run on top of it. These are best for teams with little to no Kubernetes experience.

Installing Tilt with Homebrew
Tilt web UI

Tilt Use Case

While the Tilt and Kubernetes instances we’ve combined in this demo are entirely local, a remote connection option is available by default. You can set that up in the Tilt dashboard.

Description of Tilt Cloud
DevSpace web site
Running “devspace init”

DevSpace Tools and Features

Setting up a project in DevSpace gives you four deployment tool options:

  1. Helm: Use Component Helm Chart QUICKSTART
  2. Helm: Use my own Helm chart (e.g., local via ./chart/ or any remote chart)
  3. kubectl: Use existing Kubernetes manifests (e.g., ./kube/deployment.yaml)
  4. Kustomize: Use an existing Kustomization (e.g., ./kube/kustomization/)

DevSpace Use Case

You can run DevSpace with teams that have the chemistry to mold your workflow’s development, testing, and staging parts into a very short pipeline. These setups often use custom configurations at each node across the pipeline. A potential downside is that comparatively new developers might be less able to contribute to the architecture’s upkeep.

Making Your Pick

Using any of these tools on top of a Kubernetes implementation gives your instances some worthy enhancements, from instant updates to the production environment clusters to log streaming on handy UI dashboards in the browser.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Loft Labs

Loft Labs

>> www.loft.sh << Build Your Internal Kubernetes Platform With Virtual Clusters, Namespace Self-Service & Secure Multi-Tenancy