I am trying to understand this concept called baseline of CIs/CMDB. I know that it is the snapshot of configurations at a specific point in time. But when I try to think of a practical implementation of baselining, it does not seem to ring a bell.

Is a baseline a CI? If so what should be its attributes? Is it a CMDB backup? If so, how should we handle if only a small group of CIs is affected by a release? We wouldnt want to keep a CMDB backup everytime a small group of CIs change.

One of the requirement of best practices is to baseline everytime before a major release. So should we create a backup and keep a mini CMDB ready before everything goes into production with this release?

You touched a very complicated process, Configuration Management activities include to complex (in terms of effort required) activities: Initial Population of the CMDB and the CMDB update.

- A baseline is a CI that has all the attributes you're assigning to any CI that you are not labelling as baseline.

- It's not a CMDB backup. It's a configuration/status backup for CIs in use.
It can be used for many purposes, the most important being a basis for ITSM, and for backing out a release.

- The back out plan of each release includes saving the last problem free (if I can call it this way) operational status of affected CIs. It is a baseline since it covers all the CIs attributes and are taken at a specific point in time. A baseline can be the CI at its initial stage, but it doesn't have to.

- The baseline have to be the latest problem free (here I go again) configuration you can roll back to in case of a non successful release, or use in case a disaster is invoked. Otherwise, you'll be rollong back to an outdated status which is not desirable.

CMDB backup is a database backup that includes the CIs, no need for confusing it.

If a baseline is a CI, then it should have its own attributes. Typically what are the attributes you would have for a CI type called baseline. Also, what relationship types would you define from one CI to its several baseline CIs?

A baseline is a frozen state that typically represents a reference for a new build.

It is very commonly used in SW development. For example, if for Product "A", I have Releases 3.0.0, 3.1.7, and 3.4.4 in my Release Catalog, I may want to start working on a new Release that we'll call 4.0.0. In order to have a starting point, we will pick an existing Release (not always the most recent production Release, such as 3.4.4) and use that existing Release to baseline the new Release upon. So, for example, we might initialize the new Release 4.0.0 with all of the CIs from the existing Release 3.1.7 so that we can start 4.0.0 from that state. This would mean we've created a new Release 4.0.0 that was "baselined" upon the existing Release 3.1.7.

So, in SW speak, a new Release is created, based on an existing and "specific" Release that acts as the baseline reference for the new Release. This new Release now has a "baseline dependency" on the baseline Release.

For infrastructure, a baseline usually represents a frozen standard build that can be repeated, over and over again, when building assets of the same type/category. For example, if we standardize the build of a server and it is out intent to only have that standard build in place, that build is considered a baseline, from which to work from.

I have heard the "baseline" term used in the CMDB world as a snapshot in time before any reconciliation is done. If CI's have been changed, and there is more than one source of the information, some reconciliation is done on the baseline data to determine which source is the authority.

So what should a baseline contain? My company is new to Configuration Management, and our tool as it stands doesnt have baselining functionality. So I'm manually looking to build baseline (probably using excel). I have an idea what should go in but I'd like to hear how others have approached this.

So what should a baseline contain? My company is new to Configuration Management, and our tool as it stands doesnt have baselining functionality. So I'm manually looking to build baseline (probably using excel). I have an idea what should go in but I'd like to hear how others have approached this.

A baseline is a set of ingredients and directions that it takes to create something.

Using a non-technical example, let's bake a cake that we call Chocolate Cake, Release 1.0...

1: You need the ingredients
2: You need the directions

Those two elements represent all components of a repeatable configuration for creating that Chocolate Cake.

Now, let's say you want to change the recipe a little. In this case we want to create a new derivative of the original cake that we call Chocolate Cake, Release 2.0. In order to create this new cake, we "start" with the recipe for the original Chocolate Cake, Release 1.0. This means that 1.0 is a baseline for 2.0.

It is the same with Products, Assets, Services, People, Organizations, etc. They all have "Configurations" of some sort or another. What you put into the Configuration Definition of any of those entities are the components (ingredients) and the directions for composition, testing, distribution, installation, execution, rollback, etc.

A baseline typically starts with your current state.

Typically, every time you freeze a Release of a Product, it becomes a baseline for a future Release. This will ensure that the future Release will encompass all work done in the previous Release.