SlideShare a Scribd company logo
1
IntrotoTelepresence:
FastDevelopmentWorkflowsforKubernetes
@danielbryantuk | @datawireio 2
tl;dr
The inner development loop can be painful with microservices + Kubernetes
Telepresence proxies your dev machine into the cluster
Telepresence supports several workflows, from small to large systems
Ongoing work for splitting client and cluster components
Please support this CNCF project — get involved!
3
SettingtheScene
@danielbryantuk | @datawireio 4
https://mitchdenny.com/the-inner-loop/
@danielbryantuk | @datawireio 5
The Kubernetes inner & outer loop can be the same…
Write code
Build container
Push to registry
Deploy to cluster
Test
And can be …. SLOW.
@danielbryantuk | @datawireio 6
Automation helps speed it up …
@danielbryantuk | @datawireio 7
But you want a really fast inner loop (no docker build/push) …
And you want to use your own tools.
@danielbryantuk | @datawireio 9
Let’s do everything locally…
…so it’s really fast and I can use my tools!
@danielbryantuk | @datawireio 10
“My laptop only
has 16GB RAM and
you’re asking it to
run Kubernetes
and a JVM and a
database???”
KubeCon NA 2019 "Introduction to Telepresence: Fast Development (and Debugging) for Kubernetes"
12
TELEPRESENCE
@danielbryantuk | @datawireio 13
WhatisTelepresence?
“Fancy Kubernetes VPN for development”
“kubectl port-forward on steroids”
A network bridge between your laptop and the Kubernetes cluster
@danielbryantuk | @datawireio 14
Howitworks
A B
C
A’
The “A” deployment is
replaced by a proxy. Requests
to the proxy are sent to the
laptop.
Telepresence:
1. Intercepts DNS
2. Environment variables &
secrets
3. Volumes
4. TCP
KubeCon NA 2019 "Introduction to Telepresence: Fast Development (and Debugging) for Kubernetes"
KubeCon NA 2019 "Introduction to Telepresence: Fast Development (and Debugging) for Kubernetes"
17
DEMO
@danielbryantuk | @datawireio 18
Benefits
Use any tool that runs on your laptop: IDE, profiler, debugger, …
Connect to cloud-based resources
Same network namespace (e.g., nslookup works)
Very fast inner loop!
Requirements
• Network connection
• kubectl access to cluster
• Mac or Linux
19
TelepresenceisaCNCFproject,withawide
varietyofusers.
@danielbryantuk | @datawireio 20
@danielbryantuk | @datawireio 21
Capturing DNS and routing only part of it
to the cluster is tricky
No two laptops are alike
Swapping out your (real) deployment for
a (proxy) deployment is tricky
22
USINGTHISINYOUR
WORKFLOW
@danielbryantuk | @datawireio 23
One (production) cluster for single-source-of-truth microservices
Developer checks out code and works on microservices
Swapping services on demand using Telepresence + IDE
Telepresence is used in default (vpn-tcp) mode
Once code is done, microservices are built and deployed via pipeline
SimpleWorkflow(YOLO)
https://www.youtube.com/watch?v=75soljoqhjY
KubeCon NA 2019 "Introduction to Telepresence: Fast Development (and Debugging) for Kubernetes"
@danielbryantuk | @datawireio 25
One (dev) cluster for single-source-of-truth microservices
Developers check out one of the microservices (and coordinate with other devs)
Developers Telepresence + IDE
Telepresence is used in default (vpn-tcp) mode
Once code is done, CircleCI is used to run tests, build, and deploy
TypicalWorkflow(SME)
https://www.youtube.com/watch?v=75soljoqhjY
@danielbryantuk | @datawireio 26
One cluster with multiple namespaces for all single-source-of-truth
microservices
Developers check out one of the microservices
Developers use Bazel + Telepresence + IDE
Telepresence is used in container mode with Bazel images
Once code is done, Jenkins is used to run tests, build, and deploy
AdvancedWorkflow
https://www.youtube.com/watch?v=tD0FIlxO1AQ
27
WHAT’SNEXT?
@danielbryantuk | @datawireio 28
Telepresencecomponents
Proxy Server
Client
Capture DNS requests for Kubernetes resources
DNS resolution for Kubernetes resources
Proxy TCP connections to cluster
Proxy TCP connections to laptop
Canonical DNS for Kubernetes resources
@danielbryantuk | @datawireio 29
TelepresenceClient
Use kubectl port-forward to bootstrap sshuttle (ssh-based VPN)
sshuttle has a lot of functionality that is not used by Telepresence (it’s a VPN, after all)
Replace sshuttle with something else — designed for Kubernetes
• Capture DNS locally
• Do DNS resolution intelligently
• Redirect TCP connections to the right destination
Already in progress, will replace VPN-TCP method
Also support multiple simultaneous swaps
@danielbryantuk | @datawireio 30
TelepresenceProxyServer
Currently deployed every time you do a swap-deployment (and then deleted)
Switch mode to be persistent (this is what Kubernetes is good for)
• Speeds up startup
• Support reconnect
@danielbryantuk | @datawireio 31
Multi-UserDevelopment
Swap deployment doesn’t work well for multi-user development
Solution today is to use namespaces and/or individual clusters
• Expensive (more hardware & setup)
• Delays integration testing until after commit
KubeCon NA 2019 "Introduction to Telepresence: Fast Development (and Debugging) for Kubernetes"
@danielbryantuk | @datawireio 33
34
WrappingUp
@danielbryantuk | @datawireio 35
ContributingtoTelepresence
Documentation and workflows
* how you integrate Telepresence into your development workflow
Let us know if you’re a user!
Triage
* Lots of folks use GitHub for support, which doesn’t scale well
Join Slack to help other users https://d6e.co/slack #telepresence
@danielbryantuk | @datawireio 36
Thankyou!Questions?
db@datawire / @danielbryantuk
www.telepresence.io
https://github.com/telepresenceio
More KubeCon sessions — 17:20 Today!!
* “Use Your Favorite Developer Tools in Kubernetes With
Telepresence” by Abhay Saxena in Room 30ABCDE
Visit us at Booth #S46
Sign up for the Ambassador Edge Stack preview
* https://www.getambassador.io/early-access
Ad

