Let's assume you have a web service which listens on port 8080, and has a Dockerfile which gets built to an image called
Your service depends on other Kubernetes
Service instances (
thing2), and on a cloud database.
The Kubernetes staging environment looks like this:
The slow status quo
If you need that cloud database and those two services to directly test your software, you will need to do the following to test a change:
- Change your code.
- Build a Docker image.
- Push the Docker image to a Docker registry in the cloud.
- Update the staging Kubernetes cluster to use your new image.
- Wait for the image to download.
This is slow.
A fast development cycle with Telepresence
Telepresence works by running your code locally, as a normal local process, and then forwarding requests to/from the Kubernetes cluster.
This means development is fast: you only have to change your code and restart your process. Many web frameworks also do automatic code reload, in which case you won't even need to restart.
For more discussion of the solution space for local development see the article Development Environments for Microservices.