IMG_0333_preview.jpeg


You might have heard of the term DevOps and noticed an increasing demand for skills that seems to reference it. Wikipedia has a concise way to explain "DevOps":

DevOps is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops). The main characteristic of the DevOps movement is to strongly advocate automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps aims at shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives.

Source: https://en.wikipedia.org/wiki/DevOps

From the business perspective it is a set of technical and non-technical best practices to achieve quicker software releases without compromising on quality and stability. Does this desire to achieve more frequent software releases have any impact on the goals of the business regardless of the sector i.e. does it matter if we are not talking specifically about technology companies? It does because we are accelerating into the world where every organization regardless of size and sector is relying on software for critical internal operations and customer facing products so the ability to innovate and release software quicker than the competition has proven impact on the revenue and growth.  

Companies that excel at DevOps interactions are 11 times more likely to see double-digit annual revenue growth. It doesn’t stop at revenue growth either. According to EMA, 49% of organizations also agree that accelerated delivery frequency leads to higher customer satisfaction. And 35% find it enables them to be more agile and competitive.

Source: https://dzone.com/articles/study-reveals-how-devops-grows-revenue 

Hopefully by this point you have established the importance of the business case for embracing DevOps and want to understand what would be a recommended technical path for someone looking to getting involved professionally. Please consider below a very opinionated set of recommendations based on a combination of free and paid online resources mostly in the form of self paced courses. Your journey may vary based on your current familiarity with some of these topics and by no means is it exhaustive since the technology landscape around DevOps is expanding into new areas. 

  1. Learn Linux since most of the DevOps/Cloud infrastructure is based on it instead of Windows:
  2. After you feel comfortable with Linux command line basics it is time to move on to learning more about the "Cloud" and related technologies:
  3. CI/CD (Continuous Integration / Continuous Delivery) : These are key DevOps disciplines for automated, frequent and reliable software releases. 
  4.  Docker and Containers
    • Some of the content in intro to DevOps above would have already introduced you to the idea of Linux containers and Docker but below are practical ways to learn this technology further:
      • You can do all of the free courses directly in the browser in a simulated command line: http://training.play-with-docker.com/alacart/ (ONLY do the ones under "Beginner" and skip any of the labs with "Windows" in the title)
      • Try redoing these tutorials by installing Docker on your local machine or cloud VM (linux environment)
    • "Kubernetes" is the most dominant Linux container orchestration technology which is being rapidly adopted by organizations. Complete this free online course on Kubernetes: https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615


Browse Career in Devops