A profile is a machine- and human-readable definition that can be used to construct a running operating system environment on a computer. For example, a profile can include systems built by Jumpstart, Kickstart, or VMware images. Profile definitions are stored in XML format inside a Subversion repository.
A profile can have one or more revisions associated with it. Revisions of profiles are revisions of the file itself in the Subversion repository. Because profiles are stored in Subversion, you get access to all the capabilities of a modern version control system. For example, you can perform diff operations between different versions of Profiles and build any arbitrary version of a profile.
A profile refers to binary system packages (for example, RPM or Solaris packages) and system images (for example, VMware images or disk images). The profile by itself is not sufficient to build a system: you still need the binary packages or the system image files referred to by the profile to construct systems from the profile.
The binary system packages and system images are not kept in the Subversion repository. It is the responsibility of the Lab Management administrators to ensure that these older versions of software remain accessible, since they referred to by older profile versions.
Lab Management provides a set of basic profiles to use for a new customer site. As the company's needs change, it might require a new profile. For example, the company wants to build Oracle database machines, and Lab Management accommodates allowing for the modification of existing profiles or the building a new profile from scratch.
The new profile will include the actual packages that the customer requires to do the Oracle work--either by including the Oracle software or adding any associated development tools that are required. The profile could be called, for example, the Oracle Data Profile.
In the future, rather than building a base profile and manually adding packages, the customer can build the Oracle machines using this Oracle Data Profile (and immediately start development). Using Lab Management in this capacity saves time and effort for developers. Consequently, if a customer knows for its particular development work that the developers always need certain packages on their systems, Lab Management can include them in the profile to be used for that specific project.
Once you assign a profile, you can select a version of the profile from another dropdown list. This is a feature that enables you to recreate a machine that you used three months ago or three years ago. All of the previous versions are kept. Your profile is a dynamic piece of software that you modify as time goes by. Each version that you modify is saved in a Subversion repository. All of these versions are available for you to build as needed. Even though you are building a machine today, you could actually build it with a profile that existed well in the past.
If a QA team is performing some troubleshooting work on an old product, for example, it could very quickly recreate the test environment that existed in the past to simulate the same situation. (Without Lab Management, the team would have to go through the effort of researching and rebuilding a machine or machines that existed possibly before they were employed at the job.)
Using Lab Management, you have the ability to reproduce your environment, your profile, the machine that you used at a particular period--provided that you know how far back in time you want to go and what version. You should record this type of information: For product ABC, our final release was build X, tested on Profile Y, for Version Z. Save that information elsewhere (you cannot save it in Lab Management currently).