"> DevOps – Process-Symphony – ITSM Knowledge Orchestrators

Search Knowledge

Tag: DevOps

Bamboo

Tool nameBamboo Continuous Integration Server
URLhttps://www.atlassian.com/software/bamboo
Value PropositionBamboo is a continuous integration (CI) server that can be used to automate the release management for a software application, creating a continuous delivery pipeline.
What does this mean?
CI is a software development methodology in which a build, unit tests and integration tests are performed, or triggered, whenever code is committed to the repository, to ensure that new changes integrate well into the existing code base. Integration builds provide early ‘fail fast’ feedback on the quality of new changes.
Release management describes the steps that are typically performed to release a software application, including building and functional testing, tagging releases, assigning versions, and deploying and activating the new version in production

Do you use this tool in organisation?  We want to hear from you!  Please rate how much this tool is leveraged to support the processes in your organisation. You do not need to identify the organisation.  

Please remember. It is not about the “potential capability” of the tool. You have to rate the actual usage within your organisation

Rating Guidelines:

  • 1 or 2: only a subset of processes are supported by the tool
  • 3:  The tool supports our needs. But we start observing some limitations.
  • 4: The tool supports our current and future needs.
  • 5: The tool supports our current and future needs. Integrates well with the eco-systems of other tools.

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.  DevOps practices are included in COBIT 2019 and ITIL 4.

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.

Longevity5 out of 5 stars (5 / 5)
Industry Adoption4 out of 5 stars (4 / 5)
Tool Support4 out of 5 stars (4 / 5)
Training Support3 out of 5 stars (3 / 5)
Assessment Support1 out of 5 stars (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/

Change Management (ITIL v3)

Parent Process Reference Framework:  ITIL

Life Cycle:  Service Transition

Change Management

The purpose of change management is process is to control the life cycle of all changes, enabling beneficial changes to be made with minimum disruption to IT Services. 

The objectives of change management are to: 

  • Respond to the customer’s changing business needs in an efficient manner 
  • Manage the risk of introducing a changed service to a live environment effectively 
  • Ensure are changes are classified and evaluated according to their risk profile 

Related Framework/process – tips for integration

DevOps is related to Change Management. In many large enterprises, ITIL and DevOps need to coexist. One way of achieve this process integration is to treat DevOps as a standard change.

In a standard change the risks of introducing a new change in the live environment is well understood. As a result, the change need not be presented at the normal approval process. 

Another related process to consider to implement DevOps is Release Management. The DevOps related processes can be described as a Release Model.

The Release Model will clearly describe the development, testing, deployment and monitoring activities. The objective is to demonstrate that the risk is understood and managed without going through the approval boards for each release.

Skills

In SFIA 7, Transition Planning and Support skill is covered under  Change Management

https://www.sfia-online.org/en/framework/sfia-7/skills/service-management/service-transition/change-management

Training

ITIL Foundations cover the basics of Transition Planning.

There is focussed training available to cover the Service Transition life cycle