04 Oct 2013

Moving up the stack - the drive to software automation.

One of the best (or worst, depending on your viewpoint) things about working in Information Technology is the fact that we work in a constant state of change. This change is accelerating exponentially as we find and discover new ways to utilise the general purpose tools we have at our disposal. Virtualisation changed the marketplace dramatically when it was first introduced as a commodity service. It wasn’t actually a new concept, Mainframes and various POSIX compliant operating systems had been utilising multi-user operating and virtual instance systems since the first computers. The driving reason for this was size (computers were room or building sized) and cost (most cost more than the GDP of a small nation). As the power of the commodity compute units came into place, those drivers disappeared and it became easy to deploy the computers close to the people who used them. Often on their desk. We took advantage of the fact that we could not consume all the power of a single piece of hardware with a single workload. So let’s run more on one piece of hardware by utilising smart software. This smart software paradigm is now being applied to other areas of the infrastructure stack. Microsoft utilise NVGRE to provide network virtualisation in their hypervisor systems, VMWare have announced a similar network virtualisation. Software is eating hardware capability in the datacentre at a rapid rate. Why is there this drive to the software virtualisation of everything? Simply: Automation. It’s really, really hard to automate a person plugging in cables in a large environment. It’s absurdly easy to automate software changes to allow a similar configuration change, and this scales very well. Without this level of software automation it is cost prohibitive to deploy cloud solutions at scale. As massive cloud systems build this level of automation, we take advantage of their R+D as it’s passed down. But this drive to software automation is not just pointing down at the infrastructure stack, it’s moving up as well. They Hypervisor is becoming a commodity item in the same way that the physical infrastructure has. What is important now is how your command and control systems are used to manage the complexity of multiple cloud systems, be they IaaS, PaaS or SaaS. The analogy I use all the time for this is the car. When you get into a car, a very simple system of controls is in front of you that drives all the complexity of the vehicle. You can get into any car these days and reasonably expect to be able to drive to another location with a minimum of fuss. This is even true or Left hand to right hand drive: the clutch is always on the left. Sure, the bells and whistles like radios and cruise control may vary, but these are not necessary for the basic functionality of the vehicle. Look to your cloud provider to give you a command and control system that is easy for you to drive, easy to connect to your on premise infrastructure and provides you will all the basic features you need to deliver your applications.