Data Porters

Chef: The Absolute Minimum

So, you've heard about Chef, but you don't know where to start.

"Server/client" or "solo"?
Recipes, knives, cookbooks, and bookshelves, oh my!

In this post, I'll share an absolute minimal way to get started with Chef, and in future posts I'll continue building and expanding from this foundation.

Why Use Chef?

One word: Reproducibility (OK, two words: Documentation, too)

If you hang out in Ruby and/or DevOps communities, it's likely you have heard of Chef , the systems automation framework. Chef originally spawned from Puppet , another systems automation framework. Other systems automation frameworks are becoming popular, such as Ansible. These tools install and configure software packages on servers and perform many other systems administration tasks in an automated fashion.

"What's the big deal?", you think.

"It's not that hard to install Apache…"

"I just need to twiddle this one variable in this one file…
I don't want to go through the hassle of a configuration management system just to change it!
"

Rails Inside Wordpress on Nginx

Configuring Nginx to Serve a Rails App Inside Wordpress

Yesterday, I saw a tweet asking if anyone had experience serving a Ruby on Rails app from a URI inside a Wordpress site using Nginx. I didn't have specific experience with that setup, but a quick internet search suggested it was a problem several people have had, with no immediately apparent solutions. So I decided to tackle it.

Easy Server Monitoring With Graphite

What Can Graphite Tell You About Your Servers?

Graphite is a time series data storage and graphing system.

OK, what does that mean?

That means you can shove numbers at it over time, and it will store them very efficiently and draw graphs with them.

For example, let's pick a particular metric; say you want to monitor the load on a server. All you have to do is send that number, with an identifying string and a timestamp, to Graphite and it will store it. Obviously, time series data can grow forever, so Graphite is very configurable as to how long it will keep certain resolutions of data, and how to "roll them up " for lower resolution storage. For example, storing a single metric with 10 second resolution for one year and 1 minute resolution for 10 years requires [only] 13MB of space.

Proper Configuration… FTW

[Re]Consider Your "Default" Configuration(s)

A colleague (I'll call him Chris) called me a couple of days ago asking if I had a few minutes. He said he had a client who was speaking at a conference and promoting his software; he ended up on Hacker News, and his site was now somewhere between dying and dead. To add insult to injury, he was annoucing that his company was open sourcing their database monitoring software, and their website was displaying "Unable to establish database connection".

Ouch!