Microservices Development using
Telepresence
Vishal @vbanthia_
SET, Microservices Platform, MercariKubernetes Meetup Tokyo #11
Presentation: https://schd.ws/hosted_files/kccnceu18/b5/Telepresence_Kubeapps.pdf
Video: https://www.youtube.com/watch?v=8Dl8U-AbJN0
Telepresence
“Fast, Local Development for Kubernetes & OpenShift
Microservices”
Problems with Microservices Development
gateway
service1
service2
service3 service4
Worker
db1
android
web
ios db4
Problems with Microservices Development ...
● Microservices count is not too much in this scenarios, developers can try
running everything locally
● They can maintain docker-compose file and use docker-compose for local
development
● Or use minikube and kubernetes manifest files
Ref: https://www.slideshare.net/BruceWong3/the-case-for-chaos
DEMO
Ref: https://microservices-demo.github.io/
user
carts
catalogue
db
front-end
orders
db
db
db
shipping
payment
master-queue
rabbitmq
user
carts
catalogue
db
front-end
orders
db
db
db
shipping
payment
Development Using Telepresence
● Run everything on cluster
● Only run front-end service on local
● Connect local service to cluster using
front-end k8s svc
type=LoadBalancer
front-end k8s deployment
(front-end docker image)
GKE Cluster
name=front-end
order user cart catalogue
front-end k8s svc
type=LoadBalancer
front-end k8s deployment
(front-end docker image)
GKE Cluster
name=front-end
order user cart catalogue
telepresence
front-end k8s svc
type=LoadBalancer
front-end k8s deployment
(telepresence k8s-proxy docker image)
GKE Cluster
name=front-end
order user cart catalogue
telepresence
front-end k8s svc
type=LoadBalancer
front-end k8s deployment
(telepresence k8s-proxy docker image)
GKE Cluster
name=front-end
order user cart catalogue
Local
local source code
local process
telepresence client
bi-directional tunnel
local process has
access to all env
variables, dns etc
of cluster pod
Limitations
● Telepresence is still not mature enough and has problems such as network
issues & DNS reliability
● It only allows swapping one service with VPN method
● https://www.telepresence.io/reference/limitations
Conclusion
● Telepresence can be very helpful in microservices development for complex
services
● Not just for development, it is very helpful for debugging bugs in dev/QA
environment. You only need to swap remote deployment and can add debug
more efficiently by running service locally
● Personally, I am pretty much impressed with its capability and would really
love to use it at work!
Thank You!

Microservice Development Using Telepresence