The Problem With Configurations

Originally published in Netocratic

Configuration is one of those things we usually take for granted. Yet, as more and more configurations are added the use of configurations becomes hard and complicated. With enough configuration parameters, keeping track of what the current configuration “is” can be quite problematic. Often, people misconfigure systems due to various reasons such as poor documentation or unexpected interactions between different parameters. Sometimes, the configuration itself can be complex and requires a language to express it, raising the bar of required knowledge for defining the configuration. Despite the “boring” nature of configurations they can and do obliterate entire companies in matter of hours.

Read more

Docker, SELinux and the myth of kernel independence

Recently I built docker images for omnibus builds. Omnibus packages must be built on the target distro so I needed images for centos, debian and ubuntu. Usually I build such docker images on my laptop which is running Ubuntu; I try to make the builds as repeatable as possible using the excellent packer tool and when I publish images I build them again (using a build server) on cloud instances. In this case, I was using GCE CentOS 7 instance to perform the build and I was surprised when a build that was smooth on my laptop failed miserably.
Read more

Autonomation in web systems

Yes, I got the spelling right. Autonomation is a manufacturing methodology originally developed by Toyota (part of the famed Toyota Production System). The idea is sort of like this: you have a machine on a production line; this machine is supervised by a human and is feeding its output to some other machine down the line. Occasionally something goes wrong, perhaps a defective product by the machine. The machine stops itself immediately and the human will fix/change the machine (not the product, the machine!
Read more