Photo by Jorge Tung on Unsplash

The Thundering Herd

You’ve followed everyone's advice and built a stateless application. The data isn’t in your app server and therefore, when you receive a request, you query the database. Your code looks something like the following with the database swapped out for simplicity:

We can test the server with a quick curl command.

Time goes on, your service scales, and you start to receive many requests. Each request results in a database query, some of which are slow. Under sufficient load, your latency is unacceptable. You could try to optimize query execution time in the data layer by adding indexes…

I had to capture metrics from a service I couldn’t directly access. The go standard library ships with a reverse proxy implementation 🤯. By proxying client requests to the service I was able to capture metrics without modifying the service itself.

What is a Reverse Proxy?

“In computer networks , a reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers. These resources are then returned to the client, appearing as if they originated from the proxy server itself. “

From Wikipedia

Essentially, a reverse proxy forwards traffic from a client to a set…

Let’s extend Weave Scope by adding links to a Kubernetes resource dashboard.

Understanding application topology is difficult, if not impossible via Kubernetes dashboard table views.

Here at IBM Cloud Private, we want to deliver a productive user experience. Users should be able to visually understand, monitor, and manage their workloads. Therefore, we leveraged Weave Scope and extended it’s feature set to include links back into the IBM Cloud Private management dashboard.

From the Weave Scope documentation:

Weave Scope is a visualization, and monitoring tool for Docker and Kubernetes. It provides a top down view into your app as well as…

Sidney Wijngaarde

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store