API Contract Definitions
When running one or multiple services, it is essential that they have reliable service contracts defining their exposed APIs. Those contracts mostly consist of declarative interface definitions, which strongly define and type the API exposed by the respective service. As such, it is crucial that the code making up the service exactly implements the interface and therefore fulfills its side of the contract. Regressions need to be detected and changes reflected in a well communicated update to the contract.
GitOps
This blog post is the third part of a three-part series adapted from a GitOps webinar series which we co-produced together with our friends at VSHN. In this third part, we will show you how you can combine Git, which we introduced in part 1 with Infrastructure as Code, which we introduced in part 2. The combination of these two worlds will lead us to GitOps, where we will show you concepts and technologies which enable you to operate your infrastructure and applications entirely using Git repositories.
Observability in the Cloud
This blog post aims to explain how observability and monitoring should be distinguished, what the problems with “traditional” monitoring are when we deal with distributed cloud systems, and how observability can alleviate these problems. Finally, it roughly outlines how observability should be approached. Observability vs. Monitoring For detailed accounts of the difference between monitoring and observability, I recommend Cindy Sridharan’s book Distributed Systems Observability and Charity Major’s various blog posts on the topic (e.
Infrastructure as Code
This blog post is the second part of a three-part series adapted from a GitOps webinar series which we co-produced together with our friends at VSHN. In this second part, we will look into a topic that is crucial to any modern cloud-native environment to provide stability and parity across environments: Infrastructure as Code. We will delve into some interesting tools in that realm and compare different concepts and configurations around how to deploy and maintain infrastructure in a sane way.
Git - The Important Parts
This blog post is the first part of a three-part series adapted from a GitOps webinar series which we co-produced together with our friends at VSHN. In this first part, we will look at Git and what is important when using it in a team. The second part will be about Infrastructure as Code, a handy concept which helps to unify environments and be aware of the exact changes made to different parts of your infrastructure.
Kubernetes Cost Transparency
The cloud promises transparency into the cost of our applications and technical services. However, Kubernetes, even when managed by one of the big cloud service providers, usually gets charged as a black box, and is often used by dozens or hundreds of applications in your organization. This post outlines the necessary steps to approach cost transparency for your Kubernetes clusters from an organizational perspective, proposes a high level technical design to start with, and addresses some of the more common challenges and pitfalls.
Installing Arch Linux on UEFI with Full Disk Encryption
This is a step-by-step guide to installing Arch Linux on UEFI with full disk encryption. It deliberately contains no unnecessary words or bling. It is heavily based on the Arch Linux wiki’s installation guide, so if you’re ever stuck, just refer to it and the rest of the wonderful Arch wiki. Download ISO Download the latest ISO from the Arch Linux website Create Bootable USB Stick You can skip this step if you just want to run Arch Linux in a VM.
Creating Grafana Dashboards for Node.js Apps on Kubernetes
Many Kubernetes deployments include Prometheus and Grafana, so application teams can monitor their applications. While using Grafana may be relatively straightforward for many, the Prometheus data model and its query language PromQL is unknown and unintuitive to many developers. This blog post explains how to create a dashboard with a popular set of metrics for your Node.js applications on Kubernetes. Prerequisites We assume you have access to a Kubernetes cluster with the following components installed:
Efficient Navigation in Vim
When editing a file, it is quite crucial that you can navigate your cursor around rather quickly. Vim and Neovim allow for many ways of doing so which, depending on the situation, can be more or less efficient and useful. This article examines the different ways of moving the cursor and compares them. Here, the term “efficiency” refers to navigating the cursor with as little time and effort (i.e., the number of keystrokes) as possible.
Run a Crypto Trading Bot on Cloud Foundry
Everybody is talking about Bitcoin and its peer currencies. The hype is so great that even small investors, who have no idea about financial constructs, like myself, want to get aboard the investing and trading train. That’s why I recently decided to create my own account on GDAX and try my luck. Trading, at first, was fun, but I realized pretty quickly that I’m not the kind of person who wants to watch their dashboard every five minutes.