DevOps sounds more like a Special Forces division of the military than a technology role, but this position is mission-critical to the software development life cycle.
The challenge with DevOps is that organizationally it bridges an important part of the software lifecycle—change management. In software development, change is critical to success. In operations, change is faced with caution since it introduces risk. The best candidates for a DevOps role possess great communication skills and the ability to crossover between both disciplines.
Do you have what it takes to join the elite special forces of a DevOps role? If you’re a professional with experience in software development or system operations, you may be just the right candidate to unlock this mission.
Most DevOps engineers have specialized training in one stack, so don’t worry if you’re not adept at every stack out there. Instead, look for roles that align with your deepest knowledge. If you’re choosing which stack to specialize in, below is some information worth considering.
- Linux: This open source platform is the most common stack for DevOps. Why? Because of the fast growth of cloud services, such as Amazon Web Services, many of which started on the Linux platform.
- Microsoft: Experience with a variety of Microsoft products like Azure (its cloud platform), Windows Server or SQL Server is typically required for roles using this stack.
- Hybrid: This can represent Linux and Microsoft technology together, or even cloud and a traditional datacenter hosting setup. The more hybrid the environment, the more you will need strong systems and operations experience to be successful. Not for the faint of heart.
Infrastructure Automation and Development
Regardless of the systems stack, most DevOps roles require knowledge of building, deploying and operating software. What this means for you? You need mad skills. Below are the four main clusters of skills and tools you’ll need to succeed in a DevOps role.
Strong experience with one technology in a cluster usually translates well to the others with only a few weeks of training, and since many of these tools are relatively new, you should be willing and able to apply your existing knowledge to new tools as needed for the role.
What you need:
- Puppet, Chef, Vagrant, CFEngine and Bcfg2: Maintaining consistent system performance is critical. This means being up and available, as well as fast and reliable. Experience with these configuration management tools will help you manage software and system changes repeatedly and predictably.
- Jenkins, Maven, Ant, CruiseControl and Hudson: A key part of your job is making it faster and easier to create and deploy software. Experience with tools like these will help ensure you have what you need to keep things moving.
- Git, SVN, CVS, Visual Studio Online and Perforce: Version control is important to DevOps so developers don’t get in each other’s way. Use of these source control systems allows for collaboration on software projects and makes it easy to manage changes and updates.
- Nagios, Munin, Zabbix, Sensu, LogStash, CloudWatch, Splunk and NewRelic: As a DevOps professional, you must always keep tabs on performance. While the specifics of each tool are different, you should know the philosophy and principles behind each of them so you can implement them effectively.
While this list isn’t comprehensive, the most important skill you can bring to the table is the ability to quickly learn the ins and outs of a new tool, so you can keep multiple teams running smoothly and effectively.
- 4 Interview Questions for DevOps Engineers
- Technical Interview Questions for Linux DevOps
- Why DevOps Is CPR for Cloud Applications