Recommended

DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
Daniel Bryant
 
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
Daniel Bryant
 
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Daniel Bryant
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
Daniel Bryant
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
Daniel Bryant
 
Ambassador Fest: "Kubernetes Workflow 101: The Big Picture of Idea to an API ...
Ambassador Fest: "Kubernetes Workflow 101: The Big Picture of Idea to an API ...
Daniel Bryant
 
India Serverless Summit 2017 - Sponsorship Deck
India Serverless Summit 2017 - Sponsorship Deck
CodeOps Technologies LLP
 
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
Daniel Bryant
 
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
Daniel Bryant
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
Patrick Chanezon
 
Platform engineering 101
Platform engineering 101
Sander Knape
 
Openstack Dashboard Essex Roadmap
Openstack Dashboard Essex Roadmap
devcamcar
 
Is Platform Engineering the new Ops?
Is Platform Engineering the new Ops?
AWS Germany
 
Keptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystem
Mauricio (Salaboy) Salatino
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
Yan Cui
 
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
Gökhan Şengün
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps Adoption
All Things Open
 
Knative and Riff
Knative and Riff
Jay Lee
 
Knative And Pivotal Function As a Service
Knative And Pivotal Function As a Service
Jay Lee
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre Abstracciones
Mauricio (Salaboy) Salatino
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Mauricio (Salaboy) Salatino
 
OpenStack Dashboard Folsom Roadmap
OpenStack Dashboard Folsom Roadmap
devcamcar
 
stackconf 2021 | How DevOps changed the way we operate software
stackconf 2021 | How DevOps changed the way we operate software
NETWAYS
 
Insights on Knative and how it changes the serverless landscape
Insights on Knative and how it changes the serverless landscape
Jeremias Werner
 
Building interactive app
Building interactive app
Omar Albelbaisy
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
Daniel Bryant
 
Continuous Delivery with Spinnaker.io
Continuous Delivery with Spinnaker.io
Martin Roderus
 
Going Cloud Native
Going Cloud Native
David Schmitz
 
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
Daniel Bryant
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Daniel Bryant
 

More Related Content

What's hot (20)

CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
Daniel Bryant
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
Patrick Chanezon
 
Platform engineering 101
Platform engineering 101
Sander Knape
 
Openstack Dashboard Essex Roadmap
Openstack Dashboard Essex Roadmap
devcamcar
 
Is Platform Engineering the new Ops?
Is Platform Engineering the new Ops?
AWS Germany
 
Keptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystem
Mauricio (Salaboy) Salatino
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
Yan Cui
 
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
Gökhan Şengün
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps Adoption
All Things Open
 
Knative and Riff
Knative and Riff
Jay Lee
 
Knative And Pivotal Function As a Service
Knative And Pivotal Function As a Service
Jay Lee
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre Abstracciones
Mauricio (Salaboy) Salatino
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Mauricio (Salaboy) Salatino
 
