On March 14, the monthly Weave User Group covered the topic “Scalable Microservices with gRPC, Kubernetes, and Docker.”
Sandeep Dinesh, Developer Advocate from Google gave an overview of Kubernetes and gRPC with a demo. In the second part Tom Wilkie, Director of Software Engineering at Weaveworks, told us how Weaveworks started to use gRPC in Weave Cloud, the benefits of using gRPC, and the challenge when migrating to gRPC in the product.
Sandeep gave a brief introduction on microservices, explaining some of the benefits of using microservices architecture when deploying applications. While there are lots of benefits to deploying a microservices architecture, it is not a silver bullet to solve all production problems. Microservices has its problems managing and deploying many moving parts.
Kubernetes communication patterns are one of the big challenges to microservices. In a monolithic application, function calls are used to communicate between different functions to a single process. With microservices, these functions are broken into different processes and they need an effective way to communicate with each other. These processes communicate over the network. Google then facilitates the process of communicating effectively over the network internally as an effective way to handle Remote Procedure Calls, open-sourced as gRPC.
Here are the elements of gRPC:
Hypertext Transfer Protocol Version 2 (HTTP/2) is defined by RFC 7540 provide better performance for HTTP traffic with bi-directional streaming and flow control on a single TCP connection. This website demonstrates the performance difference between HTTP and HTTP/2.
gRPC has a command line compiler to generate stubs and code in different languages that can be used for the gRPC client and server. This feature facilitates gRPC to get up and running rapidly.
Check out the video for the full talk
Thank you for reading our blog. We build Weave Cloud, which is a hosted add-on to your clusters. It helps you iterate faster on microservices with continuous delivery, visualization & debugging, and Prometheus monitoring to improve observability.