DevOps is an approach that automates the processes between software application development and IT operational support teams. DevOps proposes a collaborative culture between development and operational teams to build, package, test, and release applications more frequently and efficiently.
Though DevOps approach is broader than tool automation, technology plays a pivotal role in the success of DevOps.
DevOps is started as a “movement” to bridge the cultural division between Development and Operations teams. DevOps leverages the Lean and Agile principles heavily. As the context diagram shows DevOps overlaps “Service Design”, “Service Operation”, “Service Transition” and to some extent “Continual Service Improvement” phases of ITIL and the equivalent domains in COBIT framework.
However, it should be noted that for an enterprise that has legacy and heterogenous development needs, DevOps need to coexist with their existing hierarchical Service Management frameworks.
DevOps approach started in 2009 and well received by the industry. While there are mature tools in DevOps, the organisation needs to use a “tools stack” that includes multiple tools to implement key aspects of DevOps. The practitioners develop the skills through practical work experience, complemented by generic and tool specific training. There is no assessment that supports DevOps. Please refer the Rating Criteria.
|Longevity||(5 / 5)|
|Industry Adoption||(4 / 5)|
|Tool Support||(4 / 5)|
|Training Support||(3 / 5)|
|Assessment Support||(1 / 5)|
Life Cycle Phases/Domains
DevOps is related the ITIL life cycle phases of:
One of the common issue is to integrating DevOps with organisations existing processes like Change Management. One of the way to achieve the process integration is to treat DevOps process as a “standard change” in which the risks of continual delivery is assessed and managed.
COBIT domains that are related to DevOps are:
- Build, Acquire and Implement
- Deliver, Service and Support
- Monitor, Evaluate and Assess
There is no standard terminology that defines DevOps processes. The processes are build around the principles of collaboration, integration and automation.
Continual Development: Plan Code Build
Development phase of DevOps includes processes for planning, coding and building the product. Typically Agile Project Methodology is used to develop the product involving multiple sprints. Jira tool is one of the examples that facilitates Agile planning.
Source repository and version control is achieved through tools like Git and Ant, Maven, Gradle are some of the tools used for for building/ packaging the code.
This is the stage where the developed software is continuously tested. For Continuous testing, automation testing tools like Seleniumare used. These tools allow parallel testing of the code base. In this phase, use of Docker containers for simulating ‘test environment’ is common. Once the code is tested, it is continuously integrated with the existing code.
In Continual Integration phase the newly developed code is integrated with the existing code base. Since there is continual development of software, the updated code needs to be integrated continuously to provide visibility of changed functionality to the end users. The changed code, should also ensure that there are no errors in the runtime environment, allowing the DevOps team to test the changes and check how it reacts with other changes. Using tools like, Jenkins, one can pull the latest code revision from GIT repository and produce a build which can finally be deployed to test or production server. It can be set to trigger a new build automatically as soon as there is a change in the GIT repository or can be triggered manually on click of a button.
It is the stage where the code is deployed to the production environment. The DevOps team will need to ensure that the code is correctly deployed on all the servers. Since the new code is deployed on a continuous basis, configuration management tools play an important role for executing tasks quickly and frequently. Puppet, Chef are examples of tools that are used in this stage. Container tools also play an important role in maintaining consistency of the code base in development, test, staging and production environments. Docker and Vagrant are examples of container tools. Besides ensuing consistency, the container tools also help in scaling-up and scaling-down of instances easily.
Continuous Feedback: Operate and Monitor
Agility and feedback is an essential feedback is an essential component of DevOps lifecycle. The operational performance monitoring can also be achieved by making use of dedicated monitoring tools which will continuously monitor the application performance and highlight issues. Some of the typical tools used are Splunk, ELK Stack, Nagios.
There are many tools in the DevOps space. XebiaLabs shows a “periodic table” of 120 tools.
The following table shows some of the common tools used in the DevOps lifecycle 1 .
|Planning||Jira||Tools that facilitate Agile Project Planning|
|Source Repository/verison control||Git|
|Version control system for tracking changes in files and coordinating work |
among multiple people. Tacks and provides control over changes to source code,
infrastructure configurations, machine learning models.
|Build automation tools allow to compile code, download required libraries, |
check for dependencies, run tests, and package compiled code into deployable
artifacts such as a JAR, WAR, and ZIP files.
|Automated functional testing, system testing, load testing. Automated testing is fast, not |
prone to human errors, and allows frequent execution of tests to support Continuous Integtration
|Integrate changes from different developers in the team, and keep your application|
deployable at any point or even automatically release to a test or production
environment if the latest version passes all automated tests.
|Manage cloud server consistency using automated configuration enforcement. |
Treat infrastructure as code that can be provisioned and configured in a repeatable way.
The idea is to avoid the configuration drift that makes it so difficult for developers and system administrators to reconcile why an application works in one environment (or server), and not another.
SFIA skill “Systems Integration and Build” is aligned with DevOps as the skill includes build automation and Continuous Integration.
DevOps Agile Skills Association (DASA) provides a competency model for skills and certifications
DASA competency model:
DevOps training can be classified as a Generic Training (tool agnostic) and tool specific training.
DASA offers training programs in DevOps
Be the first to leave a review.