<?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>3DN Technology &#187; daenney</title>
	<atom:link href="http://wordpress.3dn.nl/author/daenney/feed/" rel="self" type="application/rss+xml" />
	<link>http://wordpress.3dn.nl</link>
	<description>3DN Technology Blog</description>
	<lastBuildDate>Wed, 27 Jul 2011 07:14:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Software configuration management &#8211; Wouldn&#8217;t it be nice if&#8230;</title>
		<link>http://wordpress.3dn.nl/2010/01/13/software-configuration-management-wouldnt-it-be-nice-if/</link>
		<comments>http://wordpress.3dn.nl/2010/01/13/software-configuration-management-wouldnt-it-be-nice-if/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 20:31:24 +0000</pubDate>
		<dc:creator>daenney</dc:creator>
				<category><![CDATA[sccm]]></category>
		<category><![CDATA[scm]]></category>
		<category><![CDATA[VCS]]></category>
		<category><![CDATA[version control system]]></category>

		<guid isPermaLink="false">http://wordpress.3dn.nl/?p=628</guid>
		<description><![CDATA[A small introduction to the concept of Software Configuration Management and why it is useful (and can save you quite some time and frustration).]]></description>
			<content:encoded><![CDATA[<h3>/whois daenney</h3>
<p>Just a quick intro to whom you are dealing with here.</p>
<ul>
<li>student at the University of Twente in The Netherlands</li>
<li>working voluntarily as a system administrator at study association <a title="Inter-Actief website" href="http://www.inter-actief.utwente.nl/" target="_blank">Inter-</a><em><a title="Inter-Actief website" href="http://www.inter-actief.utwente.nl/" target="_blank">Actief</a></em> for at least four years now.</li>
</ul>
<p>I dare say I&#8217;ve seen quit a few things that can go wrong (very badly wrong too) and the most weird incompatibilities between even relatively similar platforms like FreeBSD and Debian.<br />
Though I&#8217;m sure that there&#8217;s room for quite the improvement in our network and setup one of the things I find we&#8217;ve done quite well at <a title="Inter-Actief website" href="http://www.inter-actief.utwente.nl/" target="_blank">Inter-</a><em><a title="Inter-Actief website" href="http://www.inter-actief.utwente.nl/" target="_blank">Actief</a></em> is our configuration management.</p>
<p>I&#8217;ve worked for a few companies in the IT branch over here in this kingdom, ranging from tiny startups to established names in their branch. Though those companies often have complete systems in place for documentation, versioning of code and any other expensive solution you can imagine it seems impossibly hard to find a company that applies that same idea to configuration management.</p>
<h3>The idea</h3>
<p>SCM (software configuration management) or SCCM (software configuration and change management) is:</p>
<ul>
<li>a method for organising,</li>
<li>maintaining</li>
<li>and tracking</li>
</ul>
<p>all kinds of configuration changes, from updates pushed to clients to web-server configuration to pushing settings to a mobile device.</p>
<p>Though it can be extremely complex and very powerful to have such a solution in place most companies don&#8217;t see the need for it, don&#8217;t understand the need for it or just don&#8217;t want to spend yet another couple thousand euro&#8217;s on yet another toy for the tech-guys.</p>
<p>Another quite valid point made by Fred was that SCCM makes changes, every change, from top to bottom traceable, which some companies might not be all to comfortable with, it makes it easier to blame someone for a mistake too (and the manager who ordered the change).</p>
<p>I&#8217;ve personally encountered quite a few situations where for numerous reasons changes were made to a corporate environment which after being live for a while turned out they had broken other features of the corporate intranet or even exposed parts of it to the outside world.</p>
<p>Such errors happen and the consequences can be quite nasty for a company, for the poor guy or gal who made the changes. But more important in such a situation is the ability to respond rapidly, to revert the changes and then asses what went wrong and try again.</p>
<p>This is basically what I will try to focus in in the coming ramblings about SCM, why use SCM, how to use it, when to use it and a simple way to implement is.</p>
<p><span id="more-628"></span></p>
<h3>Mindset</h3>
<p>The main problem with most companies is that they don&#8217;t see the need for SCM to begin with. Because, really, we&#8217;ve got our IT-guys in the basement, they&#8217;ve configured everything, it works and because we are such an awesome company and can see in the future we&#8217;ve set up an environment which will last for at least 10 years.</p>
<p>Time to wake up here, that dream, ain&#8217;t gonna happen. Just as the market and the world changes, you adapt to it, and so will your environment because it will need to meet new demands by your workers. Long story short, an IT-environment is as dynamic as the company itself and just as it is important to know which changes are made to products, to visions, to a direction you&#8217;re taking it is important to be able to see which changes have been made to your IT infrastructure, what triggered them, how it has grown and possibly what went wrong where and learn that lesson.</p>
<p>Just to put everything into place, let&#8217;s start with a few usecases, shall we.</p>
<p>Welcome to Peapl, a company specialising in educational software and social engineering solutions. It has about a hundred servers ranging from content-servers, to their corporate intra- and extranet, mail-servers, a few PBX&#8217;es and so on.</p>
<p>Recently the company has started to use IPv6 internally as a test-phase and some changes were made to the webserver configuration to accomodate that. Though everything seems fine, a few days later someones discovers that a part of the intranet is behaving oddly and, total disaster the intranet is accessible without having to provide authentication credentials.</p>
<p>In such a case, the first thing you want to do is</p>
<ul>
<li>roll back to the &#8216;last good known working configuration&#8217; and after that has been handled</li>
<li>start looking for what caused the problem.</li>
</ul>
<p>But&#8230; oh dear, where did the old configuration files go? Didn&#8217;t you create a backup? Didn&#8217;t you copy the old configuration file to the same dir in case something went wrong? Of course you did but when all seemed to be working these reserve copies were removed&#8230;</p>
<p>Such situations are far more common than you might think. Especially when you&#8217;re working with multiple people on some configuration changes in a big environment, a simple miscommunication can be enough to cause quite the trouble.</p>
<p>Another case&#8230; You&#8217;ve just tested an update in you test-environment and have made the necessary changes to the production environment to push those changes to all clients involved, say a Multivers client update to the financial department.</p>
<p>Next morning, their manager calls, complete disaster, the update failed, some licensing issue, now the financial department is in lockdown and they can&#8217;t do anything. Oh shi-.</p>
<p>In that case, it would be extremely useful if with just a few commands you could:</p>
<ul>
<li>revert the update</li>
<li>get the old configuration for that application back</li>
<li>and just tell that poor manager that the update has been undone, if everyone would be so kind to reboot, the problem will be fixed.</li>
</ul>
<p>More importantly, it gives you the possibility to see what was changed and how that could&#8217;ve caused this problem.</p>
<p>Another example, but now the other way around. What better way to introduce someone to your network, explain how it works and how it has changed than having access to a history of your network configuration and changes through your SCM? Just dig in, map it out and you might actually be able to find some problems before they even occur just by connecting the dots and thinking about each consequence a change brings with it.</p>
<p>Sounds good, doesn&#8217;t it?</p>
<p>Ah, but there&#8217;s a catch. As I said earlier, most companies don&#8217;t see the need for such a solution. SCM requires a certain mindset. SCM is not some for of wicka which can do all this automagically, it doesn&#8217;t require a robe and wizard&#8217;s hat. It does however require a certain precision and the habit of documenting your changes and making sure that changes are put into your SCM solution.</p>
<p>Unfortunately, SCM is most often deployed as a counter measure, when it&#8217;s gone wrong a few times or it&#8217;s become clear that changes are so difficult to implement because no one actually really knows how everything works anymore and is afraid to touch the system because it just might blow up. SCM is then often forced upon a department, which makes it that more irritating because suddenly you have to accomodate to this new SCM thing and change your working habits to suit it.</p>
<h3>Starting with SCM</h3>
<p>The best way to start with SCM, in my opinion, is to start small. Even though it might seem completely useless in a small environment it&#8217;s the habit that matters. Getting that routine in your head that when you make changes, you document, immediately and completely. Already having such a system in place makes it a lot easier for new people to get started with that routine than when it is later on forced upon everyone from the top.</p>
<p>Personally I&#8217;m a bit of an over-achiever when it comes to SCM. I track anything and everything, from our servers at Inter-/Actief/ to my own server in Amsterdam, my gateway at home, even from my phone I can pull up a complete history of changes. And the weird thing is, I actually get frustrated when a SCM solution is not available, because my routine is so used to it.</p>
<p>So, how do we do it, this great SCM thing?</p>
<p>Well for starters, we need to find a solution that</p>
<ul>
<li>implements SCM in a way we like</li>
<li>which suits our network and method of work</li>
<li>preferably doesn&#8217;t cost a lot</li>
<li>is relatively simple to implement in our current infrastructure</li>
<li>works with all the different platforms involved</li>
</ul>
<p>Good luck finding one&#8230; we couldn&#8217;t. The problem with pre-made SCM solutions is that they often target a certain type of network or platform. <a title="System Center Configuration Manager" href="http://www.microsoft.com/Systemcenter/configurationmanager/" target="_blank">Microsoft has it&#8217;s big SCCM</a> but try to get that to work with a Unix machine. Similarly, most providers of SCM solutions assume a certain network topology, platform prevalence or want to sell you a complete solution integrating with other products of theirs&#8230;</p>
<p>For those exact reasons we decided to create our own SCM. But instead of writing it from scratch we decided to use something freely available, a <a title="Wikipedia: version control system" href="http://en.wikipedia.org/wiki/Revision_control" target="_blank">version control system</a>. It gives us all the nice features of being able to track configuration changes, get full histories and diff&#8217;s of those changes, mapping it out, seeing relations between a configuration file and another and since al major version control systems support hooks it gives us the ability to do all kinds of things once we make changes to a file, from logging it to a central facility to getting all clients involved to pull a certain change-set to them to update their configuration with.</p>
<p>(to be continued&#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://wordpress.3dn.nl/2010/01/13/software-configuration-management-wouldnt-it-be-nice-if/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

