Inspired by Scott Lowe's 2012 and 2013 lists I'm recording some of the technical projects I've been focusing on in 2014. At the end of this year or early next I'll look back and see how well (or not) I did. Part of the reason I want to document the goals is my tendency to become interested in new topics but never quite get to the level of mastery I set out to achieve. My hope is that by setting specific goals and measuring progress that it will aid in holding myself accountable. I have also observed in the past that I'll pick up on a trend or new technology, research it at a cursory level, and then set it aside only to hear about how it is driving significant change or experiencing major adoption years later. It would be interesting to be able to look back if this continues to occur.
Here is the list for 2014 thus far:
General Linux Knowledge - About 10 or 11 years ago I began tinkering with setting up Linux guests under VMware Workstation and GSX Server. My knowledge has grown steadily over time, but I've never really focused on building a fundamental understanding of the platform and related open source projects. Given the overlap of open source projects and my day job it only makes sense to take some deliberate actions to increase my knowledge. My goal would be to complete the Red Hat Accredited Sales Engineer Data Center Infrastructure track by the end of the year. A stretch goal would be to obtain the Red Hat Certified System Administrator (RHCSA) certification. I decided to focus on Red Hat Linux because they are a partner in my day job and that affords me training and hands-on lab opportunities.
OpenStack - Back in July 2012 I joined the OpenStack Foundation and that summer I spent a couple months tinkering with it but never went any further. Over the past few months I picked it back up and am driving an initiative around expanding engineering capabilities in my day job. Since OpenStack Summit is in Atlanta this year I registered and will be attending in a couple weeks.
Learn to Program in Python - I first picked up Ruby back when Ruby on Rails was released in 2004. The earliest recorded release version I could find was 0.8.0 from October 2004, but I know I had picked up Ruby and RoR several months prior. In any case, I've been quite happily writing small web apps, utilities, and scripts in Ruby ever since. I took a look at Django when it was released in 2005 but decided to stick with Rails. Fast forward 8+ years, and in researching OpenStack I learned that Django was used for the OpenStack Horizon dashboard. Under the hood OpenStack is primarily written in Python which makes the use of Django an obvious choice. Since several other projects in the cloud computing and networking areas are also written in Python I'm adding this to the list.
Configuration Management Tool - For both testing in my lab and consulting with day job clients I would like to become well versed in a configuration management tool such as Puppet, Chef, Ansible, SaltStack, etc. The challenge has been selecting one to focus on. In the end it probably doesn't matter too much which one I select since they are all quite capable, so it may come down to whichever is being adopted by more of the "enterprise" clients that I work with regularly.
Software Defined Networking - In my day job Cisco ACI, VMware NSX, OpenDaylight, and other SDN options are frequently topics of conversation and client adoption is beginning to grow. Given my background as a network engineer I would like to continue expanding my knowledge in this space and keep up with innovation.
Home Lab - I have been attempting to use my company-issued MacBook Pro and VirtualBox for creating lab environments that aid in learning these technologies. Despite the quad core Intel i7 process the limitation of 8GB of RAM has become a bottleneck. It's a Retina MBP so there is no option to upgrade RAM. I'd like to build a lab capable of hosting VMware vSphere 5.5 and OpenStack (potentially nested) that I can then build VMs. I've looked at quite a few options and am still debating whether to go with multiple small, energy efficient nodes with average CPU and memory or to build a single host that can support 128GB+ of RAM.
I was deliberate in picking areas that overlap so that newly learned skills are reinforced regularly even if I switch focus in a given week. Given how busy both work and my personal life have been this year I would honestly be shocked if I ended up giving myself an A or B on all 6 of these areas, but it never hurts to aim high!