DevOps Code – Software configuration items


Software configuration items Introduction

DevOps Articles

Since the first version of ITIL, the process configuration management has already been identified. In the latest version of 2011, the name of the process was changed to Service & Asset Configuration Management (SACM). However, in the world of software development, a configuration management process is also identified. This is often named Software Configuration Management (SCM). This article is about both these processes and the relationship between them. After that, this article zooms in on the use of Software Configuration Items (SC-I).

Service Asset & Configuration Management (SACM)

The purpose of this process is to define and maintain a logical model of the ICT infrastructure in which the ICT services are related to eachother and to the ICT components needed to provide those ICT services.

Configuration Item (CI)

A CI is the registration of an object (service or product) or the components of an object that is managed by the service organization. Various attributes are assigned to a CI to describe the object or components. Objects for which a CI can be defined are services, software, hardware, communication tools, documents and procedures. Note a CI is just the registration of an object but never the object itself.

Configuration Management Data Base (CMDB)

A CMDB is a database where the CIs and their relationships are defined and related. When designing a CMDB, account must be taken of:

  • Range (scope). The range indicates which objects are described in the CMDB
  • Depth. This indicates how many parent-child relationships are recognized
  • Detail level: This indicates how many attributes should be defined for a CI

These three dimensions are directly and indirectly determined by the SLA. In the SLA, the Products and / or Services are defined. A common misunderstanding about the CMDB is that these physical objects would contain. However, the CMDB is only a database containing data about objects in the form of CIs.

CMDB-baseline

The CMDB-baseline is a defined set of CIs of a particular version that together form a stable service and / or product. For example after a major release, for example, all relevant CIs can be defined as the base line. If later a disturbance occurs, you can look at the changes since the last baseline. If the production environment has become unstable, the baseline will also be used to go to the last baseline.

Software Configuration Management:

In software engineering, software configuration management (SCM or S / W CM) is the task of tracking and checking changes in software, part of the larger cross-disciplinary area of configuration management. SCM practices include audit control and the establishment of baselines. If something goes wrong, SCM can determine what was changed and who changed it. If a configuration is working well, SCM can determine how to replicate it across many hosts [Wikipedia].

Software Configuration Item (S-CI)

An S-CI is the description of an object that is managed by the DevOps development process. An S-CI assigns. Various attributes are assigned to a S-CI to describe the object or components. An S-CI may include the meta data of a third or fourth generation language, an SQL script, a database scheme or any other object that is required to create an application.

Software Configuration Management Data Base (S-CMDB)

An S-CMDB is a database in which the S-CIs are defined and their relationship. A part of the S-CMDB is a baseline. Unlike the CMDB, the S-CMDB is a repository that stores both the source code and the S-CIs (as metadata) of that source code. Tools such as GIT and SVN always give users an integrated image of the software that is in development and control the configuration of the software based on metadata and folder structures.

S-CMDB Baseline

A baseline is an agreed description of the attributes of a product, at a point in time, which serves as a basis for defining change. A change is a movement from this baseline state to a next state. The identification of significant changes in baseline state is the central target of baseline identification [Wikipedia].

Software configuration items Concepts

Usage CMDB

Operations have been using CMDB for decades. All the processes of ITIL make use of the CMDB. Examples are the connection of a CI to an incident to indicate the location of the incident. But also change requests are also expressed by one or more CIs. Also SLA norms are linked to CIs, so the service desk knows what the maximum resolution times of incidents are. The CMDB is thus a central definition of the objects to be managed.

Usage S-CMDB

The S-CMDB concept may be older than the CMDB. The use of the S-CMDB differs from the CMDB. Thus, an S-CMDB describes much smaller objects than the CMDB. More than the S-CMDB, version management of the S-CIs is of fundamental importance. For the purpose of compiling a new baseline, only the approved versions of the S-CIs must be used.

CMDB versus S-CMDB
Figuur 1, CMDB versus S-CMDB

Best Practices for DevOps Code software Configuration Management

A S-CMDB and the CMDB are the basic administration of Dev and respectively OPS. Because these administrations are often unlinked, it is difficult to discover what causes an incident in terms of source code. In addition, it is important to recognize the functions of the S-CMDB for DevOps so that they are filled in properly.

Relationship CMDB en S-CMDB

The first question that commonly is raised when starting with the use of a CMDB and S-CMDB is how to relate these two to each other. Usually, a deployment of an application is registered in the CMDB by creating one or more CI’s and/or registering a new version of one or more CI’s. In terms of the S-CMDB a new release requires a definition of a new version of the baseline. The baseline is used to create a build through the build server. The build also gets a unique number.

It is important to establish a relationship between the CMDB and the S-CMDB. For example, by capturing the Build ID of the application in the CI of the CMDB. As a result, traceability has been created between the product rolled out by OPS and the product produced by DEV.

Figure 2 shows the relationship between the CMDB and the S-CMDB. The indicated relationship is through the Feature / Story relationship.

Relationship between CI and S-CI.
Figure 2, Relationship between CI and S-CI.

Usage S-CMDB

The S-CMDB ensures that the DevOps team is offered the following functionality:

  • Object Definition: Definition of the S-CI from which an application exists. Nowadays because the S-CI also has the infrastructure configuration files (Infrastructure As Code).
  • Version Manager: Prevent versions from being overwritten or lost. Additionally, version management allows for more collaboration between more DevOps employees who are working together for realizing an application.
  • Baselining: Providing a S-CI tag that defines a baseline of S-CIs that belong together and can be transformed by the Build server into object code.
  • Continuity: The S-CMDB makes it possible to return to a previous version.

Often software configuration management is assigned a much larger role, including deployment. However, it is a best practice to have the S-CMDB only include the source code in the sense of a repository. The output of the build process then occurs in the Artefact repository and not in the S-CMDB.

Usage of S-CI

  • Object Definition: An S-CI is defined as a unique object. Some service management tools allow you to relate the S-CI to the CIs. But this is not possible with all tools.
  • Version Manager: To use a version of an S-CI, the SCM tool must provide versioning. There are various S-CMDB architectures with their unique features. A basic principle of version management is that more people can work at the same source code at the same time without losing source code. Additionally, it is necessary that as soon as someone changes a S-CI a new version of the S-CI is created and that meta data is administrated so that is clear: who did check-in, what was changed, when was it changed?
  • Baselining: The S-CIs have a tag indicating by which baseline the S-CI is used to create a build.
  • Continuity: An important feature of the S-CMDB is to make it possible to recreate an application based on the source files. This is necessary because a backup does not always provide a solution.
LinkedIn Group


Discuss with us about this article on LinkedIn.

More information

Related Books:

DevOps Best Practices, ISBN: 9789492618078
Agile Service Management with Scrum, ISBN: 9789071501807

Related training sessions:

Related Article:

Service Management

Samenvatting
DevOps Code - Software configuration items
Artikel
DevOps Code - Software configuration items
Beschrijving
In the world of software development, a configuration management process is identified. This is often named Software Configuration Management (SCM). Integrate that process in DevOps. Use Software configuration items.
Auteur
Publisher Naam
ITpedia
Publisher Logo
Sidebar