Wednesday, January 11, 2012

Introducing Scalyr

For my whole life (or so it seems), I've had a passion for building tools. Specifically, software tools, with the goal of making life simpler for engineers.

I'm very excited to announce that I've recently launched a new venture that will allow me to focus on just that: Scalyr. At Scalyr, I'll be working full time to attack the problems of reliability, scale, and complexity I've been discussing in this blog. I'll still post here from time to time, but most of my blogging -- which will be much more frequent -- will now appear on the Scalyr blog at I encourage you to subscribe to the Scalyr blog; the content should be of interest to readers here.

Rather than say more about Scalyr, I'll just reproduce the initial post from the Scalyr blog.

Welcome to the Scalyr blog. Today we’re announcing our first service, Knobs.

What’s a Knob, you may ask? Or perhaps, what’s a Scalyr?

First, a little background. I’ve spent a good chunk of my career developing “in the cloud”. (Building Writely, for instance — aka Google Docs.) It can be an amazing experience. With the variety and sophistication of services available today, I sometimes feel like I’m programming with seven-league boots. One day, you wake up to find that thousands or millions of people are using your work.

However, building on cloud services can also be frustrating. Performance can be unpredictable, error messages unhelpful, protocols confusing. Sometimes they go down. As you scramble to cope, you can’t help but picture those thousands of people glaring at an error page and silently cursing. Cursing you, probably, even if they don’t know who you are. Sometimes you can work around the problem; sometimes all you can do is glare at the error page and add your own curse to the silent chorus.

At Scalyr, we’re building a new breed of cloud services. Services architected for reliability, so you can depend on them. For transparency, so you know what kind of performance and behavior to expect. For simplicity and practicality, so you can integrate quickly and get on with your work. You’ll hear more about all of these themes in future posts.

On to Knobs. For almost as long as there has been code, there have been knobs to tweak. These take many forms — configuration files, command-line parameters, constants, “magic cookies”. If you’ve written server code, you’ve wrestled with this. You need to specify a threadpool size, or a server address, or some other little constant. You know it might need tweaking, so you put it in a configuration file. And write code to parse the file. And a little script to copy the file to the server. And another script to restart all your servers so they can pick up the change. Oops — let’s tweak that script to only restart one server at a time! OK, problem solved… until all those copied files inevitably get out of sync, or you get tired of waiting for a rolling server restart every time you tweak a parameter.

Knobs is a simple service to address this problem. We store configuration files for you; you edit them in a web page, or via our API. We give you a library that lets you read values with a single call. We take care of the rest, managing files and instantly copying updates to all of your servers.

For reliability, we run servers in multiple facilities (of course). Furthermore, the Knobs library maintains a persistent cache of your configuration files on each server. So even if we were to have an outage, you won’t: the library will use the local cache.

If this sounds interesting, learn more or just dive in. And if you love the idea of building services that people can really depend on, drop us a line – we’re hiring!