Changing redis maxmemory gradually

Today we’ve been busy migrating some AWS instances at work due to upcoming maintenance events in AWS. One of the instance families we used a lot when building QuizUp is the m2 instance family and almost all of our m2 instances will require restarts in the next few days. On some of these we are running large redis instances with tens of GB of data and restarting them is not pain-free, even if we would use the persistence features of redis, which work by periodically dumping the entire dataset into a dump.rdb file.

Docker Workshop

These are the instructions/background I wrote for a workshop on Docker when we started deploying the backend services for QuizUp as Dockers, in November 2014. What is Docker? It is a server and client for creating lightweight machine images, known as containers. Currently these images can be run on Linux, in what are known as LinuX Containers (LXC). Docker uses AUFS (a union file system) and some clever magic to save time when creating new images.

brute force still going strong

While setting up this blog I was looking through my little VMs scattered around different cloud providers to find one which could serve as the A record for and redirect traffic to I logged on to one of my digital ocean droplets that I haven’t used in a while so I was slightly surprised to see more than 100k lines in /var/log/auth.log. I remember being a teenager and attempting to get access to random systems I stumbled across on the internet.

From Monolith to Services @ QuizUp

Last week I did a talk at a local IT conference, UT Messan. The title was the rather inflated “From Monolith to Services at Scale: How QuizUp is making the (inevitable?) transition, one endpoint at a time”. In it I try to tell the story of how we at QuizUp are transitioning to a more service-oriented architecture, and which steps we decided to take first. The route we chose was to use ZooKeeper as the heart of our system for service registration, discovery and configuration, and then figure out how to route client requests to services running inside Docker containers.