Search Posts

DevOps

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.

Context Diagram

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.  

Summary Ratings

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

DevOps Processes

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  AntMavenGradle are some of the tools used for for building/ packaging the code.

Testing

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.

Continual Integration

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.

Continuous Deployment

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. PuppetChef 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 SplunkELK StackNagios.

Technology Tools

There are many tools in the DevOps space. XebiaLabs shows a “periodic table” of 120 tools.

https://xebialabs.com/periodic-table-of-devops-tools/

The following table shows some of the common tools used in the DevOps lifecycle 1 .

PhaseToolsDescription
PlanningJiraTools that facilitate Agile Project Planning
Source Repository/verison controlGit
GitHub
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.
BuildGradle
maven
Bamboo
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.
TestSelenium
WireMock
Artillery
Bamboo
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
Continuous IntegrationBamboo

Jenkins

Spinnaker
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.
Continuous DeploymentBamboo

Puppet Labs

Chef

Ansible

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.

Skills

SFIA skill “Systems Integration and Build” is aligned with DevOps as the skill includes  build automation and Continuous Integration.

https://www.sfia-online.org/en/framework/sfia-7/skills/solution-development-and-implementation/installation-and-integration/systems-integration

DevOps Agile Skills Association (DASA) provides a competency model for skills and certifications

https://www.devopsagileskills.org/

DASA competency model:

https://scan.devopsagileskills.org

Training

DevOps training can be classified as a Generic Training (tool agnostic) and tool specific training.

https://devopsinstitute.com/certifications/

DASA offers training programs in DevOps

https://www.devopsagileskills.org/

https://aws.amazon.com/certification/certified-devops-engineer-professional/

https://www.alctraining.com.au/course/devops-foundation/

https://academy.microsoft.com/en-us/professional-program/tracks/devops/

https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training

ITIL

COBIT

References

https://www.infoq.com/articles/devops-toolchain

https://www.agilestacks.com/products/devops-stack

https://www.edureka.co/blog/what-is-devops/

{{ reviewsOverall }} / 5 Users (1 vote)
Relevance0
What people say... Leave your rating
Order by:

Be the first to leave a review.

Verified
/ 5
{{{review.rating_comment | nl2br}}}

Show more
{{ pageNumber+1 }}
Leave your rating

Review and Rating Terms I agree to review and rate the tools without any bias and conflict of interest. I agree that the comments may be edited for clarity or removed by the editors.

  1. https://www.infoq.com/articles/devops-toolchain