OpenStack Dashboard Folsom Roadmap
OpenStack Dashboard Folsom Roadmap
devcamcar
 
stackconf 2021 | How DevOps changed the way we operate software
stackconf 2021 | How DevOps changed the way we operate software
NETWAYS
 
Insights on Knative and how it changes the serverless landscape
Insights on Knative and how it changes the serverless landscape
Jeremias Werner
 
Building interactive app
Building interactive app
Omar Albelbaisy
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
Daniel Bryant
 
Continuous Delivery with Spinnaker.io
Continuous Delivery with Spinnaker.io
Martin Roderus
 
Going Cloud Native
Going Cloud Native
David Schmitz
 
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
Daniel Bryant
 
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
Patrick Chanezon
 
Platform engineering 101
Platform engineering 101
Sander Knape
 
Openstack Dashboard Essex Roadmap
Openstack Dashboard Essex Roadmap
devcamcar
 
Is Platform Engineering the new Ops?
Is Platform Engineering the new Ops?
AWS Germany
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
Yan Cui
 
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
DevOpsDays 2018 - Migrating a Cloud Native App to k8s
Gökhan Şengün
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps Adoption
All Things Open
 
Knative and Riff
Knative and Riff
Jay Lee
 
Knative And Pivotal Function As a Service
Knative And Pivotal Function As a Service
Jay Lee
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre Abstracciones
Mauricio (Salaboy) Salatino
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Mauricio (Salaboy) Salatino
 
OpenStack Dashboard Folsom Roadmap
OpenStack Dashboard Folsom Roadmap
devcamcar
 
stackconf 2021 | How DevOps changed the way we operate software
stackconf 2021 | How DevOps changed the way we operate software
NETWAYS
 
Insights on Knative and how it changes the serverless landscape
Insights on Knative and how it changes the serverless landscape
Jeremias Werner
 
Building interactive app
Building interactive app
Omar Albelbaisy
 
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
microXchg 2019: "Creating an Effective Developer Experience for Cloud-Native ...
Daniel Bryant
 
Continuous Delivery with Spinnaker.io
Continuous Delivery with Spinnaker.io
Martin Roderus
 

Similar to KubeCon NA 2019 "Introduction to Telepresence: Fast Development (and Debugging) for Kubernetes" (20)

MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
Daniel Bryant
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Daniel Bryant
 
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
Daniel Bryant
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for Kubernetes
Ambassador Labs
 
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Daniel Bryant
 
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
Daniel Bryant
 
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
Daniel Bryant
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Ambassador Labs
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Daniel Bryant
 
Knative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and Openshift
Chris Suszyński
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes
vty
 
Kubernetes
Kubernetes
Anastasios Gogos
 
prodops.io k8s presentation
prodops.io k8s presentation
Prodops.io
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014
CloudBees
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Lean IT Consulting
 
Kubernetes 101 Workshop
Kubernetes 101 Workshop
Bret McGowen - NYC Google Developer Advocate
 
Desplegar en la nube y no morir en el intento - Plain Concepts Dev Day
Desplegar en la nube y no morir en el intento - Plain Concepts Dev Day
Plain Concepts
 
Cont0519
Cont0519
Samuel Dratwa
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik
Fwdays
 
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
Daniel Bryant
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Daniel Bryant
 
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
Daniel Bryant
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for Kubernetes
Ambassador Labs
 
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Daniel Bryant
 
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
Daniel Bryant
 
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
Daniel Bryant
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Ambassador Labs
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Daniel Bryant
 
Knative, Serverless on Kubernetes, and Openshift
Knative, Serverless on Kubernetes, and Openshift
Chris Suszyński
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes
vty
 
prodops.io k8s presentation
prodops.io k8s presentation
Prodops.io
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Jenkins Workflow Webinar - Dec 10, 2014
Jenkins Workflow Webinar - Dec 10, 2014
CloudBees
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Lean IT Consulting
 
Desplegar en la nube y no morir en el intento - Plain Concepts Dev Day
Desplegar en la nube y no morir en el intento - Plain Concepts Dev Day
Plain Concepts
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik
Fwdays
 
Ad

More from Daniel Bryant (16)

ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
Daniel Bryant
 
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
Daniel Bryant
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
Daniel Bryant
 
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Daniel Bryant
 
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
Daniel Bryant
 
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Daniel Bryant
 
ADDO 2020: "The past, present, and future of cloud native API gateways"
ADDO 2020: "The past, present, and future of cloud native API gateways"
Daniel Bryant
 
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
Daniel Bryant
 
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
Daniel Bryant
 
