Hands up who still writes applications by sending commands to micro-processors? I’ll bet its a niche minority. But at one point it was the only way to write any sort of application! It proves an unavoidable fact, that technology loves abstraction. Whether its hardware, services, functions, libraries… we abstract it all to a higher and higher level.
There’s a pretty easy answer to why we abstract… We are drilled to make sure that things we build are repeatable and reusable, that one update applies everywhere. Why would you write your own interface to a sound card in a Windows laptop when you can exploit the abstraction already provided to you?
So where do we draw the line between things we write and things we abstract? This line is constantly moving, the rate of technology progress means that innovation drives standardisation and ultimately abstraction – this impacts who you work with as new intermediaries pop up. How many of you still have direct sales relationships with Intel… in the future how many will have direct relationships with any kind of hardware manufacturer…?
We must also put all of this alongside a deep-rooted human desire for simplicity. People might admire complexity, but they gravitate to simplicity. When asked to recall a famous scientific principle which one resonates with you?
Both are world changing theories, but only one is the poster child for the beauty in science. So the disciplines of science and technology seek to abstract and simplify. This raises some important questions when we think about our current challenges.
Take for example the new front that is opening up in the cloud battle – PaaS. Many claimed it dead, but its now the new place for abstraction. To take complex things like infrastructure and simplify it to services, the operating systems did this, why wouldn’t the cloud?
To pause for a second, let me share my definition of PaaS to clarify – for me, Platform as a Service is complex business services based in IaaS such as authentication or big data or web services packaged up with an API that talks in terms of business value and function rather than the more directive API operations in IaaS. Why spin up a cloud server, or even worry about the complexity of configuration management for that instance when I can just define a service and interact with it directly?
There’s another post coming on this – but the PaaS battle will be messy. You have early vendors like Heroku looking to stay relevant, IaaS vendors looking to pass off their offerings as PaaS and new container technology like Docker offering a totally new approach to this problem. In short, get ready for FUD… lots of of it.
So what does this mean for our appetite for abstraction? Well abstraction implies standardisation and simplification. Neither of these are words synonymous with cloud right now. Could our appetite for innovation and abstraction be outstripping our desire to consolidate, standardise and simplify? How will businesses being pushed to keep pace with the bleeding edge manage the move to PaaS when the foundations it is built on are anything but firm right now?
Don’t be scared of PaaS… but spend some time standardising the layers it depends on before you go and throw more abstraction into the equation.