Earlier this week, Microsoft released Bridge to Kubernetes, a Visual Studio extension that allows developers to write, test and debug microservice code locally while consuming dependencies from a Kubernetes environment. The purpose of this extension is to simplify microservices development by eliminating the need for extra assets such as a Dockerfile or Kubernetes manifests.
Bridge to Kubernetes (formerly known as Local Process with Kubernetes) is an iterative development tool offered as extensions for Visual Studio and VS Code aimed at simplifying the development of microservices. According to Microsoft's official documentation:
Bridge to Kubernetes allows you to run and debug code on your development computer while still connected to your Kubernetes cluster with the rest of your application or services. [...] It allows you to quickly test and develop your service in the context of the full application without creating any Docker or Kubernetes configuration.
The tool works by redirecting the traffic between the local machine and a connected Kubernetes cluster, allowing local code and remote services to communicate as if they were in the same Kubernetes cluster. It also provides a way to locally replicate environment variables and mounted volumes, without the need for manually recreating these dependencies.
According to Nick Greenfield, program manager at Microsoft, the tool is a lighter version of the existing Dev Spaces for Azure Kubernetes Services (AKS):
Dev Spaces helps developers work with code running directly in their cluster, avoiding the need for replicating a local environment that closely matches the deployed environment. This approach improves certain aspects of development, such as providing high fidelity, but it also introduces a prerequisite of learning additional concepts such as Docker, Kubernetes, and Helm before starting to use Dev Spaces.
Bridge to Kubernetes reduces inner loop complexities by side-stepping the need to create Docker and Kubernetes configurations, allowing developers to focus purely on the business logic of their code. Developers can work directly on their development computer while interacting with the rest of the services running in their cluster. This approach takes advantage of the familiarity and speed of running locally while sharing the dependencies and environment provided by their cluster. Bridge to Kubernetes also takes advantage of the fidelity and scaling that comes from running in Kubernetes.
One of the new tool's advantages is that it allows a developer to work in isolation in a shared development environment. Working in isolation in a shared cluster means that all traffic between the local machine and the cluster is isolated, preventing multiple debugging sessions (established between multiple development machines and the same Kubernetes cluster) from interfering with each other.
This release is just the latest of Microsoft's recent efforts to increase the developers' productivity on microservices development. Earlier this year, Microsoft released Project Tye, a tool aimed at "making development of microservices easier" by providing features such as running several services locally at once and automating the deployment of .NET applications to Kubernetes. Unlike Bridges to Kubernetes, however, Project Tye is an experimental project, to be re-evaluated once .NET 5 is officially released.
Bridge to Kubernetes is available as extensions for VS Code and Visual Studio (version 16.7 or later). It is also essential to observe that it is not possible to use the new tool on a cluster with Azure Dev Spaces enabled. You can find more information about open issues and upcoming features here.