By Venil Noronha
In my first post, I shared some reflections on the experience of sending projects out into the open source community. Then, last month, my colleague Stephen McPolin and I offered a two-part view into the future of Service Mesh.
In addition to my contributions to VMware’s Open Source Blog, I also post articles on Service Mesh-related topics on my personal blog, venilnoronha.io. These tend to go pretty deep into the technical weeds, so they are not for everyone. But if you are interested in seeing what I’ve been working on and perhaps broadening your understanding of open source Service Mesh solutions, here’s a taste of what I’ve been thinking about along with some links to a few recent posts for an even deeper dive.
Seamless Cloud Native Apps with gRPC-Web and Istio
gRPC-Web lets us extend the benefits of gRPC services to web applications. In this post, I walk through the process of building a simple web application that replaces keywords in user-entered text with emojis by communicating with a gRPC backend via gRPC-Web and Istio.
One thing to note here: in writing this post, I realized that I was describing a really complicated process that Istio could help with. So, after I posted it, I went into Istio and added some support for automating filter configurations for gRPC-Web workloads. That makes things a little easier for people who are coming to this for the first time, but the steps I outline in the post still work and the general principles I describe still apply.
Envoy, gRPC and Rate Limiting
Here I show how to enhance a gRPC and Protocol Buffers-based Greeter application written in C++. I then build a gRPC application in Go that implements Envoy’s RateLimitService interface. Finally, I deploy Envoy as a proxy for the Greeter application while leveraging the Rate Limit service to create backpressure (i.e. the ability to comprehensively handle failures).
Raw TCP Traffic Shaping with Istio 1.1.0
This article relates to contributions I’ve been making to both Envoy and Istio in the area of traffic shifting through weighted route definitions. Here I look at a simple TCP Echo Server written in Go, containerize it with Docker, deploy it over Kubernetes and then exercise Istio’s weighted TCP routing feature over it to understand its behavior in production services.
Set sail a production-ready Istio Adapter
So, you’ve walked through Istio’s Mixer Adapter guide and now want to publish your own amazing adapter? This post runs you through the process of sending your own adapter out into production.
In my next piece for venilnoronha.io, I’m planning to describe Envoy’s traffic routing capabilities. Envoy supports routing/filtering at L3/L4 layers of the networking stack, and also L7. I’ll describe the differences between the layers and what Envoy does specifically at each.
My goal with pretty much everything I post to venilnoronha.io is to make Service Mesh technologies a little clearer and easier to play with. It’s still a very new technology, after all, and it can sometimes take a while to figure things out. These walkthroughs, I hope, can help people bootstrap their applications and deployments faster.
If you are struggling with something Service Mesh-related and would like to learn more about how it works, let me know and I’ll see if I can add it to my list of future topics.