SACON EU 2019 "API Gateways and Service Meshes: Opening the Door to Applicati...
SACON EU 2019 "API Gateways and Service Meshes: Opening the Door to Applicati...
Daniel Bryant
 
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
Daniel Bryant
 
[SC London] "Testing Microservices: from Development to Production
[SC London] "Testing Microservices: from Development to Production
Daniel Bryant
 
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
Daniel Bryant
 
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
Daniel Bryant
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
Daniel Bryant
 
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Daniel Bryant
 
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
Daniel Bryant
 
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Daniel Bryant
 
ADDO 2020: "The past, present, and future of cloud native API gateways"
ADDO 2020: "The past, present, and future of cloud native API gateways"
Daniel Bryant
 
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
GOTOpia 2020: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
SoftwareCircus 2020 "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
DevOpsCon 2020: The Past, Present, and Future of Cloud Native API Gateways
Daniel Bryant
 
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
AllTheTalks 2020: "The Past, Present, and Future of Cloud Native API Gateways"
Daniel Bryant
 
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
[DW Webinar] Effective Management of APIs and the Edge when Adopting Kubernetes
Daniel Bryant
 
SACON EU 2019 "API Gateways and Service Meshes: Opening the Door to Applicati...
SACON EU 2019 "API Gateways and Service Meshes: Opening the Door to Applicati...
Daniel Bryant
 
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
Daniel Bryant
 
[SC London] "Testing Microservices: from Development to Production
[SC London] "Testing Microservices: from Development to Production
Daniel Bryant
 
Ad

Recently uploaded (20)

Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
NVIDIA GPU Technologies for AI and High-Performance Computing
NVIDIA GPU Technologies for AI and High-Performance Computing
SandeepKS52
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
The Anti-Masterclass Live - Peak of Data & AI 2025
The Anti-Masterclass Live - Peak of Data & AI 2025
Safe Software
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
Sysinfo OST to PST Converter Infographic
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 
Artificial Intelligence Workloads and Data Center Management
Artificial Intelligence Workloads and Data Center Management
SandeepKS52
 
Introduction to Agile Frameworks for Product Managers.pdf
Introduction to Agile Frameworks for Product Managers.pdf
Ali Vahed
 
NVIDIA GPU Technologies for AI and High-Performance Computing
NVIDIA GPU Technologies for AI and High-Performance Computing
SandeepKS52
 
Heat Treatment Process Automation in India
Heat Treatment Process Automation in India
Reckers Mechatronics
 
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
 
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
 
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
On-Device AI: Is It Time to Go All-In, or Do We Still Need the Cloud?
Hassan Abid
 
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
 
The Anti-Masterclass Live - Peak of Data & AI 2025
The Anti-Masterclass Live - Peak of Data & AI 2025
Safe Software
 
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
Women in Tech: Marketo Engage User Group - June 2025 - AJO with AWS
BradBedford3
 
Y - Recursion The Hard Way GopherCon EU 2025
Y - Recursion The Hard Way GopherCon EU 2025
Eleanor McHugh
 
Making significant Software Architecture decisions
Making significant Software Architecture decisions
Bert Jan Schrijver
 
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Test Case Design Techniques – Practical Examples & Best Practices in Software...
Muhammad Fahad Bashir
 
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
 
IObit Driver Booster Pro 12 Crack Latest Version Download
IObit Driver Booster Pro 12 Crack Latest Version Download
pcprocore
 
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Capability Deck 2025: Accelerating Innovation Through Intelligent Soft...
Emvigo Technologies
 
Sysinfo OST to PST Converter Infographic
Sysinfo OST to PST Converter Infographic
SysInfo Tools
 
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
 
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
 
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
 

