Building software in the cloud can be a tough proposition. In previous days, enterprises maintained production and test environments, allowing developers to build against internal systems in the safety of a sandbox, while still having access to all of the services and systems that were necessary to actually run the application. That’s not the case anymore.
Today, actually testing a microservice tends to mean deploying it into a major cloud provider, then poking at it from a remote system to try and determine what errors have taken place, if any. Adding to the complications is the fact that when a developer is working with a full-scale Kubernetes cluster, redeploying an application even after a simple change requires time and waiting as the new version is packaged as a Docker container, then redeployed via Kubernetes.
This combination of a slower feedback loop combined with the mystery around troubleshooting cloud-based applications have combined to form a major hurdle for development teams wishing to perform integrations tests against cloud-based software.
Datawire.io is a four-year-old startup focused on helping developer solve these problems. As such, the company has donated an open source tool called Telepresence to the Cloud Native Computing Foundation. The project aims to solve this feedback loop problem with a unique approach: Telepresence makes your laptop or desktop a part of your Kubernetes cluster.
Using Telepresence, users can essentially make their workstation into another node on the cluster. This is done through a proxy and gives the user the ability to quickly iterate their code, use an IDE, and attach a debugger to whatever they are running.
That last bit is a major win for developers who have long had to use custom tools to perform cloud-based debugging. With Telepresence, developers can use whatever debugger they are most comfortable with. They can run a tested service locally on the laptop in the IDE, and then run Telepresence so the laptop is a part of the cluster, almost as if it was a container on the cluster.
Telepresence deploys a proxy on your Kubernetes cluster, and that proxy routes the traffic to your laptop. Because it makes your laptop into an extension of your Kubernetes cluster, there are no code changes required.
“It’s been hugely popular. Initially, it was just startups trying to make it faster like Python or Node. Then more recently, we’ve seen lots of enterprises adopt it using Java and IDEs and they want to use their debugger. Anything you can run on your laptop with a development tool works with Telepresence.
Li said that Telepresence works today, but that there are still a few features on the roadmap that has yet to be implemented. “What’s on our roadmap; there are two big features. One is what we called the Caltrain use case: we have lots of users who ride Caltrain to work. There are dead spots in connectivity, so if you’re using Telepresence and you lose your connection, we don’t automatically reconnect you. The second thing which is also related to reconnect is being able to support multiple sessions. There’s one global session now. We want to be able to partition your laptop into multiple different sessions,” said Li.
The Cloud Native Computing Foundation is a sponsor of The New Stack.