Open Source Tools and Projects I Should Learn

Yesterday on Twitter I asked this question:

If you had to pick the top 5 open source tools/projects to learn in order to stay sharp/relevant, what would they be?

A number of people expressed interest in the answers to that question, so I thought I post it here. My reason for asking isn’t just academic; I plan to use this feedback (as well as any feedback in the comments to this blog post) to further tweak my 2012 projects (see here and here).

Here are the answers I received back, followed by the number of people who suggested that particular tool or project:

Puppet (5 responses)
Python (3 responses)
Linux, general skills (1 response)
CloudStack (1 response)
OpenStack (4 responses)
Node.js (1 response)
Chef (1 response)
Riak (1 response)
Nginx (1 response)
Graphite (1 response)
Reimann (1 response)
KVM (4 responses)
Zabbix (1 response)
MongoDB/Cassandra (2 responses)
Hadoop (4 responses)
Metasploit (1 response)
Apache (1 response)

These responses are, by and large, consistent with the feedback that I received on my original 2012 projects post. Thus far I have resisted switching my focus from Xen to KVM, but it seems increasingly more evident that it would be most efficient to look at KVM and OpenStack together. (Those of you who suggested that at the beginning of the year, feel free to now say “I told you so.” It won’t offend me.) I can further combine that with Puppet to explore the use of Puppet in configuring OpenStack nodes and/or configuring VM instances running on OpenStack.

I’d love to continue to get more feedback, so please take the time to share your thoughts on the “top 5″ open source tools/projects you’d recommend for a virtualization/data center guy (like me) to stay relevant and sharp in this fast-moving industry. Courteous comments are always welcome!

Tags: , , , , ,

  1. Brandon Burton’s avatar

    My responses were

    * Puppet/Chef
    * Riak
    * Nginx
    * Graphite
    * Reimann

    But I think this could be even more summarized as

    * A config management tool (or two so you understand trade-offs)
    * A ‘NoSQL’ type data store, so you understand the difference between it and RDBMS, I recommend Riak as it’s roots are in being operations friendly at some costs/tuning knobs to get performance
    * Some of the modern graphite/trending/alerting tools. I am a big fan of Graphite, Reimann, and Sensu, but you could look at one or many of these in conjunction with Collectd, Ganglia, Nagios, Cacti, Munin, etc. I just think it’s important to be using good graphing/trending/alerting tools and understand the use cases and trade-offs of them

    Cheers!

  2. Paul C’s avatar

    A good way to look at a collection of those together would be to play with the Dell developed ‘Crowbar’ tool. It’s a deployment tool written to deploy OpenStack and/or Hadoop nodes. It also uses Chef/Puppet and a few other things that make it onto your list.

    You can set it all up and run it inside a vmware workstation setup, so you needn’t waste a bunch of hardware looking at it.

  3. slowe’s avatar

    Brandon, thanks for the “summarization”—I really like looking at it that way. Even though it’s less specific, it helps provide an overall framework. Very useful!

    Paul C, I’ve heard of Crowbar but wasn’t sure how/if it intersected any of the other technologies. I’ll have a look. Thanks!

  4. Scott’s avatar

    Late to the game, but along the lines of KVM, I’d highly recommend Proxmox. It’s mind blowing what it can all do for free and open source.

  5. slowe’s avatar

    Scott, thanks for the recommendation to look at Proxmox. I’ll try to give that a look.

  6. Dan’s avatar

    If you’re already looking at KVM, you should definitely look at oVirt, and everything around it – katello, foreman and so on