Byzantine Reality

Searching for Byzantine failures in the world around us

The Brilliance of X-Men Legacy

I haven’t written in quite a while about my favorite hobby (comics!), so let’s get back into the groove there with my favorite comic to come out of the Marvel NOW! launch: X-Men Legacy, by Simon Spurrier. If you haven’t heard of X-Men Legacy, you should go buy all of it (currently #1-#18) and read it immediately. I can wait. With that said, I now assume that you’ve read it all and I can spoil things left and right without worry about hurting your feelings or ruining things for you. So today I wanted to take a look into the mind of David Haller and what makes him and his world tick.

First Thoughts Developing on Mavericks

So I just upgraded my 2012 MacBook Air to Mac OS X 1.9 (Mavericks), which I use for all my dev work. I ran into a few quick issues while getting it back in shape to develop on, and I figured posting them here may help you out if you do the same.

The Beer Report: Lagunitas IPA

This post kicks off our “99 Bottles of Beer” blog series, in which we talk about beer while also programming. Let’s start off with a pretty solid beer – a Lagunitas IPA.

Revamped Autoscaling in AppScale

Autoscaling is one of the most difficult (and thus useful) features that are found in scalable software. This is difficult because it’s often not just one piece of software that needs to be scaled. In a simple three-tier web deployment model, it’s three pieces of software: the load balancer, the application servers, and the database. Each of these need to be handled differently and have their own quirks. For AppScale 1.12.0, we’ve revamped how we autoscale application servers to better serve users. Let’s talk about how!

HOWTO: Write a Simple Monit Config File

Monit is a daemon that monitors processes running on a Linux box, and can restart them if:

  • They died for any reason (e.g., they crashed, or they were done doing whatever it is they do).
  • They use too much CPU or memory

We use it in AppScale for exactly these reasons, for nearly every daemon AppScale relies on. This includes:

  • Cassandra
  • ZooKeeper
  • Memcache
  • Celery
  • RabbitMQ
  • Ejabberd
  • App Engine apps that users upload

The official Monit documentation is pretty thorough but doesn’t tell you in a very minimal way exactly how to write a Monit config file to revive processes that die or take up too much memory. With that in mind, let’s tell you how to do exactly that!

Porting Over to Octopress

So for quite a while I’ve been in a blogging-funk. But with fellow AppScale co-founder Navraj Chohan blogging on an almost daily basis, I figured I would try to start blogging again. With that, I spent some time lately upgrading my blog from bloog to Octopress. But why, you say? Read on to find out!

NoOps in AppScale With Monit

Programs that run will eventually die. Hopefully they die because you decided that they don’t need to run anymore, but sometimes they crash unexpectedly. That may be fine (although probably annoying) if you’re running a small app that isn’t critical to your business. But what do you do if it is business-critical? You may have an operations team who watches your web server and pages you at 2am if it goes down, but shouldn’t there be a better way? There is! Let’s talk about how we keep your apps running in AppScale.