KubeCon NA 2019 "Introduction to Telepresence: Fast Development (and Debugging) for Kubernetes"

  • 2. @danielbryantuk | @datawireio 2 tl;dr The inner development loop can be painful with microservices + Kubernetes Telepresence proxies your dev machine into the cluster Telepresence supports several workflows, from small to large systems Ongoing work for splitting client and cluster components Please support this CNCF project — get involved!
  • 4. @danielbryantuk | @datawireio 4 https://mitchdenny.com/the-inner-loop/
  • 5. @danielbryantuk | @datawireio 5 The Kubernetes inner & outer loop can be the same… Write code Build container Push to registry Deploy to cluster Test And can be …. SLOW.
  • 6. @danielbryantuk | @datawireio 6 Automation helps speed it up …
  • 7. @danielbryantuk | @datawireio 7 But you want a really fast inner loop (no docker build/push) …
  • 8. And you want to use your own tools.
  • 9. @danielbryantuk | @datawireio 9 Let’s do everything locally… …so it’s really fast and I can use my tools!
  • 10. @danielbryantuk | @datawireio 10 “My laptop only has 16GB RAM and you’re asking it to run Kubernetes and a JVM and a database???”
  • 13. @danielbryantuk | @datawireio 13 WhatisTelepresence? “Fancy Kubernetes VPN for development” “kubectl port-forward on steroids” A network bridge between your laptop and the Kubernetes cluster
  • 14. @danielbryantuk | @datawireio 14 Howitworks A B C A’ The “A” deployment is replaced by a proxy. Requests to the proxy are sent to the laptop. Telepresence: 1. Intercepts DNS 2. Environment variables & secrets 3. Volumes 4. TCP
  • 18. @danielbryantuk | @datawireio 18 Benefits Use any tool that runs on your laptop: IDE, profiler, debugger, … Connect to cloud-based resources Same network namespace (e.g., nslookup works) Very fast inner loop! Requirements • Network connection • kubectl access to cluster • Mac or Linux
  • 21. @danielbryantuk | @datawireio 21 Capturing DNS and routing only part of it to the cluster is tricky No two laptops are alike Swapping out your (real) deployment for a (proxy) deployment is tricky
  • 23. @danielbryantuk | @datawireio 23 One (production) cluster for single-source-of-truth microservices Developer checks out code and works on microservices Swapping services on demand using Telepresence + IDE Telepresence is used in default (vpn-tcp) mode Once code is done, microservices are built and deployed via pipeline SimpleWorkflow(YOLO) https://www.youtube.com/watch?v=75soljoqhjY
  • 25. @danielbryantuk | @datawireio 25 One (dev) cluster for single-source-of-truth microservices Developers check out one of the microservices (and coordinate with other devs) Developers Telepresence + IDE Telepresence is used in default (vpn-tcp) mode Once code is done, CircleCI is used to run tests, build, and deploy TypicalWorkflow(SME) https://www.youtube.com/watch?v=75soljoqhjY
  • 26. @danielbryantuk | @datawireio 26 One cluster with multiple namespaces for all single-source-of-truth microservices Developers check out one of the microservices Developers use Bazel + Telepresence + IDE Telepresence is used in container mode with Bazel images Once code is done, Jenkins is used to run tests, build, and deploy AdvancedWorkflow https://www.youtube.com/watch?v=tD0FIlxO1AQ
  • 28. @danielbryantuk | @datawireio 28 Telepresencecomponents Proxy Server Client Capture DNS requests for Kubernetes resources DNS resolution for Kubernetes resources Proxy TCP connections to cluster Proxy TCP connections to laptop Canonical DNS for Kubernetes resources
  • 29. @danielbryantuk | @datawireio 29 TelepresenceClient Use kubectl port-forward to bootstrap sshuttle (ssh-based VPN) sshuttle has a lot of functionality that is not used by Telepresence (it’s a VPN, after all) Replace sshuttle with something else — designed for Kubernetes • Capture DNS locally • Do DNS resolution intelligently • Redirect TCP connections to the right destination Already in progress, will replace VPN-TCP method Also support multiple simultaneous swaps
  • 30. @danielbryantuk | @datawireio 30 TelepresenceProxyServer Currently deployed every time you do a swap-deployment (and then deleted) Switch mode to be persistent (this is what Kubernetes is good for) • Speeds up startup • Support reconnect
  • 31. @danielbryantuk | @datawireio 31 Multi-UserDevelopment Swap deployment doesn’t work well for multi-user development Solution today is to use namespaces and/or individual clusters • Expensive (more hardware & setup) • Delays integration testing until after commit
  • 35. @danielbryantuk | @datawireio 35 ContributingtoTelepresence Documentation and workflows * how you integrate Telepresence into your development workflow Let us know if you’re a user! Triage * Lots of folks use GitHub for support, which doesn’t scale well Join Slack to help other users https://d6e.co/slack #telepresence
  • 36. @danielbryantuk | @datawireio 36 Thankyou!Questions? db@datawire / @danielbryantuk www.telepresence.io https://github.com/telepresenceio More KubeCon sessions — 17:20 Today!! * “Use Your Favorite Developer Tools in Kubernetes With Telepresence” by Abhay Saxena in Room 30ABCDE Visit us at Booth #S46 Sign up for the Ambassador Edge Stack preview * https://www.getambassador.io/early-access