Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Building Microservice Systems
Without Cooking Your Laptop
Going “Remocal” with Docker, Telepresence & Kubernetes
Daniel Bryant
@danielbryantuk
Felipe Cruz
@felipecruz
@danielbryantuk | @felipecruz
tl;dr
2
• The inner development loop can be painful with microservices & Kubernetes
• Docker Desktop enables your development journey to cloud native
• Telepresence “proxies” your local machine into the cluster, increasing fast feedback
• Docker Desktop Extension for Telepresence enables “remocal” development
• Telepresence supports several workflows to make you more productive
@danielbryantuk | @felipecruz
@danielbryantuk
3
Daniel Bryant
@danielbryantuk
Ambassador Labs
Felipe Cruz
@felipecruz
Docker
@danielbryantuk | @felipecruz
Setting the Scene
4
@danielbryantuk | @felipecruz
Inner and outer dev loops
5
Hat tip to Mitch Denny (now 404): https://mitchdenny.com/the-inner-loop/
http://jorgemoral.es/posts/2020_03_17-develop_apps…
@danielbryantuk | @felipecruz
SOA: There’s just more stu
ff
(and dependencies)
6
@danielbryantuk | @felipecruz
So, let’s run everything locally…
7
@danielbryantuk | @felipecruz
Docker Desktop becomes your second IDE
Body Text
8
@danielbryantuk | @felipecruz
But if you’re
successful…
Mo’ services,
mo’ problems
9
@danielbryantuk | @felipecruz
tl;dr
10
“My laptop only has 16GB
RAM and you’re asking it
to run Kubernetes and a
JVM and a database???”
@danielbryantuk | @felipecruz
Okay, let’s run everything remotely…
11
@danielbryantuk | @felipecruz
Inner and outer dev loops with K8s
can be the same
12
• Write code
• Build container
• Push to registry
• Deploy to cluster
• Test
And can be …. SLOW.
@danielbryantuk | @felipecruz
Automation can help…
13
@danielbryantuk | @felipecruz
tl;dr
14
But you want a really fast inner loop (no docker build/push) …
@danielbryantuk | @felipecruz
tl;dr
15 And you want to use your own tools.
@danielbryantuk | @felipecruz
tl;dr
16
And you want to avoid the “works on my machine”
production vs local development debacle
@danielbryantuk | @felipecruz
17
+
@danielbryantuk | @felipecruz
What are Docker Extensions?
Extend Docker Desktop
A way to add new functionality into
Docker Desktop
Improve your team workflows
Connect your favorite dev tools to your
application development and
deployment workflows
Distribution channel
for your tooling
A way for the community and partners
to reach million of developers
18
@danielbryantuk | @felipecruz
What is Telepresence
19
• “Fancy Kubernetes VPN for development”
• “kubectl port-forward on steroids”
• “kubectl proxy all-the-things”
• A network bridge between your laptop and the Kubernetes cluster
@danielbryantuk | @felipecruz
Demo Time!
20
@danielbryantuk | @felipecruz
Our Emoji-User Demo App $$$
21
Web
Emoji
User
Ambassador
Edge Stack
(Ingress)
T
A
Traf
fi
c-
manager
User
@danielbryantuk | @felipecruz
Docker Desktop Extension for Telepresence
22
getambassador.io/testing-with-telepresence-and-docker
@danielbryantuk | @felipecruz
Key scenarios
23
@danielbryantuk | @felipecruz
Remocal development
24
www.slideshare.net/dbryant_uk/jax-london-22-debugging-microservices-remocally-in-kubernetes-with-telepresence
@danielbryantuk | @felipecruz
Testing Microservices: What to use, when
25
Mocks Service virtualization Remocal
Unit tests ✅
Integration tests ✅ ✅
Component tests ✅ ✅ ✅
End-to-end tests ✅ ✅
Poking around an
existing API
✅
Building an API ✅ ✅
@danielbryantuk | @felipecruz
Continuous Delivery
26
https://learning.oreilly.com/library/view/continuous-delivery-in/9781491986011/ch01.html#idm140291459013360
https://www.youtube.com/watch?v=hJkhPP2OLA8&t=291s
@danielbryantuk | @felipecruz
27
Continuous Delivery and build pipelines
@danielbryantuk | @felipecruz
Wrapping up
28
@danielbryantuk | @felipecruz
Telepresence is a CNCF project, with a wide variety of users
29
@danielbryantuk | @felipecruz
Conclusion
30
• The inner development loop can be painful with microservices & Kubernetes
• Docker Desktop enables your development journey to cloud native
• Telepresence “proxies” your local machine into the cluster, increasing fast feedback
• Docker Desktop Extension for Telepresence enables “remocal” development
• Telepresence supports several workflows to make you more productive
@danielbryantuk | @felipecruz
Thank you! Questions?
31
Sample code and extensions:
• github.com/ambassadorlabs/docker-extension-telepresence-java
• docs.docker.com/desktop/extensions/
Learn more:
• www.getambassador.io/kubernetes-learning-center/telepresence-docker-extension/
• hub.docker.com/extensions/ambassador/telepresence-docker-extension

More Related Content

Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” with Docker, Telepresence & Kubernetes