<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Configuration Management Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/tag/configuration-management/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/tag/configuration-management/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Sat, 27 Feb 2021 09:55:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>General SCM Interview Questions</title>
		<link>https://www.scmgalaxy.com/tutorials/integration-of-cm-and-case-tools/</link>
					<comments>https://www.scmgalaxy.com/tutorials/integration-of-cm-and-case-tools/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 07:42:39 +0000</pubDate>
				<category><![CDATA[Interview Questions & Answers]]></category>
		<category><![CDATA[Build Interview]]></category>
		<category><![CDATA[Case]]></category>
		<category><![CDATA[CASE Tools]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Perforce]]></category>
		<category><![CDATA[SCM Interview Questions]]></category>
		<category><![CDATA[Software Configuration Management Interview Questions]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4497</guid>

					<description><![CDATA[<p>The previous chapters outlined the state of CM technology from the standpoint of a spectrum of concepts underlying automated CM, [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/integration-of-cm-and-case-tools/">General SCM Interview Questions</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The previous chapters outlined the state of CM technology from the standpoint of a spectrum of concepts underlying automated CM, and from the standpoint of the reflection of some of these concepts in commercial CM products. Clearly, no CM product supports all CM concepts; similarly, not all CM concepts are necessary in the support of all possible end-user requirements. That is, different CM tools (and the concepts which underlie these tools) may be required by different organizations or projects, or within projects at different  phases of the software development life cycle. This observation, coupled with the observed,continuing industry effort to adopt computer-aided software engineering (CASE) tools, leads us to conclude that integration is key to providing automated CM support in software development environments.<br />
In this chapter we define what we mean by integration by way of a three-level model of integration. We illustrate where CM integration fits into this three-level model.  e then describe the advantages and disadvantages of current approaches to achieving integration in  software development environments. We close with a brief discussion on the relationship between future integration technology and the three levels of integration.</p>
<p><strong>CM Services in Software Environments: A Question of Integration</strong></p>
<p>There is no concensus regarding where CM services should reside in software environment architectures, despite the diversity of approaches that have been explored. For example, CM services have been offered via:</p>
<p><strong>· Tools such as RCS, SCCS, CCC.<br />
· Operating system extensions at the file-system level such as DSEE and NSE.<br />
· Shared data models such as in the CIS specifications [18] and the PCTE PACT [53] environment.</strong></p>
<p>A further complication is the emergence of a robust CASE tool industry, wherein many popular CASE tools provide their own tool-specific repository and CM services. As a result, CM functions are increasingly provided by, and distributed across, several CASE tools in an environment.<br />
We have found it useful to think of integration in terms of a three-level model. This model, illustrated in Figure 5-1, corresponds to the ANSI/SPARC [48] three-schema  pproach used to describe database architectures. A useful intuition is that this correspondence is more than accidental. The bottom level of integration, called &#8220;mechanism&#8221; integration, corresponds to the ANSI/SPARC physical schema level. Mechanism integration addresses the implementation aspects of software integration, including, but not limited to: software interfaces provided by the environment infrastructure, e.g., operating system or environment framework interfaces;</p>
<p>software interfaces provided by individual tools in the environment; and architectural aspects of the tools, such as process structure (e.g., client/server) and data management structure (derivers, data dictionary, database). In the case of CM, mechanism integration can refer to integration with CM systems such as SCCS, RCS, CCC and DSEE; and CM implementation aspects such as transparent repositories and other operating-systems level CM services.</p>
<p>The middle level of integration, called &#8220;services&#8221; integration, corresponds to the ANSI/SPARC logical schema level. Services refers to the high-level functions provided by tools, and integration at this level can be regarded as the specification of how services can be related in a coherent fashion. In the case of CM, these services refer to elements of the spectrum of concepts discussed in chapter 3, e.g., workspaces and transactions, and services integration constitutes a kind of unified model of CM services.</p>
<p>The top level of integration, called &#8220;process&#8221; integration, corresponds to the ANSI/SPARC external schema (also called &#8220;end-user&#8221;) level. Process integration can be regarded as a kind of process specification for how software will be developed; this specification can define a view of the process from many perspectives, spanning individual roles through larger organizational pespectives. In the case of CM, process integration refers to policies and procedures for carrying out CM activities.</p>
<p>Integration occurs within each of these levels of integration; thus, mechanisms are inte- 34 ATR grated with mechanisms, services with services, and process elements with process elements. There are also relationships that span the levels. The relationship between the mechanism level and the services level is an implementation relationship: a CM concept in  he services layer may be implemented by different tools in the mechanism level, and conversely, a single mechanism may implement more than one CM concept. The relationship between the services level and the process level is a process adaptation relationship: different CM services may be combined, and tuned, to support different process requirements.</p>
<p><a href="http://community.scmgalaxy.com/action/file/download?file_guid=1035"><img decoding="async" src="http://community.scmgalaxy.com/mod/file/thumbnail.php?file_guid=1035&amp;size=large" alt="image" /></a></p>
<p><strong>This three-level model provides</strong> a working context for understanding integration. For the moment, however, existing integration technology does not match exactly this somewhat idealized model of integration. For example, many services provided by CASE tools (including CM) embed process constraints that should logically be separate, i.e., reside in the process level. Similarly, tool services are often closely coupled to particular implementation techniques.</p>
<p>The level of adaptability required of integrating CM—both in terms of adaptability for projectspecific requirements as well as adaptability to multiple underlying CM<br />
implementations—pushes the limits of available environment integration techniques. The following sections describe the current state of integration technology and its limitations. The next chapter discusses how future generation integration technology can address these shortcomings.</p>
<p><strong>Reference: </strong><br />
The State of Automated Configuration Management.<br />
A. Brown, S. Dart, P. Feiler, K. Wallnau</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/integration-of-cm-and-case-tools/">General SCM Interview Questions</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/integration-of-cm-and-case-tools/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Definition of Configuration Management</title>
		<link>https://www.scmgalaxy.com/tutorials/definition-of-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/definition-of-configuration-management/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 07:40:58 +0000</pubDate>
				<category><![CDATA[Concept & Definition]]></category>
		<category><![CDATA[audit and review]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration Management Definition]]></category>
		<category><![CDATA[Configuration Management Introduction]]></category>
		<category><![CDATA[Control]]></category>
		<category><![CDATA[Identification]]></category>
		<category><![CDATA[status accounting]]></category>
		<category><![CDATA[What is Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4495</guid>

					<description><![CDATA[<p>Software CM is a discipline for controlling the evolution of software systems. Classic discussions about CM are given in texts [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/definition-of-configuration-management/">Definition of Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Software CM is a discipline for controlling the evolution of software systems. Classic discussions about CM are given in texts such as [6] and [8]. A standard definition taken from IEEE standard 729-1983 [42] highlights the following operational aspects of CM:</p>
<ul>
<li>Identification: an identification scheme reflects the structure of the product, identifies components and their types, making them unique and accessible in some form.</li>
<li>Control: controlling the release of a product and changes to it throughout the lifecycle by having controls in place that ensure consistent software via the creation of a baseline product.</li>
<li>Status Accounting: recording and reporting the status of components and change requests, and gathering vital statistics about components in the product.</li>
<li>Audit and review: validating the completeness of a product and maintaining consistency among the components by ensuring that the product is a welldefined collection of components.</li>
</ul>
<p>The definition includes terminology such as configuration item, baseline, release and version. When analyzing CM systems—automated tools that provide CM—it becomes evident that these incorporate functionality of varying degrees to support the above definition. Some CM systems provide functionality that goes beyond the above definition though. This is due (among other reasons) to the recognition of different user roles, disparate operating environments such as heterogeneous platforms, and programming-in-the-large support such as enabling teams of software programmers to work on large projects synergistically. To capture this extra functionality, it is necessary to broaden the definition of CM to include:</p>
<ul>
<li>Manufacture: managing the construction and building of the product in an effective and optimal manner.</li>
<li>Process management: ensuring the carrying out of the organization’s procedures, policies and lifecycle model.</li>
<li>Team work: controlling the work and interactions between multiple users on a product.</li>
</ul>
<p>In summary, the capabilities provided by existing CM systems encompass identification, control, status accounting, audit and review, manufacture, process management and team work.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/definition-of-configuration-management/">Definition of Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/definition-of-configuration-management/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Roles of CM Users and Views of CM</title>
		<link>https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/</link>
					<comments>https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 07:39:01 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[CM Users]]></category>
		<category><![CDATA[CM Users Roles]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[Roles of CM Users]]></category>
		<category><![CDATA[Views of CM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4493</guid>

					<description><![CDATA[<p>Roles of CM Users and Views of CM Different views of CM emanate from the different roles and concerns of [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/">Roles of CM Users and Views of CM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Roles of CM Users and Views of CM</strong><br />
Different views of CM emanate from the different roles and concerns of people in an organization.</p>
<p>A simple, typical, CM user scenario of an organization is described in order to present the various roles and the subsequent views of CM support. The scenario involves various people with different responsibilities: a project manager who is in charge of a software group, a configuration manager who is in charge of the CM procedures and policies, the programmers who are responsible for developing and maintaining the software product, the tester who validates the correctness of the product, the quality assurance (QA) manager who ensures the high quality of the product, and the customer who uses the product. Each role comes with its own goals and tasks. For the project manager, major goals are to ensure that the product is developed within a certain time frame and meets the customer’s  requirements. Hence, the manager monitors the progress of development and recognizes and reacts to problems. This is done by generating and analyzing reports about the status of the software system and by performing reviews on the system.</p>
<p>The goals of the configuration manager are to ensure that procedures and policies for creating,<br />
changing, and testing of code are defined and followed, as well as to make information about the project accessible. To implement techniques for maintaining control over code changes, this manager introduces mechanisms for making official requests for changes, for evaluating changes (via a Change Control Board (CCB) that is responsible for approving changes to the software system), and for authorizing changes. The manager creates and disseminates task lists for the programmers and basically creates the project context. Also, the manager collects statistics about components in the software system, such as information determining which components in the system are problematic.</p>
<p>For the programmers, the goal is to work effectively in creating the product. This means programmers do not unnecessarily interfere with each other in the creation and testing of code and in the production of supporting documents. But, at the same time, they communicate and coordinate efficiently. They use tools that help build a consistent software product, and they communicate and coordinate by notifying one another about tasks required and tasks completed. Changes are propagated between each other’s work by merging those changes and resolving any conflicts. A history is kept of the evolution of all components in the product along with a log of what actually changed and reasons for those<br />
changes. The programmers have their own work area for creating, changing, testing, and integrating code. At a certain point, the code is made into a baseline from which further development continues and from which parallel development for variants of other target machines emerges.<br />
The tester’s goal is to make sure every component of the product is tested and found satis-factory. This involves testing a particular version of the product and keeping a record of which tests apply to which version of the product along with the results of the tests. Any errors are reported back to the appropriate people, tracked and fixes are put through regression testing.</p>
<p>The Quality Assurance (QA) manager’s goal is to ensure the high quality of the product. This means that certain procedures and policies must be fulfilled with the appropriate approval. Bugs must be fixed and fixes propagated to the appropriate variants of the product with the correct amount of testing applied to each variant. Customer complaints about the product must be followed up.</p>
<p>The customers use the product — most likely, different customers use different versions and variants of it. Customers follow certain procedures for requesting changes and for indicating bugs and improvements for the product.</p>
<p>As a result of the various roles, an organization ends up with several views of CM. These views range from corporate CM (CCM) and project CM (PCM) to developer CM (DCM) and application CM (ACM). The former two views treat CM as a management and control discipline emphasizing the process aspect of CM, while the latter two views treat CM as a developer support function emphasizing tool support for CM. CCM focuses on maintaining CM information for a product, whose data is the basis for strategic impact analysis and process improvement. PCM focuses on managing change to a product through formal control processes such as change authorization via CCBs and configuration managers guarding CM repositories. DCM focuses on supporting developers (programmers) performing actual changes, maintaining history of actual changes, and providing stability and consistency through system build and team support. ACM focuses on configuration of applications as they are deployed, addressing issues of installation management, as well as dynamic configuration and reconfiguration. Ideally, a CM system suited to the views should support all these goals, roles and tasks.</p>
<p><strong>Reference: </strong><br />
The State of Automated Configuration Management<br />
A. Brown, S. Dart, P. Feiler, K. Wallnau</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/">Roles of CM Users and Views of CM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Configuration Management</title>
		<link>https://www.scmgalaxy.com/tutorials/configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/configuration-management/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 07:34:56 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4489</guid>

					<description><![CDATA[<p>By Bob Aiello 2876 days ago Comments (2) configuration management jobs careers Hey everyone &#8211; we are having a discussion about getting started [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/configuration-management/">Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="elgg-listing-full elgg-content clearfix" data-guid="958">
<div class="elgg-image-block clearfix elgg-listing-full-header">
<div class="elgg-body">
<div class="elgg-listing-summary-subtitle elgg-subtext">By <a href="http://community.scmgalaxy.com/blog/owner/robertjaiello">Bob Aiello</a> <time title="22 February 2010 @ 8:19pm" datetime="2010-02-22T20:19:07-07:00">2876 days ago</time> <a href="http://community.scmgalaxy.com/blog/view/958/configuration-management#comments">Comments (2)</a></div>
<div class="clearfix">
<ul class="elgg-tags">
<li></li>
<li class="elgg-tag"><a href="http://community.scmgalaxy.com/search?q=configuration+management+jobs+careers&amp;search_type=tags" rel="tag">configuration management jobs careers</a></li>
</ul>
</div>
</div>
</div>
<div class="elgg-output blog-post">
<p>Hey everyone &#8211; we are having a discussion about getting started in CM &#8211; in the CM Crossroads forums <a href="http://bit.ly/awKvKA">http://bit.ly/awKvKA</a>. Please feel free to respond here, in the forums or contact me directly at <a href="mailto:bob.aiello@ieee.org">bob.aiello@ieee.org</a></p>
<p>Bob Aiello<br />
Editor in Chief<br />
CM Crossroads<br />
<a href="http://www.linkedin.com/in/BobAiello">http://www.linkedin.com/in/BobAiello</a></p>
<p>______________________________________________________________</p>
<p>Hi Rajesh &#8211; did you actually &#8220;test&#8221; the link, that I posted, before saying that it was &#8220;illegal&#8221;. It resolves just fine and it points to an active discussion on Getting Started in Configuration Management.</p>
<p>Hi bagaloreorbit &#8211; I DID SAY &#8220;Please feel free to respond here&#8230;&#8221; &#8211; didn&#8217;t I???? Gentlemen &#8211; I have been promoting Configuration Management in virtual communities for many many years. CM professionals are true corporate citizens who share their knowledge and expertise. Let&#8217;s model that corporate citizenship. Feel free to send me an email directly at <a href="mailto:Bob.Aiello@ieee.org" rel="nofollow">Bob.Aiello@ieee.org</a> or on skype: BobAiello.</p>
<p>&nbsp;</p>
</div>
</div>
<div id="comments" class="elgg-comments blog-comments">
<ul class="elgg-list elgg-list-entity">
<li id="elgg-object-43134" class="elgg-item elgg-item-object elgg-item-object-comment">
<div class="elgg-image-block clearfix">
<div class="elgg-image">
<div class="elgg-avatar elgg-avatar-tiny"><a class="" href="http://community.scmgalaxy.com/profile/rajeshkumar"><img decoding="async" class="" title="Rajesh Kumar" src="http://community.scmgalaxy.com/serve-file/e0/l1481295947/di/c0/DvX3nSE-uqKjjX5cKaVIDgy-EEgV_Q5LK1iM9vbQUL0/1/84/profile/84tiny.jpg" alt="Rajesh Kumar" /></a></div>
</div>
<div class="elgg-body"><a name="comment-43134"></a></p>
<div class="mbn"><a href="http://community.scmgalaxy.com/profile/rajeshkumar">Rajesh Kumar</a> <span class="elgg-subtext"><a href="http://community.scmgalaxy.com/comment/view/43134/958"><time title="24 February 2010 @ 1:41am" datetime="2010-02-24T01:41:06-07:00">2875 days ago</time></a></span></p>
<div class="elgg-output elgg-inner" data-role="comment-text">
<p>Hi Robert,</p>
<p>the link which you have given for CM crossroads is false. I would request you to correct the link as soon as possible. its violating the community rules as you are providing false link.</p>
<p>cm Crossroads link is:<cite>www.<strong>cmcrossroads</strong>.com</cite></p>
</div>
</div>
</div>
</div>
</li>
<li id="elgg-object-43133" class="elgg-item elgg-item-object elgg-item-object-comment">
<div class="elgg-image-block clearfix">
<div class="elgg-image">
<div class="elgg-avatar elgg-avatar-tiny"><a class="" href="http://community.scmgalaxy.com/profile/bangaloreorbit"><img decoding="async" class="" title="bangaloreorbit" src="http://community.scmgalaxy.com/serve-file/e0/l1481295942/di/c0/ah6u7quiTaBcQMhjzP0xoX1T0uI0xyCnKqaSPbXmeQI/1/49/profile/49tiny.jpg" alt="bangaloreorbit" /></a></div>
</div>
<div class="elgg-body"><a name="comment-43133"></a></p>
<div class="mbn"><a href="http://community.scmgalaxy.com/profile/bangaloreorbit">bangaloreorbit</a> <span class="elgg-subtext"><a href="http://community.scmgalaxy.com/comment/view/43133/958"><time title="24 February 2010 @ 1:50am" datetime="2010-02-24T01:50:50-07:00">2875 days ago</time></a></span></p>
<div class="elgg-output elgg-inner" data-role="comment-text">
<p>This is Short url to cm-crosswords.</p>
<p>Robert, I guess we can discuss here same topics instead of moving multiple platform <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
</div>
</div>
</div>
</div>
</li>
</ul>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/configuration-management/">Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/configuration-management/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>5 Keys to Automating Configuration Management for Application Infrastructure</title>
		<link>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/</link>
					<comments>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 09:55:31 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Automate]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4460</guid>

					<description><![CDATA[<p>One of the trends being discussed in business, among vendors and in the analyst community is the importance of automating [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/">5 Keys to Automating Configuration Management for Application Infrastructure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>One of the trends being discussed in business, among vendors and in the analyst community is the importance of automating the functions performed by IT. Growing demands by the business, tight budgets and compliance pressures together accentuate the need for IT to be more agile, efficient and responsive to business stakeholders.</p>
<p>Naturally, vendors rush into this environment, each touting the unique benefits of its solution set and the urgency to move forward immediately.  A key area targeted for IT automation is the area of ‘configuration management.’  As it relates to automating day to day IT functions, configuration management can mean many different things: patch management, server and network management or others.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/">5 Keys to Automating Configuration Management for Application Infrastructure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Chef configuration management interview questions and answers &#124; Chef Interview Q&#038;A</title>
		<link>https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers-2/</link>
					<comments>https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers-2/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 02 Sep 2015 14:34:19 +0000</pubDate>
				<category><![CDATA[Interview Questions & Answers]]></category>
		<category><![CDATA[Answers]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Chef]]></category>
		<category><![CDATA[Chef Configuration Management Interview]]></category>
		<category><![CDATA[Chef Interview]]></category>
		<category><![CDATA[Chef Interview Q&A]]></category>
		<category><![CDATA[Chef Interview questions and answers]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[List of chef Interview questions and answers]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Questions]]></category>
		<category><![CDATA[Top]]></category>
		<category><![CDATA[Top chef Interview questions and answers]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2015/09/02/chef-configuration-management-interview-questions-and-answers-2/</guid>

					<description><![CDATA[<p>Source &#8211; learn.chef.io What is a resource? Answer- A resource represents a piece of infrastructure and its desired state, such [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers-2/">Chef configuration management interview questions and answers | Chef Interview Q&#038;A</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3372 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/09/chef-interview-questions-an.png" alt="chef-interview-questions-and-answers" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/09/chef-interview-questions-an.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/09/chef-interview-questions-an-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><strong>Source &#8211; <a href="http://learn.chef.io" target="_blank" rel="noopener">learn.chef.io</a></strong></p>
<p><strong>What is a resource?</strong><br />
<strong>Answer-</strong> A resource represents a piece of infrastructure and its desired state, such as a package that should be installed, a service that should be running, or a file that should be generated.</p>
<p><strong>Question: What is a recipe?</strong><br />
<strong>Answer- </strong>A recipe is a collection of resources that describes a particular configuration or policy. A recipe describes everything that is required to configure part of a system. Recipes do things such as:</p>
<p>install and configure software components.<br />
manage files.<br />
deploy applications.<br />
execute other recipes.</p>
<p><strong>Question: What happens when you don&#8217;t specify a resource&#8217;s action?</strong><br />
<strong>Answer- </strong>When you don&#8217;t specify a resource&#8217;s action, Chef applies the default action.</p>
<p><strong>Question: Are these two recipes the same?</strong></p>
<pre>package 'httpd'</pre>
<pre>service 'httpd' do    action [:enable, :start]  end</pre>
<p>&amp;&amp;</p>
<pre>service 'httpd' do    action [:enable, :start]    end</pre>
<pre>package 'httpd'</pre>
<p><strong>Answer-</strong><br />
No, they are not. Remember that Chef applies resources in the order they appear. So the first recipe ensures that the httpd package is installed and then configures the service. The second recipe configures the service and then ensures the package is installed.</p>
<p><strong>Question: The second recipe may not work as you&#8217;d expect because the service resource will fail if the package is not yet installed.</strong></p>
<p>Are these two recipes the same?</p>
<pre>package 'httpd'</pre>
<pre>service 'httpd' do    action [:enable, :start]    end</pre>
<pre>package 'httpd'</pre>
<pre>service 'httpd' do    action [:start, :enable]    end</pre>
<p><strong>Answer- </strong><br />
No, they are not. Although both recipes ensure that the httpd package is installed before configuring its service, the first recipe enables the service when the system boots and then starts it. The second recipe starts the service and then enables it to start on reboot.</p>
<p><strong>Are these two recipes the same?</strong></p>
<p>file &#8216;/etc/motd&#8217; do<br />
owner &#8216;root&#8217;<br />
group &#8216;root&#8217;<br />
mode &#8216;0755&#8217;<br />
action :create<br />
end</p>
<p>file &#8216;/etc/motd&#8217; do<br />
action :create<br />
mode &#8216;0755&#8217;<br />
group &#8216;root&#8217;<br />
owner &#8216;root&#8217;<br />
end</p>
<p><strong>Answer- </strong><br />
Yes, they are! Order matters with a lot of things in Chef, but you can order resource attributes any way you want.</p>
<p><strong>Question &#8211; </strong><br />
Write a service resource that stops and then disables the httpd service from starting when the system boots.</p>
<p><strong>Answer &#8211;</strong><br />
service &#8216;httpd&#8217; do<br />
action [:stop, :disable]<br />
end</p>
<p><strong>How does a cookbook differ from a recipe?</strong><br />
A recipe is a collection of resources, and typically configures a software package or some piece of infrastructure. A cookbook groups together recipes and other information in a way that is more manageable than having just recipes alone.</p>
<p>For example, in this lesson you used a template resource to manage your HTML home page from an external file. The recipe stated the configuration policy for your web site, and the template file contained the data. You used a cookbook to package both parts up into a single unit that you can later deploy.</p>
<p><strong>How does chef-apply differ from chef-client?</strong></p>
<p>chef-apply applies a single recipe; chef-client applies a cookbook.</p>
<p>For learning purposes, we had you start off with chef-apply because it helps you understand the basics quickly. In practice, chef-apply is useful when you want to quickly test something out. But for production purposes, you typically run chef-client to apply one or more cookbooks.</p>
<p>You&#8217;ll learn in the next module how to run chef-client remotely from your workstation.</p>
<p><strong>What&#8217;s the run-list?</strong></p>
<p>The run-list lets you specify which recipes to run, and the order in which to run them. The run-list is important for when you have multiple cookbooks, and the order in which they run matters.</p>
<p><strong>What are the two ways to set up a Chef server?</strong></p>
<p>Install an instance on your own infrastructure.<br />
Use hosted Chef.</p>
<p><strong>What&#8217;s the role of the Starter Kit?</strong><br />
The Starter Kit provides certificates and other files that enable you to securely communicate with the Chef server.</p>
<p><strong>Where can you get reusable cookbooks that are written and maintained by the Chef community?</strong><br />
Chef Supermarket, https://supermarket.chef.io.</p>
<p><strong>What&#8217;s the command that enables you to interact with the Chef server?</strong><br />
knife</p>
<p><strong>What is a node?</strong><br />
A node represents a server and is typically a virtual machine, container instance, or physical server – basically any compute resource in your infrastructure that&#8217;s managed by Chef.</p>
<p><strong>What information do you need to in order to bootstrap?</strong><br />
You need:</p>
<p>your node&#8217;s host name or public IP address.<br />
a user name and password you can log on to your node with.<br />
Alternatively, you can use key-based authentication instead of providing a user name and password.</p>
<p><strong>What happens during the bootstrap process?</strong><br />
During the bootstrap process, the node downloads and installs chef-client, registers itself with the Chef server, and does an initial checkin. During this checkin, the node applies any cookbooks that are part of its run-list.</p>
<p><strong>Which of the following lets you verify that your node has successfully bootstrapped?</strong></p>
<p>The Chef management console.<br />
knife node list<br />
knife node show<br />
You can use all three of these methods.</p>
<p><strong>What is the command you use to upload a cookbook to the Chef server?</strong><br />
knife cookbook upload</p>
<p><strong>How do you apply an updated cookbook to your node?</strong><br />
We mentioned two ways.</p>
<p>Run knife ssh from your workstation.<br />
SSH directly into your server and run chef-client.<br />
You can also run chef-client as a daemon, or service, to check in with the Chef server on a regular interval, say every 15 or 30 minutes.</p>
<p>Update your Apache cookbook to display your node&#8217;s host name, platform, total installed memory, and number of CPUs in addition to its FQDN on the home page.</p>
<p>Update index.html.erb like this.<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;h1&gt;hello from &lt;%= node[&#8216;fqdn&#8217;] %&gt;&lt;/h1&gt;</p>
<p>&lt;pre&gt;<br />
&lt;%= node[&#8216;hostname&#8217;] %&gt;<br />
&lt;%= node[&#8216;platform&#8217;] %&gt; &#8211; &lt;%= node[&#8216;platform_version&#8217;] %&gt;<br />
&lt;%= node[&#8216;memory&#8217;][&#8216;total&#8217;] %&gt; RAM<br />
&lt;%= node[&#8216;cpu&#8217;][&#8216;total&#8217;] %&gt; CPUs<br />
&lt;/pre&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>Then upload your cookbook and run it on your node.</p>
<p><strong>What would you set your cookbook&#8217;s version to once it&#8217;s ready to use in production?</strong></p>
<p>According to Semantic Versioning, you should set your cookbook&#8217;s version number to 1.0.0 at the point it&#8217;s ready to use in production.</p>
<p><strong>What is the latest version of the haproxy community cookbook?</strong></p>
<p>To know the latest version of any cookbook on Chef Supermarket, browse to its page and view the latest version from the version selection box.</p>
<p>Or, get the info from the knife cookbook site command, like this.</p>
<p>knife cookbook site show haproxy | grep latest_version<br />
latest_version: http://cookbooks.opscode.com/api/v1/cookbooks/haproxy/versions/1.6.6</p>
<p><strong>Create a second node and apply the awesome_customers cookbook to it. How long does it take?</strong></p>
<p>You already accomplished the majority of the tasks that you need. You wrote the awesome_customers cookbook, uploaded it and its dependent cookbooks to the Chef server, applied the awesome_customers cookbook to your node, and verified that everything&#8217;s working.</p>
<p>All you need to do now is:</p>
<p>Bring up a second Red Hat Enterprise Linux or CentOS node.<br />
Copy your secret key file to your second node.<br />
Bootstrap your node the same way as before. Because you include the awesome_customers cookbook in your run-list, your node will apply that cookbook during the bootstrap process.<br />
The result is a second node that&#8217;s configured identically to the first one. The process should take far less time because you already did most of the work.</p>
<p>Now when you fix an issue or add a new feature, you&#8217;ll be able to deploy and verify your update much more quickly!</p>
<p><strong>What&#8217;s the value of local development using Test Kitchen?</strong></p>
<p>Local development with Test Kitchen:</p>
<p>enables you to use a variety of virtualization providers that create virtual machine or container instances locally on your workstation or in the cloud.<br />
enables you to run your cookbooks on servers that resemble those that you use in production.<br />
speeds up the development cycle by automatically provisioning and tearing down temporary instances, resolving cookbook dependencies, and applying your cookbooks to your instances.</p>
<p><strong>What is VirtualBox? What is Vagrant?</strong></p>
<p>VirtualBox is the software that manages your virtual machine instances.</p>
<p>Vagrant helps Test Kitchen communicate with VirtualBox and configures things like available memory and network settings.</p>
<p>Verify that your motd cookbook runs on both CentOS 6.6 and CentOS 6.5.</p>
<p>Your motd cookbook is already configured to work on CentOS 6.6 as well as CentOS 6.5, so you don&#8217;t need to modify it.</p>
<p>To run it on CentOS 6.5, add an entry to the platforms section of your .kitchen.yml file like this.</p>
<pre>---       driver:       name: vagrant</pre>
<pre>provisioner:       name: chef_zero</pre>
<pre>platforms:       - name: centos-6.6       driver:       box: opscode-centos-6.6       box_url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.6_chef-provisionerless.box       - name: centos-6.5       driver:       box: opscode-centos-6.5       box_url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box</pre>
<pre>suites:       - name: default       run_list:       - recipe[motd::default]       attributes:</pre>
<p>In many cases, Test Kitchen can infer the box and box_url parameters, which specify the name and location of the base image, or box. We specify them here to show you how to use them.</p>
<p>Run kitchen list to see the matrix of test instances that are available. Here, we have two platforms – CentOS 6.5 and CentOS 6.6 – multiplied by one suite – default.</p>
<p>$kitchen list</p>
<pre>Instance           Driver   Provisioner  Verifier  Transport  Last Action default-centos-66  Vagrant  ChefZero     Busser    Ssh        &lt;Not Created&gt; default-centos-65  Vagrant  ChefZero     Busser    Ssh        &lt;Not Created&gt;</pre>
<p>Run kitchen converge to create the instances and apply the motd cookbook.</p>
<pre>$kitchen converge    -----&gt; Starting Kitchen (v1.4.0)    -----&gt; Creating &lt;default-centos-66&gt;...    Bringing machine 'default' up with 'virtualbox' provider...    [...]    Running handlers:    Running handlers complete    Chef Client finished, 1/1 resources updated in 10.372334751 seconds    Finished converging &lt;default-centos-66&gt; (3m52.59s).    -----&gt; Creating &lt;default-centos-65&gt;...    Bringing machine 'default' up with 'virtualbox' provider...    [...]    Running handlers:    Running handlers complete    Chef Client finished, 1/1 resources updated in 5.32753132 seconds    Finished converging &lt;default-centos-65&gt; (10m12.63s).  -----&gt; Kitchen is finished. (19m47.71s)</pre>
<p>Now to confirm that everything&#8217;s working, run kitchen login. But this time, you need to provide the instance name so that Test Kitchen knows which instance to connect to.</p>
<pre>$kitchen login default-centos-66       Last login: Wed May 13 20:15:00 2015 from 10.0.2.2              hostname:  default-centos-66       fqdn:      default-centos-66       memory:    469392kB       cpu count: 1       [vagrant@default-centos-66 ~]$ logout       Connection to 127.0.0.1 closed.$kitchen login default-centos-65       Last login: Wed May 13 20:28:18 2015 from 10.0.2.2              hostname:  default-centos-65       fqdn:      default-centos-65       memory:    469452kB       cpu count: 1       [vagrant@default-centos-65 ~]$ logout       Connection to 127.0.0.1 closed.</pre>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers-2/">Chef configuration management interview questions and answers | Chef Interview Q&#038;A</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Top 25 Chef configuration management interview questions and answers</title>
		<link>https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers/</link>
					<comments>https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 02 Sep 2015 14:34:19 +0000</pubDate>
				<category><![CDATA[Interview Questions & Answers]]></category>
		<category><![CDATA[Answers]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Chef]]></category>
		<category><![CDATA[Chef Configuration Management Interview]]></category>
		<category><![CDATA[Chef Interview]]></category>
		<category><![CDATA[Chef Interview Q&A]]></category>
		<category><![CDATA[Chef Interview questions and answers]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[List of chef Interview questions and answers]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Questions]]></category>
		<category><![CDATA[Top]]></category>
		<category><![CDATA[Top chef Interview questions and answers]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2015/09/02/chef-configuration-management-interview-questions-and-answers/</guid>

					<description><![CDATA[<p>Source &#8211; learn.chef.io What is a resource? Answer- A resource represents a piece of infrastructure and its desired state, such [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers/">Top 25 Chef configuration management interview questions and answers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignnone size-full wp-image-3372" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/09/chef-interview-questions-an.png" alt="chef-interview-questions-and-answers" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/09/chef-interview-questions-an.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/09/chef-interview-questions-an-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><strong>Source &#8211; <a href="http://learn.chef.io">learn.chef.io</a></strong></p>
<p><strong>What is a resource?</strong><br />
<strong>Answer-</strong> A resource represents a piece of infrastructure and its desired state, such as a package that should be installed, a service that should be running, or a file that should be generated.</p>
<p><strong>Question: What is a recipe?</strong><br />
<strong>Answer- </strong>A recipe is a collection of resources that describes a particular configuration or policy. A recipe describes everything that is required to configure part of a system. Recipes do things such as:</p>
<p>install and configure software components.<br />
manage files.<br />
deploy applications.<br />
execute other recipes.</p>
<p><strong>Question: What happens when you don&#8217;t specify a resource&#8217;s action?</strong><br />
<strong>Answer- </strong>When you don&#8217;t specify a resource&#8217;s action, Chef applies the default action.</p>
<p><strong>Question: Are these two recipes the same?</strong></p>
<pre>package 'httpd'</pre>
<pre>service 'httpd' do    action [:enable, :start]  end</pre>
<p>&amp;&amp;</p>
<pre>service 'httpd' do    action [:enable, :start]    end</pre>
<pre>package 'httpd'</pre>
<p><strong>Answer-</strong><br />
No, they are not. Remember that Chef applies resources in the order they appear. So the first recipe ensures that the httpd package is installed and then configures the service. The second recipe configures the service and then ensures the package is installed.</p>
<p><strong>Question: The second recipe may not work as you&#8217;d expect because the service resource will fail if the package is not yet installed.</strong></p>
<p>Are these two recipes the same?</p>
<pre>package 'httpd'</pre>
<pre>service 'httpd' do    action [:enable, :start]    end</pre>
<pre>package 'httpd'</pre>
<pre>service 'httpd' do    action [:start, :enable]    end</pre>
<p><strong>Answer- </strong><br />
No, they are not. Although both recipes ensure that the httpd package is installed before configuring its service, the first recipe enables the service when the system boots and then starts it. The second recipe starts the service and then enables it to start on reboot.</p>
<p><strong>Are these two recipes the same?</strong></p>
<p>file &#8216;/etc/motd&#8217; do<br />
owner &#8216;root&#8217;<br />
group &#8216;root&#8217;<br />
mode &#8216;0755&#8217;<br />
action :create<br />
end</p>
<p>file &#8216;/etc/motd&#8217; do<br />
action :create<br />
mode &#8216;0755&#8217;<br />
group &#8216;root&#8217;<br />
owner &#8216;root&#8217;<br />
end</p>
<p><strong>Answer- </strong><br />
Yes, they are! Order matters with a lot of things in Chef, but you can order resource attributes any way you want.</p>
<p><strong>Question &#8211; </strong><br />
Write a service resource that stops and then disables the httpd service from starting when the system boots.</p>
<p><strong>Answer &#8211;</strong><br />
service &#8216;httpd&#8217; do<br />
action [:stop, :disable]<br />
end</p>
<p><strong>How does a cookbook differ from a recipe?</strong><br />
A recipe is a collection of resources, and typically configures a software package or some piece of infrastructure. A cookbook groups together recipes and other information in a way that is more manageable than having just recipes alone.</p>
<p>For example, in this lesson you used a template resource to manage your HTML home page from an external file. The recipe stated the configuration policy for your web site, and the template file contained the data. You used a cookbook to package both parts up into a single unit that you can later deploy.</p>
<p><strong>How does chef-apply differ from chef-client?</strong></p>
<p>chef-apply applies a single recipe; chef-client applies a cookbook.</p>
<p>For learning purposes, we had you start off with chef-apply because it helps you understand the basics quickly. In practice, chef-apply is useful when you want to quickly test something out. But for production purposes, you typically run chef-client to apply one or more cookbooks.</p>
<p>You&#8217;ll learn in the next module how to run chef-client remotely from your workstation.</p>
<p><strong>What&#8217;s the run-list?</strong></p>
<p>The run-list lets you specify which recipes to run, and the order in which to run them. The run-list is important for when you have multiple cookbooks, and the order in which they run matters.</p>
<p><strong>What are the two ways to set up a Chef server?</strong></p>
<p>Install an instance on your own infrastructure.<br />
Use hosted Chef.</p>
<p><strong>What&#8217;s the role of the Starter Kit?</strong><br />
The Starter Kit provides certificates and other files that enable you to securely communicate with the Chef server.</p>
<p><strong>Where can you get reusable cookbooks that are written and maintained by the Chef community?</strong><br />
Chef Supermarket, https://supermarket.chef.io.</p>
<p><strong>What&#8217;s the command that enables you to interact with the Chef server?</strong><br />
knife</p>
<p><strong>What is a node?</strong><br />
A node represents a server and is typically a virtual machine, container instance, or physical server – basically any compute resource in your infrastructure that&#8217;s managed by Chef.</p>
<p><strong>What information do you need to in order to bootstrap?</strong><br />
You need:</p>
<p>your node&#8217;s host name or public IP address.<br />
a user name and password you can log on to your node with.<br />
Alternatively, you can use key-based authentication instead of providing a user name and password.</p>
<p><strong>What happens during the bootstrap process?</strong><br />
During the bootstrap process, the node downloads and installs chef-client, registers itself with the Chef server, and does an initial checkin. During this checkin, the node applies any cookbooks that are part of its run-list.</p>
<p><strong>Which of the following lets you verify that your node has successfully bootstrapped?</strong></p>
<p>The Chef management console.<br />
knife node list<br />
knife node show<br />
You can use all three of these methods.</p>
<p><strong>What is the command you use to upload a cookbook to the Chef server?</strong><br />
knife cookbook upload</p>
<p><strong>How do you apply an updated cookbook to your node?</strong><br />
We mentioned two ways.</p>
<p>Run knife ssh from your workstation.<br />
SSH directly into your server and run chef-client.<br />
You can also run chef-client as a daemon, or service, to check in with the Chef server on a regular interval, say every 15 or 30 minutes.</p>
<p>Update your Apache cookbook to display your node&#8217;s host name, platform, total installed memory, and number of CPUs in addition to its FQDN on the home page.</p>
<p>Update index.html.erb like this.<br />
&lt;html&gt;<br />
&lt;body&gt;<br />
&lt;h1&gt;hello from &lt;%= node[&#8216;fqdn&#8217;] %&gt;&lt;/h1&gt;</p>
<p>&lt;pre&gt;<br />
&lt;%= node[&#8216;hostname&#8217;] %&gt;<br />
&lt;%= node[&#8216;platform&#8217;] %&gt; &#8211; &lt;%= node[&#8216;platform_version&#8217;] %&gt;<br />
&lt;%= node[&#8216;memory&#8217;][&#8216;total&#8217;] %&gt; RAM<br />
&lt;%= node[&#8216;cpu&#8217;][&#8216;total&#8217;] %&gt; CPUs<br />
&lt;/pre&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>Then upload your cookbook and run it on your node.</p>
<p><strong>What would you set your cookbook&#8217;s version to once it&#8217;s ready to use in production?</strong></p>
<p>According to Semantic Versioning, you should set your cookbook&#8217;s version number to 1.0.0 at the point it&#8217;s ready to use in production.</p>
<p><strong>What is the latest version of the haproxy community cookbook?</strong></p>
<p>To know the latest version of any cookbook on Chef Supermarket, browse to its page and view the latest version from the version selection box.</p>
<p>Or, get the info from the knife cookbook site command, like this.</p>
<p>knife cookbook site show haproxy | grep latest_version<br />
latest_version: http://cookbooks.opscode.com/api/v1/cookbooks/haproxy/versions/1.6.6</p>
<p><strong>Create a second node and apply the awesome_customers cookbook to it. How long does it take?</strong></p>
<p>You already accomplished the majority of the tasks that you need. You wrote the awesome_customers cookbook, uploaded it and its dependent cookbooks to the Chef server, applied the awesome_customers cookbook to your node, and verified that everything&#8217;s working.</p>
<p>All you need to do now is:</p>
<p>Bring up a second Red Hat Enterprise Linux or CentOS node.<br />
Copy your secret key file to your second node.<br />
Bootstrap your node the same way as before. Because you include the awesome_customers cookbook in your run-list, your node will apply that cookbook during the bootstrap process.<br />
The result is a second node that&#8217;s configured identically to the first one. The process should take far less time because you already did most of the work.</p>
<p>Now when you fix an issue or add a new feature, you&#8217;ll be able to deploy and verify your update much more quickly!</p>
<p><strong>What&#8217;s the value of local development using Test Kitchen?</strong></p>
<p>Local development with Test Kitchen:</p>
<p>enables you to use a variety of virtualization providers that create virtual machine or container instances locally on your workstation or in the cloud.<br />
enables you to run your cookbooks on servers that resemble those that you use in production.<br />
speeds up the development cycle by automatically provisioning and tearing down temporary instances, resolving cookbook dependencies, and applying your cookbooks to your instances.</p>
<p><strong>What is VirtualBox? What is Vagrant?</strong></p>
<p>VirtualBox is the software that manages your virtual machine instances.</p>
<p>Vagrant helps Test Kitchen communicate with VirtualBox and configures things like available memory and network settings.</p>
<p>Verify that your motd cookbook runs on both CentOS 6.6 and CentOS 6.5.</p>
<p>Your motd cookbook is already configured to work on CentOS 6.6 as well as CentOS 6.5, so you don&#8217;t need to modify it.</p>
<p>To run it on CentOS 6.5, add an entry to the platforms section of your .kitchen.yml file like this.</p>
<pre>---       driver:       name: vagrant</pre>
<pre>provisioner:       name: chef_zero</pre>
<pre>platforms:       - name: centos-6.6       driver:       box: opscode-centos-6.6       box_url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.6_chef-provisionerless.box       - name: centos-6.5       driver:       box: opscode-centos-6.5       box_url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box</pre>
<pre>suites:       - name: default       run_list:       - recipe[motd::default]       attributes:</pre>
<p>In many cases, Test Kitchen can infer the box and box_url parameters, which specify the name and location of the base image, or box. We specify them here to show you how to use them.</p>
<p>Run kitchen list to see the matrix of test instances that are available. Here, we have two platforms – CentOS 6.5 and CentOS 6.6 – multiplied by one suite – default.</p>
<p>$kitchen list</p>
<pre>Instance           Driver   Provisioner  Verifier  Transport  Last Action default-centos-66  Vagrant  ChefZero     Busser    Ssh        &lt;Not Created&gt; default-centos-65  Vagrant  ChefZero     Busser    Ssh        &lt;Not Created&gt;</pre>
<p>Run kitchen converge to create the instances and apply the motd cookbook.</p>
<pre>$kitchen converge    -----&gt; Starting Kitchen (v1.4.0)    -----&gt; Creating &lt;default-centos-66&gt;...    Bringing machine 'default' up with 'virtualbox' provider...    [...]    Running handlers:    Running handlers complete    Chef Client finished, 1/1 resources updated in 10.372334751 seconds    Finished converging &lt;default-centos-66&gt; (3m52.59s).    -----&gt; Creating &lt;default-centos-65&gt;...    Bringing machine 'default' up with 'virtualbox' provider...    [...]    Running handlers:    Running handlers complete    Chef Client finished, 1/1 resources updated in 5.32753132 seconds    Finished converging &lt;default-centos-65&gt; (10m12.63s).  -----&gt; Kitchen is finished. (19m47.71s)</pre>
<p>Now to confirm that everything&#8217;s working, run kitchen login. But this time, you need to provide the instance name so that Test Kitchen knows which instance to connect to.</p>
<pre>$kitchen login default-centos-66       Last login: Wed May 13 20:15:00 2015 from 10.0.2.2              hostname:  default-centos-66       fqdn:      default-centos-66       memory:    469392kB       cpu count: 1       [vagrant@default-centos-66 ~]$ logout       Connection to 127.0.0.1 closed.$kitchen login default-centos-65       Last login: Wed May 13 20:28:18 2015 from 10.0.2.2              hostname:  default-centos-65       fqdn:      default-centos-65       memory:    469452kB       cpu count: 1       [vagrant@default-centos-65 ~]$ logout       Connection to 127.0.0.1 closed.</pre>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers/">Top 25 Chef configuration management interview questions and answers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/chef-configuration-management-interview-questions-and-answers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Top 5 Configuration Management Tools</title>
		<link>https://www.scmgalaxy.com/tutorials/top-5-configuration-management-tools/</link>
					<comments>https://www.scmgalaxy.com/tutorials/top-5-configuration-management-tools/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 19 Aug 2015 13:00:28 +0000</pubDate>
				<category><![CDATA[Configuration Management Tools]]></category>
		<category><![CDATA[Ansible]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Configuration Management Tools]]></category>
		<category><![CDATA[CFEngine]]></category>
		<category><![CDATA[Chef]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[List of Configuration Management Tools]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[SaltStack]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Top]]></category>
		<category><![CDATA[Top Configuration Management Tools]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2015/08/19/top-5-configuration-management-tools/</guid>

					<description><![CDATA[<p>Top 5 Configuration Management Tools Puppet In computing, Puppet is an open-source configuration management utility. It runs on many Unix-like [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-5-configuration-management-tools/">Top 5 Configuration Management Tools</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignnone size-full wp-image-3442 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/08/top-5-configuration-managem.png" alt="top-5-configuration-management-tools" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/08/top-5-configuration-managem.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2015/08/top-5-configuration-managem-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p>Top 5 Configuration Management Tools</p>
<p><a href="https://puppetlabs.com/">Puppet</a></p>
<p>In computing, Puppet is an open-source configuration management utility. It runs on many Unix-like systems as well as on Microsoft Windows, and includes its own declarative language to describe system configuration.</p>
<p>Puppet is produced by Puppet Labs, founded by Luke Kanies in 2005. It is written in Ruby and released as free software under the GNU General Public License (GPL) until version 2.7.0 and the Apache License 2.0 after that.</p>
<p>What started out as a popular DevOps tool has quickly become a movement. Written in Ruby, like Chef, Puppet also comes in both an open source and enterprise version. However, where Chef has a healthy offering of features across both open source and enterprise versions, Puppet has placed the majority of its feature set into enterprise status. Features that the open source version comes with include provisioning (Amazon EC2, Google Compute Engine), configuration management (operating systems and applications) plus 2,000+ pre-built configurations on Puppet Forge. Considerably more features are available for the enterprise version, including the open source features plus graphical user interface, event inspector (visualize infrastructure changes), supported modules, and provisioning (VMware VMs). Configuration management (discovery, user accounts), orchestration, task automation, role-based access control (with external authentication support) are also included. Puppet enterprise has a unified cross-platform installer of all components and support.</p>
<p><a href="https://www.chef.io/chef/">Chef</a></p>
<p>Offered as both an open source and enterprise product, Chef is a powerful tool for full IT infrastructure configuration management. With open source Chef at the heart of both offerings, shared features include a flexible and scalable automation platform, access to 800+ reusable cookbooks and integration with leading cloud providers. Chef also offers enterprise platform support, including Windows and Solaris, and allows you to create, bootstrap and manage OpenStack clouds. It has easy installation with &#8216;one-click&#8217; Omnibus Installer, automatic system discovery with Ohai, text-based search capabilities and multiple environment support. Other notable features inclyde the &#8220;Knife&#8221; command line interface, &#8220;Dry Run&#8221; mode for testing potential changes, and the ability to manage 10,000+ nodes on a single Chef server. Features only available in the enterprise version of Chef include availablility as a hosted service, enhanced management console, centralized activity and resource reporting, as well as &#8220;Push&#8221; command and control client runs. Multi-tenancy, role-based access control (RBAC), high availability installation support and verification, along with centralized authentication using LDAP or Active Directory are included with Chef enterprise.</p>
<p><a href="http://www.ansible.com/home" target="_blank" rel="noopener">Ansible</a></p>
<p>Ansible is a model-driven configuration management tool that leverages SSH to improve security and simplify management. In addition to configuration management, it is capable of automating app deployment (even multi-tier deployment), workflow orchestration and cloud provisioning, hence the company likes the tool to be categorized as an &#8220;orchestration engine.&#8221; Ansible is built on five design principles including ease of use (doesn&#8217;t require writing scripts or custom code), low learning curve (both for sysadmins and developers), comprehensive automation (allowing you to automate almost anything in your environment), efficiency (since it runs on OpenSSH it doesn&#8217;t rely on memory or CPU resources), and security (it is inherently more secure because it doesn&#8217;t require an agent, additional ports or root level daemons). As many other open source projects, Ansible has a paid product that comes in the form of a web UI called Ansible Tower.</p>
<p><a href="http://cfengine.com/" target="_blank" rel="noopener">CFEngine</a></p>
<p>One of the earliest full-featured configuration management systems out there, CFEngine has gone through several iterations and maintained relevance as OS have gone from the local data center to the cloud. At the heart of the infrastructure automation framework, CFEngine is also a modeling and monitoring compliance engine, capable of sitting on a small footprint. As recommended by CFEngine, steps toward identifying an initial desired state include: 1) model the desired state of your environment; 2) simulate configuration changes before committing them; 3) confirm the desired state and set for automatic self-healing; 4) collect reports on the differences between actual and desired states. CFEngine has a library of reusable data-driven models that will help users model their desired states. These infrastructure patterns are designed to be reusable across the Enterprise.</p>
<p><a href="http://saltstack.com/community/" target="_blank" rel="noopener">Salt</a></p>
<p>As part of a larger, enterprise ready application, the configuration management piece of Salt is as robust and feature-full as would be expected. Built upon the remote execution core, execution of the system occurs on &#8220;minions&#8221; which receives commands from the central Salt master and replies with the results of said commands. Salt support simultaneous configuration of tens of thousands of hosts. Based upon host &#8220;states&#8221;, no programming is required to write the configuration files, which are small and easy to understand, that help identify the state of each host. Additionally, for those who do program, or admins who want to have more control and familiarity with their configuration files, any language can be used to render the configurations.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-5-configuration-management-tools/">Top 5 Configuration Management Tools</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/top-5-configuration-management-tools/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SCM Process and smartBuild Overview, What is SCM Process and smartBuild?</title>
		<link>https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/</link>
					<comments>https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 22 Feb 2011 06:13:08 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[SCM Process Concept]]></category>
		<category><![CDATA[SCM Process Guide]]></category>
		<category><![CDATA[SCM Process Introduction]]></category>
		<category><![CDATA[SCM Process Overview]]></category>
		<category><![CDATA[smartBuild]]></category>
		<category><![CDATA[smartBuild Concept]]></category>
		<category><![CDATA[smartBuild Guide]]></category>
		<category><![CDATA[smartBuild Introduction]]></category>
		<category><![CDATA[smartBuild Overview]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Development Process]]></category>
		<category><![CDATA[What is SCM]]></category>
		<category><![CDATA[What is smartBuild]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2011/02/22/scm-process-and-smartbuild/</guid>

					<description><![CDATA[<p>SCM Process and smartBuild SCM Process and smartBuild from Rajesh Kumar</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/">SCM Process and smartBuild Overview, What is SCM Process and smartBuild?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="wp-image-3909 size-full aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/02/scm-process-and-smartbuild.png" alt="scm-process-and-smartbuild" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/02/scm-process-and-smartbuild.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/02/scm-process-and-smartbuild-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<h1 class="h-slideshow-title">SCM Process and smartBuild</h1>
<p style="text-align: center;"><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/3Xz7hdL0HbXDQH" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="SCM Process and smartBuild" href="//www.slideshare.net/rajeshatbuzz/scm-process-and-smartbuild" target="_blank" rel="noopener">SCM Process and smartBuild</a> </strong> from <strong><a href="https://www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/">SCM Process and smartBuild Overview, What is SCM Process and smartBuild?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Software Configuration Management in Pakistan &#124; SCM Practices in Pakistan</title>
		<link>https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/</link>
					<comments>https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 13 Dec 2010 10:38:37 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[CM Job Roles in Pakistan Software Industry]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration Management in Pakistan IT Industry]]></category>
		<category><![CDATA[Configuration Management jobs in Pakistan]]></category>
		<category><![CDATA[Job Roles in Pakistan IT firms]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Pakistan]]></category>
		<category><![CDATA[Pakistan IT firms]]></category>
		<category><![CDATA[Pakistan Software Development Industry]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM in Pakistan]]></category>
		<category><![CDATA[SCM practices in Pakistan]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/12/13/software-configuration-management-in-pakistan/</guid>

					<description><![CDATA[<p>Mature CM is cross-business functionality NOT functionality solely within engineering. Software Configuration Management facilitates timely communications; enforces development policies and [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/">Software Configuration Management in Pakistan | SCM Practices in Pakistan</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3894 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/12/software-configuration-mana.png" alt="software-configuration-management-in-pakistan" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/12/software-configuration-mana.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/12/software-configuration-mana-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div style="text-align: justify;">Mature CM is cross-business functionality NOT functionality solely within engineering. Software Configuration Management facilitates timely communications; enforces development policies and technical standards along Management of Hand-offs between Environments and Teams efficiently.</div>
<p style="text-align: justify;">The practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations. Specifically, Software Configuration Management ensures the integrity, reliability and reproducibility of developing software products from conception to release.</p>
<p style="text-align: justify;">I should say CM in Pakistan has been catching up slow but very steadily. There are not many senior people in Pakistan who have dedicated their careers in Configuration Management. Many people moved on to various management roles out of CM after some years of experience. This is due to lack of management opportunities in this area. But, times have changed for good and are getting better. With the growing maturity of CM across the industry, organizations are giving utmost importance to this area and so are hiring people at very senior levels.</p>
<p style="text-align: justify;">I have around 3 years of experience while Interacting CM Professionals internationally and national level; found very strong maturity and awareness. With my experience, I would say Pakistan IT firms still need a broader thinking from CM perspective. In many organizations, people think that CM is just about making builds and controlling source code for projects. We need to educate people about the real importance of Software Configuration Management in any organization. There is a need of clear understanding of various aspects of Configuration Management like Change Management, Incident/Problem Management, Build &amp; release management, Code control/version control , Automated Build management , Parallel development and Continuous integration , Introduction to new tools for software and hardware configurations etc…</p>
<p style="text-align: justify;">CM is much beyond a tool administration or builds management. It does comprise entire life cycle of a project as well as the POST PRODUCTION analysis to improve the process for upcoming projects. It’s a continuous process which not only gives any IT organization a process to boost confidence in delivering quality product with stable code line.</p>
<p style="text-align: justify;">NetSol is vigilant and moving superbly toward innovation and automation through R&amp;D in the field of Configuration Management. Being the CMMI 5 organization; we have implemented excellent Release Management Process that beautifully interacting and entertaining CM Services throughout the organization. We are in process of experimenting Modern tools and discovering best practices for making our process incredibly easy and technically strong. NetSol’s Department of Configuration Management really welcomes newly born organizations and specially those (existing) who want to setup/improve their Configuration Management process and looking for technical improvement mentor; please come up and Consult NetSol with trust.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/">Software Configuration Management in Pakistan | SCM Practices in Pakistan</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Configuration Management Tools Discussion</title>
		<link>https://www.scmgalaxy.com/tutorials/configuration-management-tools-discussion/</link>
					<comments>https://www.scmgalaxy.com/tutorials/configuration-management-tools-discussion/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Fri, 17 Sep 2010 01:03:01 +0000</pubDate>
				<category><![CDATA[Configuration Management Tools]]></category>
		<category><![CDATA[Better]]></category>
		<category><![CDATA[clearcase]]></category>
		<category><![CDATA[ClearCase Analysis]]></category>
		<category><![CDATA[Clearcase features]]></category>
		<category><![CDATA[ClearCase Review]]></category>
		<category><![CDATA[Compare]]></category>
		<category><![CDATA[Comparisons]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration Management Tools Analysis]]></category>
		<category><![CDATA[Configuration Management Tools Comaparison]]></category>
		<category><![CDATA[Configuration Management Tools Feedback]]></category>
		<category><![CDATA[Configuration Management Tools Review]]></category>
		<category><![CDATA[Difference between Cleascase and other Configuration Management Tools]]></category>
		<category><![CDATA[Discussion]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[How is clearecase better than other tools]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Select]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Why Clearcase is better]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/09/17/configuration-management-tools-discussion/</guid>

					<description><![CDATA[<p>My main experience is with ClearCase. I have read various descriptive comparisons between ClearCase and other available Software Management Version [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/configuration-management-tools-discussion/">Configuration Management Tools Discussion</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4357" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/09/configuration-management.png" alt="configuration-management-tools-discussion" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/09/configuration-management.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/09/configuration-management-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>My main experience is with ClearCase. I have read various descriptive comparisons between ClearCase and other available Software Management Version tools. Which tool has your company implemented? What were the key features helped you select this tool over another one?</p>
<p><a title="Configuration Management Tools Discussion " href="http://cmtoolsblog.blogspot.com/">Configuration Management Tools Discussion </a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/configuration-management-tools-discussion/">Configuration Management Tools Discussion</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/configuration-management-tools-discussion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Power Point PPT: Introduction To Software Configuration Management</title>
		<link>https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 21:01:11 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Aout Software Configuration Management PPT]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Introduction]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PPt]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Guide]]></category>
		<category><![CDATA[SCM Introduction PPT]]></category>
		<category><![CDATA[SCM Introduction Presentation]]></category>
		<category><![CDATA[SCM Overview]]></category>
		<category><![CDATA[SCM Quick Start Guide]]></category>
		<category><![CDATA[Slideshare]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Introduction]]></category>
		<category><![CDATA[Software Configuration Management Overview PPT]]></category>
		<category><![CDATA[What Is Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/21/power-point-ppt-introduction-to-software-configuration-management/</guid>

					<description><![CDATA[<p>Power Point PPT: Introduction To Software Configuration Management Introduction To Software Configuration Management from Rajesh Kumar &#160;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/">Power Point PPT: Introduction To Software Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4234" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-into.png" alt="software-configuration-management-introduction" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-into.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-into-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Power Point PPT: Introduction To Software Configuration Management</h1>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/dKFEEfZFCLhYTT" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Introduction To Software Configuration Management" href="//www.slideshare.net/rajeshatbuzz/introduction-to-software-configuration-management" target="_blank" rel="noopener">Introduction To Software Configuration Management</a> </strong> from <strong><a href="https://www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/">Power Point PPT: Introduction To Software Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Power Point PPT: Software Configuration Management And CVS</title>
		<link>https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/</link>
					<comments>https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 20:59:00 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration management with CVS PPT]]></category>
		<category><![CDATA[Configuration management with CVS Presentation]]></category>
		<category><![CDATA[How to use CVS]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PPt]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Slideshare]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management with CVS PPT]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/21/power-point-ppt-software-configuration-management-and-cvs/</guid>

					<description><![CDATA[<p>Power Point PPT: Software Configuration Management And CVS Software Configuration Management And CVS from Rajesh Kumar</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/">Power Point PPT: Software Configuration Management And CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4223" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/software-configuration-mana-2.png" alt="software-configuration-management-and-cvs" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/software-configuration-mana-2.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/software-configuration-mana-2-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Power Point PPT: Software Configuration Management And CVS</h1>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/bJj2f8EIQJ1j1f" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Software Configuration Management And CVS" href="//www.slideshare.net/rajeshatbuzz/software-configuration-management-and-cvs" target="_blank" rel="noopener">Software Configuration Management And CVS</a> </strong> from <strong><a href="https://www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/">Power Point PPT: Software Configuration Management And CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Power Point PPT: Why Software Configuration Management &#8211; Prsesentation</title>
		<link>https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 20:55:00 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Advantages of SCM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Importance of SCM]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PPt]]></category>
		<category><![CDATA[PPT presentation]]></category>
		<category><![CDATA[presentation on software configuration management]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Benefits]]></category>
		<category><![CDATA[SCM PPT]]></category>
		<category><![CDATA[SCM Presentation]]></category>
		<category><![CDATA[SCM Slideshare]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Importance]]></category>
		<category><![CDATA[software configuration management ppt]]></category>
		<category><![CDATA[software configuration management Presentation]]></category>
		<category><![CDATA[software configuration management slideshare]]></category>
		<category><![CDATA[Why SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/21/power-point-ppt-why-software-configuration-management/</guid>

					<description><![CDATA[<p>Power Point PPT: Why Software Configuration Management Why Scm from Rajesh Kumar &#160;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/">Power Point PPT: Why Software Configuration Management &#8211; Prsesentation</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4213" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/why-software-configuration-.png" alt="why-software-configuration-management" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/why-software-configuration-.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/why-software-configuration--300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Power Point PPT: Why Software Configuration Management</h1>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/23RHiZnaTbmluF" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Why Scm" href="//www.slideshare.net/rajeshatbuzz/why-scm" target="_blank" rel="noopener">Why Scm</a> </strong> from <strong><a href="//www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/">Power Point PPT: Why Software Configuration Management &#8211; Prsesentation</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Why Worry About Versioning? &#8211; Versioning Complete guide</title>
		<link>https://www.scmgalaxy.com/tutorials/why-worry-about-versioning/</link>
					<comments>https://www.scmgalaxy.com/tutorials/why-worry-about-versioning/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 17 Feb 2010 09:57:26 +0000</pubDate>
				<category><![CDATA[Version Management]]></category>
		<category><![CDATA[Component]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Everything about Versioning]]></category>
		<category><![CDATA[File Versioning]]></category>
		<category><![CDATA[Good version scheme]]></category>
		<category><![CDATA[How Versioning Affects Setup]]></category>
		<category><![CDATA[Understand Versioning]]></category>
		<category><![CDATA[version]]></category>
		<category><![CDATA[Version control]]></category>
		<category><![CDATA[Version scheme]]></category>
		<category><![CDATA[Versioning]]></category>
		<category><![CDATA[Versioning Best Practices]]></category>
		<category><![CDATA[Versioning Complete guide]]></category>
		<category><![CDATA[Versioning Guidance]]></category>
		<category><![CDATA[Versioning Guide]]></category>
		<category><![CDATA[Versioning Reference]]></category>
		<category><![CDATA[Versioning Tutorial]]></category>
		<category><![CDATA[Why]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/02/17/why-worry-about-versioning/</guid>

					<description><![CDATA[<p>Why Worry About Versioning? Having a good version scheme for your software is important for several reasons. The following are [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/why-worry-about-versioning/">Why Worry About Versioning? &#8211; Versioning Complete guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4176 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/02/versioning.png" alt="versioning" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/02/versioning.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/02/versioning-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h3>
<h3>Why Worry About Versioning?</h3>
<p>Having a good version scheme for your software is important for several reasons. The following are the top five things a version scheme allows you to do (in random order):</p>
<p>Track your product binaries to the original source files.</p>
<p>Re-create a past build by having meaningful labels in your source tree.</p>
<p>Avoid &#8220;DLL hell&#8221; —multiple versions of the same file (library in this case) on a machine.</p>
<p>Help your setup program handle upgrades and service packs.</p>
<p>Provide your product support and Q/A teams with an easy way to identify the bits they are working with.</p>
<p>So, how do you keep track of files in a product and link them back to the owner? How can you tell that you are testing or using the latest version of a released file? What about the rest of the reasons in the list? This chapter describes my recommendations for the most effective and easiest way to set up and apply versioning to your software. Many different schemes are available, and you should feel free to create your own versioning method.</p>
<p>Ultimately, like most of the other topics in this book, the responsibility to apply versioning to the files in a build tends to fall into the hands of the build team. That might be because it is usually the build team that has to deal with the headaches that come from having a poor versioning scheme. Therefore, it is in their best interest to publish, promote, and enforce a good versioning scheme. If the build team does not own this, then someone who does not understand the full implications of versioning will make the rules. Needless to say, this would not be desirable for anybody involved with the product.</p>
<h3>File Versioning</h3>
<p>Every file in a product should have a version number; a four-part number separated by periods such as the one that follows seems to be the established best practice. There are many variations of what each part represents. I will explain what I think is the best way of defining these parts.</p>
<p>&#8230;</p>
<p><b>Major version</b>— The component owner usually assigns this number. It should be the internal version of the product. It rarely changes during the development cycle of a product release.</p>
<p><b>Minor version</b>— The component owner usually assigns this number. It is normally used when an incremental release of the product is planned instead of a full feature upgrade. It rarely changes during the development cycle of a product release.</p>
<p><b>Build number</b>— The build team usually assigns this number based on the build that the file was generated with. It changes with every build of the code.</p>
<p><b>Revision</b>— The build team usually assigns this number. It can have several meanings: bug number, build number of an older file being replaced, or service pack number. It rarely changes. This number is used mostly when servicing the file for an external release.</p>
<h3>Build Number</h3>
<p>Each build that is released out of the Central Build Lab should have a unique version stamp (also known as the build number). This number should be incremented just before a build is started. Don&#8217;t use a date for a build number or mix dates into a version number simply because there are so many date formats out there that it can be difficult to standardize on one. Also, if you have more than one build on a given date, the naming can get tricky. Stick with an n=n+1 build number. For example, if you release build 100 in the morning and rebuild and release your code in the afternoon, the afternoon build should be build 101. If you were to use a date for the build number, say 010105, what would your afternoon build number be? 010105.1? This can get rather confusing.</p>
<p>It is also a good idea to touch all the files just prior to releasing the build so that you get a current date/time stamp on the files. By &#8220;touching&#8221; the files, I simply mean using a tool (touch.exe) to modify the date/time stamp on a file. There are several free tools available for you to download, or you can write one yourself. Touching the files helps in the tracking process of the files and keeps all of the dates and times consistent in a build release. It also eliminates the need to include the current date in a build number. You already have the date by just looking at the file properties.</p>
<p>In addition, try to avoid tools that inject version numbers into binaries (as a post-build step). Although the tools might seem reliable, they introduce an instability factor into your released binaries by hacking hexadecimal code. Most Q/A teams become distressed if this happens to the binaries they are testing—and justifiably so. The build number should be built into the binary or document files.</p>
<h3>Source Code Control Trees</h3>
<p>All the source code control (SCC) software that I have seen has some kind of labeling function to track either checked-in binaries or source code. (Remember that I am not for checking in binaries, but I mention this for the groups or teams that do. This type of versioning (or more appropriately named labeling) is typically used to track a group of sources that correspond to a product release. Most of the time, they combine labeling of the sources with the branching of the source code lines.</p>
<h3>Should There Be Other Fields in the File Version Number?</h3>
<p>I am of the opinion that no, there shouldn&#8217;t be other fields in the file version number. Let&#8217;s look at some other fields that might seem like they should be included but really don&#8217;t need to be:</p>
<ul>
<li><b>Virtual Build Lab (VBL) or offsite development group number</b>— You can use this number to track a check-in back to a specific site or lab that the code was worked on. If you have a golden tree or mainline setup, and all your VBLs or offsite trees have to reverse integrate into the golden tree, this extra field would be overkill. That&#8217;s because you can trace the owner through the golden tree check-in. Having a field in which you would have to look up the VBL or offsite number would take just as long.
<p>The reality is that when you check a version number, you won&#8217;t care where the file came from. You&#8217;ll only care if it is a unique enough number to accurately trace the file to the source that created it. Most likely, you&#8217;ll already know the version number you&#8217;re looking for and you&#8217;ll just need to confirm that you&#8217;re using it.</li>
<li><b>Component</b>—If you break your whole project into separate components, should each component have its own identification number that would be included in the version string? No, similarly to the reasons in the previous bullet, you can track this information by the name of the binary or other information when checking the other properties of the file. This information would probably only come into play if you were filing a bug and you had other resources available to determine which component this file belonged to.</li>
<li><b>Service Pack Build Number</b>— If you&#8217;re doing daily builds of a service pack release, you should use the earlier example; increment the build number and keep the revision number at the current in-place file build number. This seems like a good argument for a fifth field, but it isn&#8217;t if the revision field is used properly.</li>
</ul>
<p>&nbsp;</p>
<h3>DLL or Executable Versions for .NET (Assembly Versions)</h3>
<p>This section applies to you only if you are programming in .NET.</p>
<p>When Microsoft introduced .NET, one of its goals was to get rid of DLL hell and all the extra setup steps I talk about later in this chapter. In reviewing where .NET is today, it looks like Microsoft has resolved the sideby-side DLL hell problem, but now the problem is &#8220;assembly version hell.&#8221; Without going into too much detail about the .NET infrastructure, let&#8217;s touch on the difference between file versioning and assembly versioning.</p>
<p>Assembly versions are meant for binding purposes only; they are not meant for keeping track of different daily versions. Use the file version for that instead. It is recommended that you keep the assembly version the same from build to build and change it only after each external release. For more details on how .NET works with these versions, refer to Jeffrey Richter&#8217;s .NET book. Don&#8217;t link the two versions, but make sure each assembly has both an assembly version and a file version when you right-click. You can use the same format described earlier for file versioning for the assembly version.</p>
<h3>How Versioning Affects Setup</h3>
<p>Have you ever met someone who reformats his machine every six months because &#8220;it just crashes less if I do&#8221; or it &#8220;performs better?&#8221; It might sound draconian, but the current state of component versioning and setup makes starting from scratch a likely solution to these performance issues, which are further complicated by spyware.</p>
<p>Most of the problems occur when various pieces of software end up installing components (DLLs and COM components) that are not quite compatible with each other or with the full set of installed products. Just one incorrect or incorrectly installed DLL can make a program flaky or prevent it from starting up. In fact, DLL and component installation is so important that it is a major part of the Windows logo requirement.</p>
<p>If you are involved in your product&#8217;s setup, or if you are involved in making decisions about how to update your components (produce new versions), you can do some specific things to minimize DLL hell and get the correct version of your file on the machine.</p>
<p>Installing components correctly is a little tricky, but with these tips, you can install your components in a way that minimizes the chance of breaking other products on your own.</p>
<h4>Install the Correct Version of a Component for the Operating System and Locale</h4>
<p>If you have operating system (OS)-specific components, make sure your setup program(s) check which OS you are using and install only the correct components. Also, you cannot give two components the same name and install them in the same directory. If you do, you overwrite the component on the second install on a dual-boot system. Note that the logo requirements recommend that you avoid installing different OS files if possible. Related to this problem is the problem caused when you install the wrong component or typelib for the locale in use, such as installing a U.S. English component on a German machine. This causes messages, labels, menus, and automation method names to be displayed in the wrong language.</p>
<h4>Write Components to the Right Places</h4>
<p>Avoid copying components to a system directory. An exception to this is if you are updating a system component. For that, you must use an update program provided by the group within Microsoft that maintains the component.</p>
<p>In general, you should copy components to the same directory that you copy the EXE. If you share components between applications, establish a shared components directory. However, it is not recommended that you share components between applications. The risks outweigh the benefits of reduced disk space consumption.</p>
<h4>Do Not Install Older Components Over Newer Ones</h4>
<p>Sometimes, the setup writer might not properly check the version of an installed component when deciding whether to overwrite the component or skip it. The result can be that an older version of the component is written over a newer version. Your product runs fine, but anything that depends on new features of the newer component fails. Furthermore, your product gets a reputation for breaking other products. We address the issue of whether it makes sense to overwrite components at all. But if you do overwrite them, you don&#8217;t want to overwrite a newer version.</p>
<h4>&#8220;Copy on Reboot&#8221; If Component Is in Use</h4>
<p>Another common mistake is to avoid dealing with the fact that you cannot overwrite a component that is in use. Instead, you have to set up the file to copy on reboot. Note that if one component is in use, you probably should set up all the components to copy on reboot. If you don&#8217;t, and if the user doesn&#8217;t reboot promptly, your new components could be mixed with the old ones.</p>
<h4>Register Components Correctly; Take Security into Account</h4>
<p>Sometimes setups don&#8217;t properly register COM components correctly, including the proxy and stub. Note that Windows CE requires that you also register DLLs. Note, too, that when installing DCOM components, you must be vigilant about permissions and security.</p>
<h4>Copy Any Component That You Overwrite</h4>
<p>It is smart to make a copy of any component that you overwrite before you overwrite it. You won&#8217;t want to put it back when you uninstall unless you&#8217;re sure that no product installed after yours will need the newer component—a difficult prediction! But by storing the component in a safe place, you make it possible for the user to fix his system if it turns out that the component you installed breaks it. You can let users know about this in the troubleshooting section of your documentation, the README file, or on your Web site. Doing this might not save a call to support, but it does at least make the problem solvable. If the component is not in use, you can move it rather than copying it. Moving is a much faster operation.</p>
<h4>Redistribute a Self-Extracting EXE Rather Than Raw Components</h4>
<p>If your component is redistributed by others (for instance, your component is distributed with several different products, especially third-party products), it is wise to provide a self-extracting EXE that sets up your component correctly. Make this EXE the only way that you distribute your component. (Such an EXE is also an ideal distribution package for the Web.) If you just distribute raw components, you have to rely on those who redistribute your components to get the setup just right. As we have seen, this is pretty easy to mess up.</p>
<p>Your EXE should support command-line switches for running silently (without a UI) and to force overwriting, even of newer components, so that product support can step users through overwriting if a problem arises.</p>
<p>If you need to update core components that are provided by other groups, use only the EXE that is provided by that group.</p>
<h4>Test Setup on Real-World Systems</h4>
<p>If you&#8217;re not careful, you can install all your setup testing on systems that already happen to have the right components installed and the right registry entries made. Be sure to test on raw systems, on all operating systems, and with popular configurations and third-party software already installed. Also, test other products to make sure they still work after you install your components.</p>
<h3>Even Installing Correctly Does Not Always Work</h3>
<p>Even if you follow all the preceding steps and install everything 100 percent correctly, you can still have problems caused by updating components. Why? Well, even though the new component is installed correctly, its behavior might be different enough from the old component that it breaks existing programs. Here is an example. The specification for a function says that a particular parameter must not be NULL, but the old version of the component ran fine if you passed NULL. If you enforce the spec in a new version (you might need to do this to make the component more robust), any code that passes NULL fails. Because not all programmers read the API documentation each time they write a call, this is a likely scenario.</p>
<p>It is also possible for a new version to introduce a bug that you simply didn&#8217;t catch in regression testing. It is even possible for clients to break as a result of purely internal improvements if they were relying on the old behavior. Typically, we assume that nothing will break when we update a component. In fact, according to Craig Wittenberg, one of the developers of COM who now works in the ComApps group at Microsoft, if you don&#8217;t have a plan for versioning your components in future releases, it is a major red flag for any component development project. In other words, before you ship Version 1, you need to have a plan for how you will update Version 1.1, Version 2, and beyond—besides how to bug-fix your updates.</p>
<p><b><u>Reference: </u>The Build Master: Microsoft&#8217;s Software Configuration Management Best Practices</b></p>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/why-worry-about-versioning/">Why Worry About Versioning? &#8211; Versioning Complete guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/why-worry-about-versioning/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 02 Feb 2009 09:12:32 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Best practices in SCM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Good]]></category>
		<category><![CDATA[Good Practices]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Ideal]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Recomended]]></category>
		<category><![CDATA[Right]]></category>
		<category><![CDATA[SCM best practices]]></category>
		<category><![CDATA[SCM best practices Guide]]></category>
		<category><![CDATA[SCM best practices Techniques]]></category>
		<category><![CDATA[SCM Best Practices Tips]]></category>
		<category><![CDATA[SCM best practices Tutorial]]></category>
		<category><![CDATA[SCM Good Practices]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Best Practices]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[What]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/02/02/best-practices-in-software-configuration-management/</guid>

					<description><![CDATA[<p>Best Practices in Software Configuration Management Abstract When deploying new SCM (software configuration management) tools, implementers sometimes focus on perfecting [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/">Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3973 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices.png" alt="scm-best-practices" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>Best Practices in Software Configuration Management</strong></p>
<p><strong>Abstract</strong><br />
When deploying new SCM (software configuration management) tools,<br />
implementers sometimes focus on perfecting fine-grained activities, while<br />
unwittingly carrying forward poor, large-scale practices from their previous jobs or<br />
previous tools. The result is a well-executed blunder. This paper promotes some<br />
high-level best practices that reflect the authors’ experiences in deploying SCM.</p>
<p><strong>1. Introduction</strong><br />
“A tool is only as good as you use it,” the saying goes<em>. </em>As providers of software configuration management (SCM) tools and consultants to software companies, we<br />
are often asked for sound advice on SCM best practices – that is, how to deploy SCM software to the maximum advantage. In answering these requests we have a bounty of direct and indirect SCM experience from which to draw. The direct experience comes from having been developers and codeline managers ourselves; the indirect experience comes from customer reports of successes and failures with our product (Perforce) and other SCM tools.<br />
The table below lists six general areas of SCM deployment, and some coarse-grained best practices within each of those areas. The following chapters explain each item.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="319"><strong>Workspaces, </strong>where<br />
developers build, test, and<br />
debug.</td>
<td valign="top" width="319">· Don’t share workspaces.<br />
· Don’t work outside of managed workspaces.<br />
· Don’t use jello views.<br />
· Stay in sync with the codeline.<br />
· Check in often.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Codelines, </strong>the canonical sets<br />
of source files.</td>
<td valign="top" width="319">· Give each codeline a policy.<br />
· Give each codeline an owner.<br />
· Have a mainline.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Branches, </strong>variants of the<br />
codeline.</td>
<td valign="top" width="319">· Branch only when necessary.<br />
· Don’t copy when you mean to branch.<br />
· Branch on incompatible policy.<br />
· Branch late.<br />
· Branch, instead of freeze.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Change propagation, </strong>getting<br />
changes from one codeline to<br />
another.</td>
<td valign="top" width="319">· Make original changes in the branch that has<br />
evolved the least since branching.<br />
· Propagate early and often.<br />
· Get the right person to do the merge.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Builds, </strong>turning source files<br />
into products.</td>
<td valign="top" width="319">· Source + tools = product.<br />
· Check in all original source.<br />
· Segregate built objects from original source.<br />
· Use common build tools.<br />
· Build often.<br />
· Keep build logs and build output.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Process, </strong>the rules for all of<br />
the above.</td>
<td valign="top" width="319">· Track change packages.<br />
· Track change package propagations.<br />
· Distinguish change requests from change<br />
packages.<br />
· Give everything and owner.<br />
· Use living documents.</td>
</tr>
</tbody>
</table>
<p><strong>2. The Workspace</strong><br />
The workspace is where engineers edit source files, build the software components they’re working on, and test and debug what they’ve built. Most SCM systems have some notion of a workspace; sometimes they are called “sandboxes”, as in Source Integrity, or “views”, as in ClearCase and Perforce. Changes to managed SCM repository files begin as changes to files in a workspace. The best practices for workspaces include:· <em>Don’t share workspaces. </em>A workspace should have a single purpose, such as an edit/build/test area for a single developer, or a build/test/release area for a product release. Sharing workspaces confuses people, just as sharing a desk does. Furthermore, sharing workspaces compromises the SCM system’s ability to track activity by user or task. Workspaces and the disk space they occupy are cheap; don’t waste time trying to conserve them.· <em>Don’t work outside of managed workspaces. </em>Your SCM system can only track work in progress when it takes place within managed workspaces. Users working outside of workspaces are beached; there’s a river of information flowing past and they’re not part of it. For instance, SCM systems generally use workspaces to facilitate some of the communication among developers working on related tasks. You can see what is happening in others’ workspaces, and they can see what’s going on in yours. If you need to take an emergency vacation, your properly managed workspace may be all you can leave behind. Use proper workspaces.<br />
· <em>Don’t use jello views. </em>A file in your workspace should not change unless <em>you</em><em>explicitly </em>cause the change. A “jello view” is a workspace where file changes are<br />
caused by external events beyond your control. A typical example of a jello view is a workspace built upon a tree of symbolic links to files in another workspace –<br />
when the underlying files are updated, your workspace files change. Jello views are a source of chaos in software development. Debug symbols in executables<br />
don’t match the source files, mysterious recompilations occur in supposedly trivial rebuilds, and debugging cycles never converge – these are just some of the<br />
problems. Keep your workspaces firm and stable by setting them up so that users have control over when their files change.· <em>Stay in sync with the codeline. </em>As a developer, the quality of your work depends on how well it meshes with other peoples’ work. In other words, as changes are checked into the codeline, you should update your workspace and integrate those changes with yours. As an SCM engineer, it behooves you to make sure this workspace update operation is straightforward and unencumbered with tricky or time-consuming procedures. If developers find it fairly painless to update their workspaces, they’ll do it more frequently and integration problems won’t pile up at project deadlines.<br />
· <em>Check in often. </em>Integrating your development work with other peoples’ work also requires you to check in your changes as soon as they are ready. Once you’ve<br />
finished a development task, check in your changed files so that your work is available to others. Again, as the SCM engineer, you should set up procedures that encourage frequent check-ins. Don’t implement unduly arduous validation procedures, and don’t freeze codelines (see Branching, below). Short freezes are bearable, but long freezes compromise productivity. Much productivity can be wasted waiting for the right day (or week, or month) to submit changes.</p>
<p><strong>3. The Codeline</strong><br />
In this context, the codeline is the canonical set of source files required to produce your software. Typically codelines are branched, and the branches evolve into variant<br />
codelines embodying different releases. The best practices with regard to codelines are:<br />
· <em>Give each codeline a policy. </em>A codeline policy specifies the fair use and permissible check-ins for the codeline, and is the essential user’s manual for<br />
codeline SCM. For example, the policy of a development codeline should state that it isn’t for release; likewise, the policy of a release codeline should limit<br />
changes to approved bug fixes.1 The policy can also describe how to document changes being checked in, what review is needed, what testing is required, and<br />
the expectations of codeline stability after check-ins. A policy is a critical component for a documented, enforceable software development process, and a<br />
codeline without a policy, from an SCM point of view, is out of control.· <em>Give each codeline an owner. </em>Having defined a policy for a codeline, you’ll soon<br />
encounter special cases where the policy is inapplicable or ambiguous. Developers facing these ambiguities will turn to the person in charge of the<br />
codeline for workarounds. When no one is in charge, developers tend to enact their own workarounds without documenting them. Or they simply procrastinate<br />
because they don’t have enough information about the codeline to come up with a reasonable workaround. You can avoid this morass by appointing someone to<br />
own the codeline, and to shepherd it through its useful life. With this broader objective, the codeline owner can smooth the ride over rough spots in software<br />
development by advising developers on policy exceptions and documenting them.</p>
<p>· <em>Have a mainline. </em>A “mainline,” or “trunk,” is the branch of a codeline that evolves forever. A mainline provides an ultimate destination for almost all<br />
changes – both maintenance fixes and new features – and represents the primary, linear evolution of a software product. Release codelines and development<br />
codelines are branched from the mainline, and work that occurs in branches is propagated back to the mainline.</p>
<p>IMAGE  &#8211; 1</p>
<p>Figure 1 shows a mainline (called “main”), from which several release lines (“ver1”, “ver2” and “ver3”) and feature development lines (“projA”, “projb”, and<br />
“projC”) have been branched. Developers work in the mainline or in a feature development line. The release lines are reserved for testing and critical fixes, and<br />
are insulated from the hubbub of development. Eventually all changes submitted to the release lines and the feature development lines get merged into the<br />
mainline. The adverse approach is to “promote” codelines; for example, to promote a development codeline to a release codeline, and branch off a new development<br />
codeline. For example, Figure 2 shows a development codeline promoted to a release codeline (“ver1”) and branched into another development codeline<br />
(“projA”). Each release codeline starts out as a development codeline, and development moves from codeline to codeline.</p>
<p>IMAGE &#8211; 2</p>
<p>The promotion scheme suffers from two crippling drawbacks: (1) it requires the policy of a codeline to change, which is never easy to communicate to everyone;<br />
(2) it requires developers to relocate their work from one codeline to another, which is error-prone and time-consuming. <em>90% of SCM “process” is enforcing</em><br />
<em>codeline promotion to compensate for the lack of a mainline.</em> Process is streamlined and simplified when you use a mainline model<em>. </em>With a<br />
mainline, contributors’ workspaces and environments are stable for the duration of their tasks at hand, and no additional administrative overhead is incurred as<br />
software products move forward to maturity.</p>
<p><strong>4. Branching</strong><br />
Branching, the creation of variant codelines from other codelines, is the most problematic area of SCM. Different SCM tools support branching in markedly<br />
different ways, and different policies require that branching be used in still more different ways. We found the following guidelines helpful when branching (and<br />
sometimes when avoiding branching):·</p>
<p><em>Branch only when necessary. </em>Every branch is more work – more builds, more changes to be propagated among codelines, more source file merges. If you keep this in mind every time you consider making a branch you may avoid sprouting unnecessary branches.<br />
· <em>Don’t copy when you mean to branch. </em>An alternative to using your SCM tool’s branching mechanism is to copy a set of source files from one codeline and<br />
check them in to another as new files. Don’t think that you can avoid the costs of branching by simply copying. Copying incurs all the headaches of branching –<br />
additional entities and increased complexity – but without the benefit of your SCM system’s branching support. Don’t be fooled: even “read-only” copies<br />
shipped off to another development group “for reference only” often return with changes made. Use your SCM system to make branches when you spin off parts<br />
or all of a codeline.<br />
· <em>Branch on incompatible policy. </em>There is one simple rule to determine if a codeline should be branched: it should be branched when its users need different<br />
check-in policies. For example, a product release group may need a check-in policy that enforces rigorous testing, whereas a development team may need a<br />
policy that allows frequent check-ins of partially tested changes. This policy divergence calls for a codeline branch. When one development group doesn’t<br />
wish to see another development group’s changes, that is also a form of incompatible policy: each group should have its own branch.<br />
· <em>Branch late. </em>To minimize the number of changes that need to be propagated from one branch to another, put off creating a branch as long as possible. For<br />
example, if the mainline branch contains all the new features ready for a release, do as much testing and bug fixing in it as you can before creating a release<br />
branch. Every bug fixed in the mainline before the release branch is created is one less change needing propagation between branches.<br />
· <em>Branch instead of freeze. </em>On the other hand, if testing requires freezing a codeline, developers who have pending changes will have to sit on their changes<br />
until the testing is complete. If this is the case, branch the codeline early enough so that developers can check in and get on with their work.</p>
<p><strong>5. Change Propagation</strong><br />
Once you have branched codelines, you face the chore of propagating file changes across branches. This is rarely a trivial task, but there are some things you can do to<br />
keep it manageable.<br />
· <em>Make original changes in the branch that has evolved the least since branching.</em> It is much easier to merge a change from a file that is close to the common<br />
ancestor than it is to merge a change from a file that has diverged considerably. This is because the change in the file that has diverged may be built upon<br />
changes that are not being propagated, and those unwanted changes can confound the merge process. You can minimize the merge complexity by making<br />
original changes in the branch that is the most stable. For example, if a release codeline is branched from a mainline, make a bug fix first in the release line and<br />
then merge it into the mainline. If you make the bug fix in the mainline first, subsequently merging it into a release codeline may require you to <em>back out</em><br />
other, incompatible changes that aren’t meant to go into the release codeline.<br />
· <em>Propagate early and often. </em>When it’s feasible to propagate a change from one branch to another (that is, if the change wouldn’t violate the target branch’s<br />
policy), do it sooner rather than later. Postponed and batched change propagations can result in stunningly complex file merges.<br />
· <em>Get the right person to do the merge. </em>The burden of change propagation can be lightened by assigning the responsibility to the engineer best prepared to resolve<br />
file conflicts. Changes can be propagated by (a) the owner of the target files, (b) the person who make the original changes, or (c) someone else. Either (a) or (b)<br />
will do a better job than (c).</p>
<p><strong>6. Builds</strong><br />
A build is the business of constructing usable software from original source files. Builds are more manageable and less prone to problems when a few key practices are<br />
observed:<br />
· <em>Source + tools = product. </em>The only ingredients in a build should be source files and the tools to which they are input. Memorized procedures and yellow stickies<br />
have no place in this equation. Given the same source files and build tools, the resulting product should always be the same. If you have rote setup procedures,<br />
automate them in scripts. If you have manual setup steps, document them in build instructions. And document all tool specifications, including OS, compilers, include files, link libraries, make programs, and executable paths.<br />
· <em>Check in </em>all <em>original source. </em>When software can’t be reliably reproduced from the same ingredients, chances are the ingredient list is incomplete. Frequently<br />
overlooked ingredients are makefiles, setup scripts, build scripts, build instructions, and tool specifications. All of these are the source you build with.<br />
Remember: <em>source + tools = product.</em><br />
· <em>Segregate built objects from original source. </em>Organize your builds so that the directories containing original source files are not polluted by built objects<em>.</em><br />
Original source files are those you create “from an original thought process” with a text editor, an application generator, or any other interactive tool. Built objects<br />
are all the files that get created during your build process, including generated source files. Built objects should not go into your source code directories.<br />
Instead, build them into a directory tree of their own. This segregation allows you to limit the scope of SCM-managed directories to those that contain only<br />
source. It also corrals the files that tend to be large and/or expendable into one location, and simplifies disk space management for builds.<br />
· <em>Use common build tools. </em>Developers, test engineers, and release engineers should all use the same build tools. Much time is wasted when a developer<br />
cannot reproduce a problem found in testing, or when the released product varies from what was tested. Remember: <em>source + tools = product.</em><br />
· <em>Build often. </em>Frequent, end-to-end builds with regression testing (“sanity” builds) have two benefits: (1) they reveal integration problems introduced by check-ins,<br />
and (2) they produce link libraries and other built objects that can be used by developers. In an ideal world, sanity builds would occur after every check-in, but<br />
in an active codeline it’s more practical to do them at intervals, typically nightly. Every codeline branch should be subject to regular, frequent, and complete builds<br />
and regression testing, even when product release is in the distant future.<br />
· <em>Keep build logs and build outputs. </em>For any built object you produce, you should be able to look up the exact operations (e.g., complete compiler flag and link<br />
command text) that produced the last known good version of it. Archive build outputs and logs, including source file versions (e.g., a label), tool and OS<br />
version info, compiler outputs, intermediate files, built objects, and test results, for future reference. As large software projects evolve, components are handed<br />
off from one group to another, and the receiving group may not be in a position to begin builds of new components immediately. When they do begin to build<br />
new components, they will need access to previous build logs in order to diagnose the integration problems they encounter.</p>
<p><strong>7. Process</strong><br />
It would take an entire paper, or several papers, to explore the full scope of SCM process design and implementation, and many such papers have already been written. Furthermore, your shop has specific objectives and requirements that will be reflected in the process you implement, and we do not presume to know what those are. In our experience, however, some process concepts are key to any SCM implementation:<br />
· <em>Track change packages. </em>Even though each file in a codeline has its revision history, each revision in its history is only useful in the context of a set of related<br />
files. The question “What other source files were changed along with this particular change to foo.c?” can’t be answered unless you track change<br />
<em>packages</em>, or sets of files related by a logical change. Change packages, not individual file changes, are the visible manifestation of software development.<br />
Some SCM systems track change packages for you; if yours doesn’t, write an interface that does.<br />
· <em>Track change package propagations. </em>One clear benefit of tracking change packages is that it becomes very easy propagate logical changes (e.g., bug fixes)<br />
from one codeline branch to another. However, it’s not enough to simply propagate change packages across branches; you must keep track of which<br />
change packages have been propagated, which propagations are pending, and which codeline branches are likely donors or recipients of propagations.<br />
Otherwise you’ll never be able to answer the question “Is the fix for bug X in the release Y codeline?” Again, some SCM systems track change package<br />
propagations for you, whereas with others you’ll have to write your own interface to do it. Ultimately, you should never have to resort to “diffing” files to<br />
figure out if a change package has been propagated between codelines.</p>
<p>· <em>Distinguish change requests from change packages. </em>“What to do” and “what was done” are different data entities. For example, a bug report is a “what to do”<br />
entity and a bug fix is a “what was done” entity. Your SCM process should distinguish between the two, because in fact there can be a one-to-many<br />
relationship between change requests and change packages.<br />
· <em>Give everything an owner. </em>Every process, policy, document, product, component, codeline, branch, and task in your SCM system should have an<br />
owner. Owners give life to these entities by representing them; an entity with an owner can grow and mature. Ownerless entities are like obstacles in an ant trail<br />
– the ants simply march around them as if they weren’t there.<br />
· <em>Use living documents. </em>The policies and procedures you implement should be described in living documents; that is, your process documentation should be as<br />
readily available and as subject to update as your managed source code. Documents that aren’t accessible are useless; documents that aren’t updateable<br />
are nearly so. Process documents should be accessible from all of your development environments: at your own workstation, at someone else’s<br />
workstation, and from your machine at home. And process documents should be easily updateable, and updates should be immediately available.</p>
<p><strong>8. Conclusion</strong><br />
Best practices in SCM, like best practices anywhere, always seem obvious once you’ve used them. The practices discussed in this paper have worked well for us, but<br />
we recognize that no single, short document can contain them all. So we have presented the practices that offer the greatest return and yet seem to be violated more<br />
often than not. We welcome the opportunity to improve this document, and solicit both challenges to the above practices as well as the additions of new ones.</p>
<p><strong>10. References</strong><br />
Berczuk, Steve. &#8220;Configuration Management Patterns&#8221;, 1997. Available at<br />
http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?ConfigurationManagementPatterns.<br />
Compton, Stephen B, <em>Configuration Management for Software</em>, VNR Computer<br />
Library, Van Nostrand Reinhold, 1993.<br />
Continuus Software Corp., “Work Area Management”, <em>Continuus/CM: Change</em><br />
<em>Management for Software Development. </em>Available at<br />
http://www.continuus.com/developers/developersACE.html.<br />
Dart, Susan, &#8220;Spectrum of Functionality in Configuration Management Systems&#8221;,<br />
Software Engineering Institute, 1990. Available at<br />
<a href="http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_90.html">http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_90.html</a></p>
<p>Jameson, Kevin, <em>Multi Platform Code Management</em>, O&#8217;Reilly &amp; Associates, 1994<br />
Linenbach, Terris, &#8220;Programmers&#8217; Canvas: A pattern for source code management&#8221;<br />
1996. Available at http://www.rahul.net/terris/ProgrammersCanvas.htm.<br />
Lyon, David D, <em>Practical CM</em>, Raven Publishing, 1997<br />
McConnell, Steve, &#8220;Best Practices: Daily Build and Smoke Test&#8221;,<br />
<em>IEEE Software</em>, Vol. 13, No. 4, July 1996<br />
van der Hoek, Andre, Hall, Richard S., Heimbigner, Dennis, and Wolf, Alexander L.,<br />
&#8220;Software Release Management&#8221;, <em>Proceedings of the 6th European Software</em><br />
<em>Engineering Conference</em>, Zurich, Switzerland, 1997.</p>
<p><strong>10. Author</strong></p>
<p>Laura Wingerd<br />
Perforce Software, Inc.<br />
wingerd@perforce.com<br />
Christopher Seiwald<br />
Perforce Software, Inc.<br />
seiwald@perforce.com</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/">Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>What Is Software Configuration Management, its importance &#038; how to implement it?</title>
		<link>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:35:07 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[How to Implement scm]]></category>
		<category><![CDATA[Importance of SCM]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Guide]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Introduction]]></category>
		<category><![CDATA[Software Configuration Management Process]]></category>
		<category><![CDATA[Software Configuration Management Tutorial]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[What is SCM]]></category>
		<category><![CDATA[What Is Software Configuration Management]]></category>
		<category><![CDATA[Why Is SCM Important]]></category>
		<category><![CDATA[Why SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/what-is-software-configuration-management/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software engineers usually find coding to be the most satisfying aspect of their job. This is easy to understand because programming is a challenging, creative activity requiring extensive technical skills. It can mean getting to "play" with state-of-the-art tools, and it provides almost instant gratification in the form of immediate feedback. Programming is the development task that most readily comes to mind when the profession of software engineering is mentioned.<br />That said, seasoned engineers and project managers realize that programmers are part of a larger team. All of the integral tasks, such as quality assurance and verification and validation, are behind-the-scenes activities necessary to turn standalone software into a useful and usable commodity. Software configuration management (SCM) falls into this category—it can't achieve star status, like the latest "killer app," but it is essential to project success. The smart software project manager highly values the individuals and tools that provide this service.<br />This chapter will answer the following questions about software configuration management.</span></span></p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/">What Is Software Configuration Management, its importance &#038; how to implement it?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3958 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat.png" alt="software-configuration-management" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software engineers usually find coding to be the most satisfying aspect of their job. This is easy to understand because programming is a challenging, creative activity requiring extensive technical skills. It can mean getting to &#8220;play&#8221; with state-of-the-art tools, and it provides almost instant gratification in the form of immediate feedback. Programming is the development task that most readily comes to mind when the profession of software engineering is mentioned.<br />
That said, seasoned engineers and project managers realize that programmers are part of a larger team. All of the integral tasks, such as quality assurance and verification and validation, are behind-the-scenes activities necessary to turn standalone software into a useful and usable commodity. Software configuration management (SCM) falls into this category—it can&#8217;t achieve star status, like the latest &#8220;killer app,&#8221; but it is essential to project success. The smart software project manager highly values the individuals and tools that provide this service.<br />
This chapter will answer the following questions about software configuration management.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> <b>What Is Software Configuration Management?</b><br />
Software configuration management (SCM) is the organization of the components of a software system so that they fit together in a working order, never out of synch with each other. Those who have studied the best way to manage the configuration of software parts have more elegant responses.<br />
Roger Pressman says that SCM is a &#8220;set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.&#8221;&gt;<br />
We think that Pressman&#8217;s description is a better description because we often view SCM as meaning software <i>change</i> management.<br />
Wayne Babich describes SCM as &#8220;the art of identifying, organizing, and controlling modifications to the software being built by a programming team. It maximizes productivity by minimizing mistakes.&#8221;&gt;<br />
The Software Engineering Institute says that it is necessary to establish and maintain the integrity of the products of the software project throughout the software life cycle. Activities necessary to accomplish this include identifying configuration items/units, systematically controlling changes, and maintaining the integrity and the traceability of the configuration throughout the software life cycle.<br />
Military standards view <i>configuration</i> as the functional and/or physical characteristics of hardware/software as set forth in technical documentation and archives in a product. In identifying the items that need to be configured, we must remember that all project artifacts are candidates—documents, graphical models, prototypes, code, and any internal or external deliverable that can undergo change. In SW PM terminology, a configuration item might be a proposal/estimate or bid, project plan, risk management plan, quality assurance plan, CM plan itself, test plan, system requirements specification, system design document, review metric, code, test result, tool (editors, compilers, CASE), and so on. There are basic objects and aggregate objects to be configured. The number of relationships among them reflects the complexity of the configuration task.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Why Is SCM Important?</b><br />
Software project managers pay attention to the planning and execution of configuration management, an integral task, because it facilitates the ability to communicate status of documents and code as well as changes that have been made to them. High-quality released software has been tested and used, making it a reusable asset and saving development costs. Reused components aren&#8217;t free, though—they require integration into new products, a difficult task without knowing exactly what they are and where they are.<br />
CM enhances the ability to provide maintenance support necessary once the software is deployed. If software didn&#8217;t change, maintenance wouldn&#8217;t exist. Of course, changes do occur. The National Institute of Standards and Technology (NIST) says that software will be changed to adapt, perfect, or correct it. Pressman points out that new business, new customer needs, reorganizations, and budgetary or scheduling constraints may lead to software revision.<br />
CM works for the project and the organization in other ways as well. It helps to eliminate confusion, chaos, double maintenance, the shared data problem, and the simultaneous update problem, to name but a few issues to be discussed in this chapter.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Who Is Involved in SCM?</b><br />
Virtually everyone on a software project is affected by SCM. From the framers of the project plan to the final tester, we rely on it to tell us how to find the object with the latest changes. During development, when iterations are informal and frequent, little needs to be known about a change except what it is, who did it, and where it is. In deployment and baselining, changes must be prioritized, and the impact of a change upon all customers must be considered. A change control board (CCB) is the governing body for modifications after implementation.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>How Can Software Configuration Be Implemented in Your Organization?</b><br />
We used to say, &#8220;Make a plan and stick with it—never waffle,&#8221; and &#8220;Requirements must be frozen—how else will we know what to code?&#8221; Now, we say, &#8220;Plans are living documents—they will be in a continual state of change as project knowledge increases.&#8221; We now know that requirements are never frozen—they merge, morph, and evolve and become expanded, enhanced, and extended. As long as artifacts of software development can undergo change, we will need some method of managing the change.<br />
Because SCM is such a key tool in improving the quality of delivered products, understanding it and how to implement it in your organization and on your projects is a critical success factor. This chapter will review SCM plan templates and provide you with a composite SCM plan template for use in any of your projects. We will cover the issues and basics for a sound software project CM system, including these:</span></span></p>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM principles </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">The four basic requirements for an SCM system </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Planning and organizing for SCM </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM tools </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Benefits of SCM </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Path to SCM implementation </span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> </span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/">What Is Software Configuration Management, its importance &#038; how to implement it?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>5 Keys to Automating Configuration Management for Application Infrastructure</title>
		<link>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure/</link>
					<comments>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 12 Jan 2009 12:58:23 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Application Infrastructure]]></category>
		<category><![CDATA[Automate]]></category>
		<category><![CDATA[Automate Configuration Management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration Management Automation]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Keys]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Ways]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/12/5-keys-to-automating-configuration-management-for-application-infrastructure/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"><b>5 Keys to Automating Configuration Management for Application Infrastructure</b></span></span> </p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">One of the trends being discussed in business, among vendors and in the analyst community is the importance of automating the functions performed by IT. Growing demands by the business, tight budgets and compliance pressures together accentuate the need for IT to be more agile, efficient and responsive to business stakeholders. </p>
<p>Naturally, vendors rush into this environment, each touting the unique benefits of its solution set and the urgency to move forward immediately.&#160; A key area targeted for IT automation is the area of ‘configuration management.’&#160; As it relates to automating day to day IT functions, configuration management can mean many different things: patch management, server and network management or others.&#160; </p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure/">5 Keys to Automating Configuration Management for Application Infrastructure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3941 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/automating-configuration-ma.png" alt="automating-configuration-management-for-application-infrastructure" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/automating-configuration-ma.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/automating-configuration-ma-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>5 Keys to Automating Configuration Management for Application Infrastructure</b></span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">One of the trends being discussed in business, among vendors and in the analyst community is the importance of automating the functions performed by IT. Growing demands by the business, tight budgets and compliance pressures together accentuate the need for IT to be more agile, efficient and responsive to business stakeholders. </span></span></p>
<p>Naturally, vendors rush into this environment, each touting the unique benefits of its solution set and the urgency to move forward immediately.  A key area targeted for IT automation is the area of ‘configuration management.’  As it relates to automating day to day IT functions, configuration management can mean many different things: patch management, server and network management or others.</p>
<p>One of the newer targets for configuration management techniques is the application layer itself.  Think about that great stack of software that comprises a contemporary J2EE application—application server, web server, database, middleware and so on—typically from different vendors.  But they all adhere to industry standards, right?  So they all must plug and play together nicely, right? Not really.</p>
<p>In fact to make the entire stack work effectively, there are many individual configuration files, each one with a long list of their own parameters, which need to be edited, tuned and controlled.  And because the set of software is so complex, each element is managed by its own specialist in isolation without much knowledge of the other pieces of the puzzle.</p>
<p>The combination of many software assets, configured manually without much knowledge of dependencies leads to predictable results.  Someone makes a change in one area while stability and performance problems show up elsewhere.  Once the problem crops up, a team of IT specialists will take hours, maybe days to track down the problem and provide the solution.  Analyst firms like Enterprise Management Associates and Forrester Research agree problems in the configuration of the application infrastructure are now one of the leading causes of downtime.</p>
<p>Some vendors and businesses are now focused on a comprehensive approach to tackling this problem. The five building blocks required are easy enough to understand:</p>
<ol style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b><u>Discovery and mapping</u></b>—What application element and software assets do I have in my environment? How are they configured, item by item? </span></span></li>
</ol>
<ol style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b><u>Change monitoring</u></b>—Inform management not only about the applications that have changed, but tell them <i>how </i>they have changed. </span></span></li>
</ol>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> </span></span></p>
<ol style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b><u>Release Management</u></b>—Sometimes called ‘provisioning,’ this relates to the ability to model configuration changes to the application infrastructure and then deploy those changes consistently across all phases of the application life-cycle. </span></span></li>
</ol>
<ol style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b><u>Auditing and Reporting</u></b>—Show the business that IT supports corporate governance initiatives, not only at the server and network level, but also at the critically important application layer. </span></span></li>
</ol>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> </span></span></p>
<ol style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b><u>Integration with the IT environment</u></b>—Insure that the tools for configuration management of the application infrastructure work seamlessly with your problem management system or your configuration management database. </span></span></li>
</ol>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">1.<b>‘Discovery’</b> is usually where these solutions should start—as long as they do not end there!  In order to provide the IT team with a solution to managing the thousands of configuration settings in a J2EE application stack, you need to have a repository of the environment itself, a working model that reflects your application infrastructure.  With this repository of data in place, IT can then begin to comprehend how the various elements on the application layer are <i>actually</i></span></span></p>
<p>2.<b>‘Change Monitoring’</b> represents a critical component of a configuration management solution for application infrastructure.  With so many servers, instances and individual parameters, the number of configuration items quickly runs to the thousands per application.</p>
<p>Change monitoring must identify not only that a component changed, it must also identify exactly where the change was made and on which server(s).  Right now, IT specialists comb through text files trying to figure this out when there’s an application outage or when the application can’t make the transition out of the lab and into production. At mValent we call this “Hack and Hope”&#8211; they hack into text files, make a change and hope that it resolves the problem.  Automation tools instead can be used not only to find the change, but to find only relevant changes, ignoring unimportant differences.</p>
<p>Another key component of change monitoring to be addressed would be the notion of versioning and roll-back.  This is a well understood capability that exists in source code control systems and was applied by Documentum among others to the content management problem.  Now, we should focus on providing versioning and roll-back to the thousands of configuration settings which comprise a J2EE application stack.  Rather than have IT scramble to figure out what has changed when there’s an outage, let’s just re-instate a known working version of all of the configuration settings.  Then, IT can take the analysis and resolution off-line without the pressure to restore service immediately.</p>
<p>3. <b>‘Release Management’</b> is an important forward-looking area of a configuration management solution for application infrastructure. Right now, IT teams use a mixture of scripts and manual methods to deploy changes to application infrastructure settings. New solutions look to apply true automation to this process, insuring that configuration changes are modeled, evaluated and approved prior to deployment. Release management also validates that the process applies changes correctly. This also offers automatic deployment of changes to configuration settings and provides ‘out of the box’ templates for deploying new versions of an application server or a complete J2EE application stack.</p>
<p>These tasks currently take days to achieve and are error-prone.  Applying automation reduces cost and time while advancing quality.</p>
<p>4. <b>‘Audit and Reporting’</b> in a configuration management solution for application infrastructure refers to a capability report on the application infrastructure at a detailed level.  This would include reporting on change activity—which <i>applications</i> are driving the most change and causing IT execs the most headaches with SLAs.  Currently, this information exists at the server and network level, but less commonly for the applications themselves where change and upheaval is more likely.</p>
<p>Audit and Reporting also measures how your application infrastructure complies with recommendations, standards or your best practices for how the infrastructure should be configured.  Which assets are in compliance? Which are out of compliance?</p>
<p>Solutions should also measure change activity. Who made the change, Why, When, and so on.  And, it would be appropriate to measure whether changes were made according to your change process or were made outside that process.</p>
<p>5. <b>‘Integration with your IT environment’</b> in a configuration management solution for application infrastructure refers to the ability of the solution to fit with the other elements in the IT ecosystem, like your problem and incident management system, your Configuration Management Data Base (CMDB), a source code management system or your corporate LDAP directory.</p>
<p>Ideally the solution will integrate directly with these items and create a ‘closed loop’ environment for managing change to the application infrastructure.  As an example, when a ticket is opened requesting a change to the configuration setting for the web server, the solution should automate the actual change process, include the ticket number in the reason for change and report back to the incident system so that the ticket can be closed.</p>
<p>This eliminates yet another manual process and opportunity for error in IT management.</p>
<p><b>Benefits &amp; Summary</b>.  The major benefits of a configuration management solution for application infrastructure relate to reducing complexity and promoting compliance for IT.  By transforming today’s manual, error-prone tasks into a sequence of automated processes, your IT team will see benefits in:</p>
<p>·  Improving the productivity of your IT Infrastructure Team, by upwards of 50% and enabling them to spend more time on new initiatives rather than fire-fighting</p>
<p>·  Accelerating time-to-value for applications by 25%</p>
<p>·  Improving the quality and uptime of your applications by reducing the key elements that cause most of today’s outages</p>
<p>·  Providing comprehensive best practices and compliance reports to management and stakeholders.</p>
<p>With today’s IT struggling to meet increasing demands without headcount increases, a configuration management solution for application infrastructure offers important sources of value. configured.  More important, IT can begin to understand the dependencies between, say, how the data base is configured and its impact on the application server.  Thus, application configuration problems can be averted before they arise.</p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> Source: <a href="http://www.cmcrossroads.com" target="_blank" rel="noopener">http://www.cmcrossroads.com</a></span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure/">5 Keys to Automating Configuration Management for Application Infrastructure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
