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.

gRPC can be summarized as protocol buffers running over HTTP/2 with multiple programming language support. Check out the site for a good overview on gRPC with FAQ and quick start documents.

Here are the elements of gRPC:

Protocol Buffer

Protocol buffer is a form of Interface Definition Language for structured data serialization and de-serialization between two parties. They are transmitted over a network in binary forms.

HTTP/2

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.

Multi-language Support

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.

Try it out, join our online user group for free talks & trainings, and come and hang out with us on Slack.