Tuesday, September 22, 2015

Provisioning For What Purpose? (Part 1)

In the early part of the last decade, I ran a global education program at a mid-sized company called Softwatch.  In this role, my responsibilities required that I provide education to our partners around the world.  One such occasion had me traveling to Paris to teach a class with 20 students from various parts of Europe, and so my partner Matt Grob and I flew out on Saturday to spend the weekend creating a complete education lab from scratch.

Granted, it's not incredibly taxing when you're building a lab in Paris of all places.  The process, which was fairly straightforward, took us both days and then we had the nights to explore the Champs-Élysées, La Concorde, etc. not to mention eat and drink amazing culinary delights.

However, I digress.  The point I am trying to make is that it took us an entire weekend to build 20 computers in an identical manner.  It cost the company several hundred dollars to provide accommodations (hotel and meals) that would have been unnecessary if it were 2012 instead of 2002.

But it must be said that provisioning, for provisioning's sake, is never done - there is always a purpose. This task is performed to provide an environment that can run applications.  Maybe the applications are COTS (Commercial, Off The Shelf) or internally developed, but applications are the raison d'être.  Even in my story, we were building the machines so that my company's software could also be installed and run by the students during the class.

Provisioning, then, should be considered part of application release.

Many companies have missed the boat:  BMC's BladeLogic and CA's Automation Suite for Clouds are provisioning with no purpose.  They require other solutions to consume the produced machine, real or virtual, so that it may be incorporated into a bigger picture.  But customers no longer want building blocks - they want turn-key solutions - so these formerly bedrock solutions are now passé.  This is evidenced by the fact that both of these solutions are now buried deep within the websites of their respective owners.  I suspect similarly deep locations will be found on the websites of other vendors in this space.

Looking at the bigger picture, however, we see that provisioning is simply a sequence of steps to be followed:  
  1. Install the OS
  2. Install the application server, DBMS, or ESB
  3. Configure the application server, DBMS, or ESB
  4. Connect it to the rest of the infrastructure
  5. Deploy the application components on the box.  
The above steps define a process to be automated.

Automation is automation, regardless of how it's being used.  And all automation, regardless of its design, requires core capabilities that have withstood the test of time in terms of stability and scalability.

In part 2 we will look at some of these core capabilities that should be required features of any automation platform.