What is DevOps?

DevOps is a software development method that creates links between software developers and IT professionals, it stresses:

  • Communication
  • Collaboration
  • Integration
  • Automation
  • And measurement of cooperation

DevOps allows the development team to support the operational requirements from the initialization of the cycle, where the operation team are in the position of supporting before and after of any deployment with their knowledgeable feedback.

Exhibit A: Agile Coder Agility

^

Why DevOps?

User satisfaction is the number one goal of customer focused products; however the disconnected relationship between the development and operations teams creates bottlenecks and flaws in the development cycle.

Many IT organizations end up in a situation where fast cloud releases and a demanding user base allow for the possibility of extremely rapid incremental releases.

DevOps aims to synchronize teams, integrate infrastructure into the development process and address the core issues present in most enterprise level development projects.

DevOps allows the development team to support the operational requirements from the initialization of the cycle, where the operation team are in the position of supporting before and after of any deployment with their knowledgeable feedback.

^

What’s in it for me?

DevOps skills are in high demand and choosing such a field can be an extremely lucrative career choice.

According to the 2014 ‘DevOps Salary Report’ by Puppet Labs:

36% [1] of of DevOps engineers make between 100K-124K, with the average salary being $106,734

In an Article in Forutne, Alan Shimel, editor-in-chief of DevOps.com, a career site devoted to the field, says:

“For people interested in DevOps, a degree in computer science or software engineering is nice to have, says But it won’t get you hired. “Hands-on experience with actual tools and projects is really the only thing that matters.”” [2]

The overall philosophy also appeals to many proponents of the agile methodology as DevOps philosophies are accurately captured in the Agile Manifesto [3]  – with a focus on the overall service over simply “working software.” In the words of TheAgileAdmin:

 “In the end, what DevOps hopes to bring to Agile is the understanding and practice that software isn’t done until it’s successfully delivered to a user and meets their expectations around availability, performance, and pace of change.” [4]

^

How do I get into DevOps?

Becoming a DevOps specialist requires the use of DevOps tools. DevOps tools vary in size, scope and pricing; the selection of which tool to use is highly dependent on organizational need and prerequisites. Ultimately hands-on exposure to DevOps development is the biggest driver of actual hire-ability and skill in the field. If a career in DevOps is something you want, then you should acquire the hands-on large-scale development experience that makes the skill so valuable.

On Quora, Jonathan Fennocchi, a DevOps Engineer at Bazaarvoice suggests that to place in the field yourself you should: [5]

  • Interview at a company that’s hiring DevOps. If you get hired, you’ll learn the operations side of things fast. Real fast. Or get fired. If you don’t get hired, you’ll learn what is still missing from your resume / experience that’s preventing you from becoming a full-time DevOps engineer.
  • Tell your boss you want to become a DevOps engineer at your company. Your boss should help you to this end. If he/she does not, quit. Then come work at Bazaarvoice with me and a bunch of other really awesome, super talented engineers working on some really awesome and challengingproblems.
  • Obtain practical experience by using your skills as a software engineer to build tools rather than software. Look at any of the open source projects Netflix has written for examples / ideas.
  • Learn OpenStack. You can do this on your own time and budget. It’s not important whether OpenStack sucks compared to Rackspace Cloud. What’s important is that you understand all of the various components and why they are important. Have a wad of cash lying around? Learn Amazon Web Services instead.
  • Participate in anything your team does involving operations — deployment, scale, etc. (See list above: “What DevOps is.”) If your team doesn’t do any of that (i.e., they send artifacts over to Operations and the Operations team does deployment), go over to the Operations team and sit in on a few deployments.

Looking for a great job in DevOps? Let Apex Technology help you find your next job opportunity. Submit your resume online.

^

What tools should I learn?

There are a wide variety of DevOps solutions in the market, each with different adoption, some include:

Puppet

PL_logo_horizontal_RGB_lg

Puppet Enterprise is one of the DevOps tools that the engineers often rely on! This tool, supports immensely on management configuration and software development while making repeatable and rapid changes. Some of the Key features that are supported by Puppet Enterprise are

  1. Helps in continuous delivery
  2. Works with a common Tool chain
  3. Automatically involves the consistency of work environment
  4. Delegates works across virtual and physical machines

Getting Started in Puppet

https://puppetlabs.com/presentations/getting-started-puppet

Puppet Learning VM

https://puppetlabs.com/download-learning-vm

Chef

chef_logo

 Chef is a company & configuration management tool written in Ruby and Erlang. It uses a pure-Ruby, domain-specific language (DSL) for writing system configuration “recipes”. Chef is used to streamline the task of configuring and maintaining a company’s servers, and can integrate with cloud-based platforms such as Rackspace, Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, and Microsoft Azure to automatically provision and configure new machines. Chef has solutions for both small and large scale systems, with features and pricing for the respective ranges.

An overview of Chef & DevOps

https://www.chef.io/solutions/devops/

Getting Started with Chef

http://gettingstartedwithchef.com/

Ansible

ansible-logo

Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs. Being designed for multi-tier deployments since day one, Ansible models your IT infrastructure by describing how all of your systems inter-relate, rather than just managing one system at a time.

Ansible Overview

http://www.ansible.com/how-ansible-works

Ansible Online Training

http://www.ansible.com/webinars-training

Jenkins

logo-title

Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Jenkins focuses on the following two jobs:

  • Building/testing software projects continuously, just like CruiseControl or DamageControl. In a nutshell, Jenkins provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to get a fresh build. The automated, continuous build increases the productivity.
  • Monitoring executions of externally-run jobs, such as cron jobs and procmail jobs, even those that are run on a remote machine. For example, with cron, all you receive is regular e-mails that capture the output, and it is up to you to look at them diligently and notice when it broke. Jenkins keeps those outputs and makes it easy for you to notice when something is wrong.

Jenkins – Meet Jenkins

https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

Getting Started With Jenkins – Tutorial

http://www.vogella.com/tutorials/Jenkins/article.html

http://www.ansible.com/webinars-training

Capistrano

CapistranoLogo

Capistrano is a remote server automation tool. It supports the scripting and execution of arbitrary tasks, and includes a set of sane-default deployment workflows.

Capistrano can be used to:

  • Reliably deploy web application to any number of machines simultaneously, in sequence or as a rolling set
  • To automate audits of any number of machines (checking login logs, enumerating uptimes, and/or applying security patches)
  • To script arbitrary workflows over SSH
  • To automate common tasks in software teams.
  • To drive infrastructure provisioning tools such as chef-soloAnsibleor similar.

Capistrano is also very scriptable, and can be integrated with any other Ruby software to form part of a larger tool.

Capistrano Overview

http://capistranorb.com/documentation/overview/what-is-capistrano/

Getting Started with Capistrano

https://www.digitalocean.com/community/tutorials/how-to-use-capistrano-to-automate-deployments-getting-started

^

Next Steps?

Get ready to take off with a career in DevOps

Ask around your current work for opportunities to integrate DevOps tools, seek out training in skills you want to develop & for IT pros who want to get certified in the DevOps skillset, the DevOps Institute has recently launched two new certifications and plans to add more.

One thing is for sure, DevOps isn’t going away any time soon, it brings collaboration to the development cycle and in the words of Anthony Starr “Collaboration is the best way to work. It’s only way to work, really. Everyone’s there because they have a set of skills to offer across the board.”

^

Looking for a great job in DevOps? Submit your resume online.