Trying to be aware of technology trends over time as they can provide insights into future trends, I have always thought that since the dawn of computing (mid 1940’s) and the fragmentation that occurred as a result of personal computer(1980’s) , we have been taking steps to go back to what was once called “centralized computing” or “time sharing of computing”. The latest installment of this iterative process has been dubbed “cloud” computing and we are on the back side of this marketing buzz word.
“Cloud computing” has had its 4ish year run as the latest and greatest buzz word in computing – it has spawned conferences and its own Open Source efforts such as Eucalyptus (2008) and/or Open Stack. Prior to cloud, it was “grid computing” in the mid 2000’s, prior to that “client sever models” were prevelant with hints of “thin clients” running around, prior to that we were just being introduced to Windows ’98 (remember that!!) – amazing to take into consideration how much has changed over the last decade.
Now we sit, after 4years of development and market acceptance, with all sorts of off shoots of the term “cloud” – we have Private, Public, Hybrid, and even Community clouds. All of which beg the question, just what does the term mean any longer?
On top of there being now a fragmentation of the term, we also have a number of real world, high profile moves away from the original and most popular of the clouds, Amazon Web Services (AWS) such as Zynga’s move to their own “build to suit” infrastructure, signaling that “one size does not fit all”.
Taken into consideration the evolution of computing, we are still on the path to “computing as a utility” and cloud has represented a step in that universally sought direction, however, I think we are going to see some new terminology emerge to describe the next step – what is that next step you ask?
In a perfect world, application developers will simply design their apps to APIs which in turn leverage the underlying infrastructure which includes the same things since computers were invented: Compute resources, Memory, Storage, and networking (keep an eye on OpenFlow as routing moves towards software). In parlance that had a short lifespan, but still exits, this was broken out with Infrastructure as a Service (IaaS), Platfrom as a Service (Paas), Application as a Service (AaaS – don’t blame me for this last one!!), where by the APIs live in the PaaS portion of this consolidated “stack”.
Again, in the world we seek to develop, the IaaS portion will have become “self aware” as all things associated with providing those resources will be connected and this includes everything from “power to packet”: data center infrastructure: HVAC, Elec, temps, etc., computing resources, etc., such that IaaS can determine the optimal resource configurations for any application at any given point of time – where it is stored, how it is stored, how it interacts with end users and from where, as well as, optimal business drivers like $/kW/hr, Watts/Transaction, and transaction/gross margin $s. Are we there yet, not quite.
As outlined, the “cloud” has had a great many benefits to the industry at large as it has provided an agreed upon terminology (although it isn’t perfect), it has centralized the goals of Infrastructure Engineers to move towards the paradigms described above of self-aware, programmable Infrastructure, and has, at this point, been tested enough to realize that not all applications are the same and, thus, how they leverage Infrastructure is slightly different per App.
So while cloud has had its “15 minutes” the industry at large is moving on and forward towards the ultimate goal of “smart infrastructure” – I posit that this is now possible due to the move to IPv6, however, that is a post onto itself.
The “Cloud Era” is in our rear view mirrors and we are in the midst of a “marketing speak transition” seeking the naming convention of this new Era. I think IaaS, PaaS, and AaaS are pretty good proxies for what i is to come, however, I’ve been playing with derivatives of “build to suit” or “bespoke infrastructure” or “dynamic infrastructure” or just “mixed infrastructure” where the underlying building blocks are the same and simply fine tuned to the apps needs (ps – this is where the APIs will play an every increasingly important role in this new era).
Please let me know if you’ve thought of any other terms that speak to what we are living now.