Markus Cisler

Markus

Hej! I'm Markus Cisler,
a systems engineer from Hamburg.

Follow me on Twitter & subscribe via RSS.

Take care of spot instances in your AWS ECS cluster

At mytaxi, we’re currently using Amazon ECS to run our production environment. To save money we decided to go all in on spot instances.

For those not familiar with how spot instances work: you tell Amazon what you are willing to pay for a certain instance type on AWS. The cost for that instance type depends on supply and demand and can, in theory, exceed the on-demand price. If the price you set is lower than the current price of the instance type your instance gets terminated.

Since this year you can subscribe to events on AWS telling you about spot instance terminations. You get a notification three minutes in advance. We’re using these to set cluster nodes to DRAINING state which tells them to reschedule their containers to different nodes. A graceful shutdown so to say.


This is implemented as a lambda function written in Python which is getting triggered by Cloudwatch events and can be deployed using Terraform. For more information and the source check out the Github repo at mytaxi/terminationspotter-lambda, for anything else feel free to say hi on Twitter.

WWDC 2018

With no expectations at all, yesterday’s keynote was alright. The good parts:

  • Dark mode in macOS
  • Grouped notifications in iOS
  • Notification actions in iOS

I really wanted them to show new AirPods on stage or at least have them include the new AirPower charging case with every AirPod purchase. Didn’t happen. Let’s wait for the next Apple event then.

KubeCon 2018

This week part of the mytaxi platform team and I have been to Copenhagen for KubeCon & CloudNativeCon Europe 2018.

My focus for this conference was to learn more about monitoring in cloud native environments. Here’s an incomplete list of talks I attended and thought to be useful.

  • What’s Up With All the Container Runtimes (on YouTube)

    An overview about the history of containers and how they came to be. Afterwards I also knew what the difference between CRI and OCI is.

  • How to export Prometheus metrics from just about anything (on YouTube)

    Fast-paced talk about implementing Prometheus exporters in Go.

  • Jenkins X: Easy CI/CD for Kubernetes (on YouTube)

    The next version of Jenkins, Kubernetes first. Kind of an overall bootstrapping tool for new projects with opinionated defaults, not sure if you can change that.

  • Autoscale your Kubernetes Workload with Prometheus (on YouTube)

    Since Kubernetes 1.8 it is possible to scale pods using the custom metrics API. As an example this talk shows how to scale a blog using request counts reported by Prometheus.

  • Prometheus Deep Dive (on YouTube)

    Q&A session with some of the core Prometheus developers. Made me aware of Thanos for long term storage and HA setups of Prometheus.

Very nice experience overall, would attend again. 5/7