It’s time for the yearly “Tech Infra at home” update. Feel free to take a look at the last posts from 2022 and 2020 on that topic. This one is reasonably short, let’s start with having a look at the device diagram: There are a number of important changes present: First and foremost, I got rid of the EdgeRouter-X. Ubiquiti stopped updating it and it couldn’t handle 700 Mbps routing anyway....
Your Let's Encrypt certificate may slow you down, but you can fix that!
First, a bit of context: I run a side-project called Valar, which is kind of a cluster-scale systemd-socket-activation container engine. I’m currently focusing on performance improvements and one of my targets was the proxy component. It terminates TLS connections and hands the HTTP requests off to the respective handler. As I did some load testing, I ran into the fact that my proxy spend about 70% of its CPU time multiplying some big....
Tech infra at home / 2022 edition
This is an update on a previous post on the technical infrastructure I run at home. This post will be similarly structured to its predecessor. I will start with giving a detailed description of the base network, continue with my storage setup and finish with compute. Tier I: Physical layout & network Router: Two years after my initial post I’m still happily using my EdgeRouter-X. It works fine for my needs, although I’m probably gonna switch to a self-built router at some point due to upgrading to 10G/25G Ethernet....
Technical infrastructure at home
Today I wondered what makes a good computing infrastructure setup? Of course, the context matters here. Does one measure good infrastructure in terms of “enterprise-grade” or prefer just a well working home setup? Or can one actually transfer ideas from enterprises to its smaller scale sister? Just to clarify: I will focus on the environment at home, since these kind of fast-moving thought experiments don’t go well with enterprises. What does one require?...
Playing around with Kotlin
A small disclaimer at the beginning: while I have some background in Java, I would never consider myself a superb Java developer. In the recent years I mainly opted for Go to get stuff done, maybe missing out on some of the more interesting programming language trends. This is the main reason I decided to learn Kotlin: dipping around in new concepts. I chose Kotlin because of the recent 2019 Stack Overflow survey....
Exposing services on Kubernetes using Ingress
In my last blog post I talked about setting up your own Kubernetes cluster at home. Since we don’t run our cluster on a big cloud platform, we have no access to comfortable tools like a built-in load balancer. Time to go ashore But, don’t despair! We can deploy our own load balancer using the Kubernetes Ingress object. It allows us to define routing rules and use a backend of our choice that uses these rules to route traffic to our cluster....
Setting up a Kubernetes cluster on bare-metal
You may find yourself sitting at home, thinking about software and stuff and what to do with that spare PC of yours. I’ve got an idea: set up a single-node run-at-home Kubernetes cluster! We need a ship (or a whale) A little disclaimer to start with: the configuration here provides no recovery mechanisms since it is based on a single master node. If you want to set up a high availability cluster, I recommend you consult the excellent Kubernetes documentation....
Building APIs in Go: Business logic
In this post I will explain how to build a nice and working RESTful API for our weather service using only the Go standard library. If you missed the first part of this series, I recommend reading it before continuing here. You can find the codebase of this introductory series on GitHub. Extending the blueprint Well, we have a nice blueprint of the handlers we want, but shoving around global variables is neither fun nor good style....
Building APIs in Go: A quick sketch
First of all, welcome to my first blog post. Today I want to help you build your first RESTful API in Golang! The first two sections will help you getting started with Go, you may be able to skip these steps. Installing the go command line tool Before you can start writing Go code, you need the go command line tool that bundles the compiler and a bunch of other development tools for you....