Channels ▼
RSS

Design

Version Control: Development vs. Operations


Erik Troan is CTO at rPath, a company that delivers enterprise applications across cloud-based environments. Erik recently spoke with Dr. Dobb's about the rapidly changing world of distributed computing.


Strong version control has become a key part of the software development process because it enables developers to collaborate in the construction of large-scale, complicated projects. Strong version control manages complex software artifacts, transforming a maze of individual files -- which often change independently -- into a single version number that represents the state of the entire source tree. At any time, you can query a version number and know exactly what revisions of which source files it included. You can also control changes between versions and go back in time because you have a complete representation of the version history. It's a controlled and automated approach to an inherently complex process.

But the techniques we've developed for software development have rarely been applied to the world of IT operations. Today, managing deployed systems is highly manual and often inconsistent and chaotic, which creates costs, risks and delays for businesses. A core reason for this is that there is typically no authoritative way to manage the versions of deployed systems. At any point in time, a deployed system comprises several hundred packages, which are all versioned independently. This means that managing a system actually means managing the hundreds of individual versions that comprise the system -- with no single version to define the system itself.

This makes it difficult or impossible to answer -- or even ask -- questions like:

  • What version of our validated software stack is running on this system?
  • How has this system changed from our original specification?
  • How old is this system compared to newer installs?
  • What would happen if we upgraded this system to a later build?

Asking these questions -- and getting answers which can be understood and acted upon -- requires an explicit and authoritative understanding of a detailed version history over time. And this information simply doesn't exist for most organizations today. The reality is that IT operations are arguably more complex and more business critical than software development. But IT operations groups completely lack a comprehensive version control infrastructure for their deployed systems.

Version control systems provide the right model for capturing and utilizing the underlying version relationships between the hundreds of packages that comprise a single running system, as well as for managing system software deployments across thousands of machines.

Without strong version control for deployed systems, IT operations groups are exposed to excessive cost and risk -- they're effectively flying blind. This is particularly true as applications become increasingly diverse, interdependent and distributed in nature. In short, in today's complex and cost-conscious IT environments, strong version control is essential for well-functioning, efficient, and compliant application delivery and systems management.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video