DevSpace is an open-source CLI-based tool for developers working with Kubernetes-native applications. Its declarative configuration allows using single commands to build and deploy to a Kubernetes cluster and rebuild, develop, and debug applications already running in the cluster. It works with both a local dev Kubernetes from Minikube, Docker Desktop, kind or k3s, and remote Kubernetes clusters as well.
We find DevSpace particularly valuable in developing and debugging our PHP applications like Shopware. It offers features similar to those in Docker Compose-based development environments but for Kubernetes.
Remote debugging DevSpace has a reverse port forwarding feature that forwards TCP traffic from your local machine to a selected application pod in the cluster. It works well for PHP debugging with XDebug.
Advanced file synchronization between your local machine and the application in the cluster not only creates a list of files and directories that must be included or excluded from syncing, but also defines the initial strategy (on startup), such as mirroring, defining local or remote as a preferred source, merging.
Hooks help trigger custom scripts or execute shell commands before or after specific events like build, sync, or deploy. The commands can be executed both on the local machine or inside the container in the cluster.
DevSpace may be a promising alternative to Skaffold, especially with its advanced file synchronization capabilities. However, it's important to decide if developing directly on the cluster is necessary for your project. In many cases, environments based on Docker and Compose require less effort to set up. The choice of the tool should depend on the project's needs.