Wednesday, September 9, 2015

Containers - Back to the Future of Software Development Yet Again

A new concept of "containers" promises to make software applications free-standing entities, essentially infrastructure-independent.

H/T to Federal Computing Weekly (FCW) for a good overview post on this concept and some thoughts on the challenges with implementing it.

This concept makes sense.  But we've heard this song before:

  • Object-oriented programming was supposed to shred everything down to micro-applications that could just be recombined to make full-sized applications
  • Services-Oriented Architecture (SOA) was supposed to shred everything down to micro-services that could just be recombined under a thin execution logic layer to make full-sized applications
  • Virtualization was supposed to separate systems into n-tier architectures so that the applications could be treated as black boxes and shifted from one infrastructure to another.
Issued raised in the article include:

  • Container realization software is still new and changing rapidly.  That poses all sorts of complications if the goal is stability, and might cause rework of the applications to stay compatible with their own platforms.
  •  Once it goes into production, many applications depend on it (or at least that is the idea).  How do you make sure nobody fixes it, or amends it to suit a new applications, without validating the impacts on all the application?

This is not the first time we've heard those concerns raised, either, so maybe we have a better idea today on how to solve them.

So what is different about the new containers?
Your observations are very welcome!

While you're here: I's super-pumped for the pending release (October) of:
Let It Simmer: Making Project, Portfolio and Program Management Practices Stick in a Skeptical Organization.  Take a peek!

Photo credit: "M├╝lltrennung" by Peng 6 July 2005 16:28 (UTC) - --Peng 6 July 2005 16:28 (UTC). Licensed under CC BY-SA 3.0 via Wikimedia Commons -