I’m writing a lot of yaml files at the moment, mostly manifests for kubernetes. Part of that task involves substituting variables into the yaml, because they change depending on the environment. As an example, this… 

After writing a few million scripts over the years,I’ve learnt a thing or two (I hope). One of those things is how painful it is to wait for some condition before continuing with the next… 

This post is mainly about instrumenting tracing in distributed systems with {OpenTelemetry](https://opentelemetry.io/). Before we get to that we need to understand what constitutes an observable system. Observable systems have three ‘pillars’ of observability: Logs Traces… 

I’ve been a fan of i3wm for some time, tiling window managers are a lot cleaner than stacking window managers. I love being able to start an application and preset how much real estate it… 

After a dive into learning Kubernetes I am at that magical point where i am hugely confident with it, but still have a lot to learn :) Understanding Kubernetes is surprisingly easy, it consists of… 

What is a Service? Pods in Kubernetes are ephemeral. They are assigned an IP address at start up, but when they die or are removed, and are replaced they get a new IP address, which… 

What is a stateful application? Any application that stores data to keep track of its state. A database, for example. Stateless applications, on the other hand, do not store their state. Each new request they… 

Keep in mind that Kubernetes does not manage the storage itself, just access. Persistent Volume For things like Databases, persistence, with Kubernetes has a few requirements. Pod storage “dies” when the pod dies, so ‘persistent’… 

Helm is a: Package manager for Kubernetes (the YAML configuration files). A bundle of YAML files is called a “Helm chart” Think of this as a dockerfile manager There are Public and Private repositories You… 

Congratulations on building a fancy new thing, it’s brilliant, now it needs to be put somewhere so the rest of the world can enjoy it too. There is one thing that you need to be… 

The idea of microservices is to have distinct applications that have specialised tasks. The tasks can be combined to satisfy the requirements of disparate requests. When there is a combination of microservices combined to satisfy… 

Closures in Go are a very simple device, they happen when a function exists within another function, and that inner function has access to a variable declared in the outer function (the inner function is…