• Collecting API Request Samples with Flask

    I recently was responsible for two service outages of a web API in a single day. This made me think about the way to test said API before deploying updates to production. Obviously, the existing unit tests, code reviews as well as manual tests were not enough in some cases.

  • Mixing On-Demand and Spot instances with AutoSpotting - and one Issue that I've Found

    On AWS there are two different lifecycle types for servers: On-demand and spot. On-demand servers are normal servers, as long as you pay for them they will run (unless hardware breaks). Spot instances on the other hand are cheaper, but can be taken away at any point in time. Usually you receive a notification a few minutes in advance. With Amazon Auto Scaling Groups (ASG) you can create a fleet of servers consisting of on-demand and spot instances to have a fixed baseline size and scale up when there are cheaper spot instances available. However, there is one use-case ASGs currently cannot handle: You cannot run on spot instances when spot instances are available and use on-demand instances when no spot instances are available.

  • Recursively delete values from AWS Parameter Store

    Recently, I wanted to delete some of my configuration groups from the AWS Parameter Store. I use the hierarchical concept of the Parameter Store and thus wanted to recursively delete all options under a specific prefix.

  • Using Deployment Time Values from Parameter Store in a Launch Template's User-Data Script with AWS CDK

    I’ve been starting to port all of our hand-managed infrastructure over to AWS CDK. CDK is a program by Amazon available for a few programming languages which allows you to define your infrastructure in code. I for myself use it with Python. CDK comes with two different types of classes: L1 and L2 constructs. L1 constructs are a direct mapping between Cloudformation types and CDK classes, L2 constructs are an abstraction. I use only L1 constructs, because I feel I have better control with them.

  • Chainloading Ubuntu with GRUB 2 from Archlinux with SYSLINUX

    I’m running a dual boot system on my Notebook with one OS being my private one and the other being the one for my employer. This week my company operating system died and I had to re-install it. For my private operating system I use Arch Linux with a SYSLINUX bootloader and for the company I use Ubuntu (which by default uses GRUB 2 as bootloader). Both of my installations use root volume encryption.