What could be cooler than working with Open Source software for a living? Hmm. Maybe working with Open Source Cloud Systems (software) for a living? OpenStack has turned the corner from being what skeptics were calling a “science project” to the leading software used to manage private and hybrid cloud deployments. There is a growing gap between the demand for people with OpenStack skills and the number of people qualified to fill those spots. Great if you are looking for a job, not so great if you are trying to hire. Great, the jobs are out there. So now you ask, “What does it take? How can I judge if I am qualified or ready?”
Well, let’s first make sure we are both talking about the same thing. I’d say there are three to three-point-five categories of working with OpenStack. There are the Ops/Admins, AppDevs and Integrators/OSDevs. I’m going to lump Admins in with Ops for this article, though there is a subtle difference, to be clarified below. There are folks using OpenStack as an IaaS to develop applications. Finally, there are people actually building- coding- OpenStack. For this article, I’m going to deal with category one, we’ll focus on two and three in follow-up articles.
The Ops/Admin category is arguably separate, though in practice the roles are not infrequently held by the same person. Thus this is the one-point-five category value- it depends on how you split them. The main difference is that strictly speaking, an admin is not going to be expected to be installing, architecting and upgrading an OpenStack system. That truly is the Ops role. An admin’s task will be more on the side of running the OpenStack system and dealing with managing system configuration and handling user and user projects. Again, this in not always a clear-cut distinction, depending on the organization.
So now that we are clear on what we are discussing in this article (How to get an Ops/Admin job), let’s dive in:
Know if what’s available matches your skills profile
First off, you’ll want to take a look at some actual requirements from a listing on the OpenStack Job Board. Go ahead, I’ll wait for you here. Ok. You probably noticed that there is no one generic position description that makes or breaks an OpenStack Job listing. Some jobs will require OpenStack experience, other focus more on Linux or UNIX experience; some require Python experience, others want Golang, others couldn’t care less if you can code; some are looking for extensive OpenStack experience, others are clearly on-the-job-training opportunities. The takeaway of this exercise was that there is no one standard set of tools that will make or break your chances at most OpenStack jobs. In fact, trying to build the perfect set of credentials for an OpenStack job is unlikely to work, because OpenStack is about enabling options. Because of this, the actual stack in use will vary from company to company.
Build your Skills
So where does that leave us? You’re thinking, “There has to be something I can do to build my skills for an OpenStack job?!?” Indeed!
No really, I’m not trying to be funny here. You need to _seriously_ learn OpenStack; get hands on, use it, break it, fix it. This is the best way understand how OpenStack works. More importantly, the ability to actually use OpenStack will put you ahead of the competition when specifically seeking an OpenStack-focused position. Once you are competent at using OpenStack, the OpenStack Foundation has a formal certification program – the Certified OpenStack Administrator‘s credential – that can prove to employers that you really do have OpenStack skills and can apply them.
Learn OpenStack’s Supporting Projects
Having experience with supporting bits (understanding AMQP (the message queue), mySQL (OpenStack’s Default database system) would be of secondary importance, as will become clear if you work with OpenStack for any period of time. Then moving on to supporting skills- having experience with Linux Systems Administration will serve you well (though there is a whole community that does OpenStack in the key of Microsoft, so that is already an alternative stack option).
Learn about Automation
Automation is another sensible, if not indispensable tool. I lean toward Ansible myself, but Puppet, Chef, SaltStack are all well thought of in the OpenStack community. Again, more options in the actual stack you have experience with, but the point would be more about understanding the principles and realize that if you need to shift from Chef to Puppet, you’ll deal with it when the time comes.
Know a Programming Language
Myth- you need to know Python to run OpenStack. Most of the troubleshooting involved in OpenStack revolves around skill with mucking with CLI commands and configuration files than actual coding. Having Linux administration skills may serve you more than strong coding skills- at least initially. Still, most of OpenStack is based on Python code, so at least an introductory familiarity with Python will not be a bad thing- and as a bonus, it makes it possible to not only potentially find a troubling bug, but help fix it too!
Still, if don’t know a programming language yet, getting started learning Python would be a good move. If you already have coding skills in another language, you may want to wait before investing substantial time in learning Python specifically.
Learn More About the Cloud Ecosystem
As a middleware service, OpenStack is the glue between resource pools and applications with an ever-growing number of actors. This alone is a challenge, but added to that is the fact that technology does not sit still and where OpenStack was a strictly VM (virtual server) management platform to start off, its added bare metal management to its responsibilities and is now trying to figure out how Container management will integrate. Staying current with the bigger picture of cloud services is one other aspect of not just “knowing” OpenStack, but actually being a competent user/operator/manager. Again, I’m not suggesting you learn every shiny new technology that pops up. Right now, however, having at least a basic understanding of Containers and related systems would be one technology area that is already highly relevant to and affecting OpenStack’s future.
O.K. That should give you an idea of the skills you may want to build to become competitive in the OpenStack job market. We periodically run a 3-part micro course on what it takes to get a job working with OpenStack. You can check out details and register here: A Universe of Opportunity: Operating Cloud. We’ll get more into how you can actually find those jobs in the next installment.
Director of Education
OPENSTACK OPENS UP A UNIVERSE OF POSSIBILITIES
Wondering how to become a part of the elite technologists that get to actually run “the Cloud?” Join us for a three-part exploration of what is involved in running an OpenStack Cloud : A Universe of Opportunity: Operating Cloud. This micro-course will look at the tools used by cloud operators and admins and discuss how to strategically prepare for such a career. Learn more- click here!
Here are some resources to help you explore skills related to OpenStack Ops careers:
Check your OpenStack Skills: If you want to see how “OpenStack Ready” you are, grab a copy of our Certified OpenStack Administrator Review Guide. See where you might want to polish your OpenStack skills.
Learn How to Run OpenStack: Check out our Advanced OpenStack Bootcamp – learn what you’ll need to know to manage and run a production system. For details, see our KTOS300 course description.
RabbitMQ Tutorial: Click the link to get started on a free introductory (but in-depth) tutorial series on the default OpenStack Message Queue service.
Learn Python the Hard Way: A classic introduction to Python. Learn by doing.
Ansible: Our current personal favorite in the automation tool arena. The link is to the Video catalog that includes their quick start guide.
Containers: a Brief History – A Kumulus Blog post that lays the foundation about what containers are and where they came from. First in a three-part series that our CTO wrote to get people started with this trending technology.
Introduction to Containers: Yes, we have a class that will get you hands-on experience and jump start you in the world of software containers. Check out the details here: KTOS050 Introduction to Containers.