My President came to me recently and asked, “What is cloud computing all about?” I remember the words of a Paul Simon song running through my mind—“Your time has come to shine . . .” The spotlight was on me and I didn’t hesitate. I launched into an eloquent discussion about private clouds, public clouds, and hybrid clouds. I waxed poetic about IAAS, PAAS, and SAAS. After a brief but thorough explanation I stopped speaking so my President would have a chance to tell me that he now had a perfect understanding of cloud computing. Instead, he looked me straight in the eye and asked, “So, what is cloud computing all about?”
I was crushed. I had just used all of the buzzwords in the latest edition of the Official CIO Handbook and still came up short. This time another cultural reference popped into my head, “Failure is not an option.” Knowing my President to be a rigorous academic I decided to throw away as many of the acronyms and buzzwords as possible and answer his question based on first principles. Taking a deep breath and proceeding much more cautiously than before, I tried again. Cloud computing is not the enormous data centers operated by companies like Amazon, Microsoft, Rack Space or eBay who use their scale of operations to drive costs as low as possible. Cloud computing is a collection of software, standards and best practices designed to make it easy to move computational workloads from one computational environment to another. To say it a little more plainly, cloud computing is about the ability to move my computational workloads between data centers X, Y and Z at will, in any proportion I want, as often as I want and without any impact on the people using my systems Simply put, cloud computing is Fungible Computing.
"IPaaS integrates workloads into disparate cyberinfrastructures, managing the movement of apps from one “Cloud” to another through a single pane of glass without the development of custom code"
I watched carefully as my President’s eyes, which had been vaguely focused at a blank wall over my left shoulder, came alive with understanding and interest. Encouraged, I explained that we still have a lot of work to do before Fungible Computing becomes ubiquitous. The fundamental building blocks of our cyberinfrastracture—Servers, Storage, Networks, and Applications—are at different levels of maturity when it comes to the virtualization and abstraction needed to make Fungible Computing a reality.
Academics and technology companies have pursued server virtualization for over three decades. It started with the recognition that, as servers grew more and more powerful, dedicating a physical server to a single application resulted in a lot of computational cycles being wasted with each tick of an internal clock. Products like VMware, Hyper-V, and Xen Project are used in every data center in the world to improve efficiency and lower costs. By decoupling the operating system and applications from the physical hardware, these virtualization tools provide a level of abstraction that makes it practical to move workloads between different servers.
Fungible Computing Maturity Level—High
All storage vendors have made major advancements in storage virtualization. Pooling, mirroring, replication, and logical block addressing have made the life of storage administrators much easier. Optimizing storage utilization, seamlessly moving data from disk to disk, automating storage backups, supporting enterprise business continuity plans and managing ever-increasing volumes of data have become the norm. Unlike with servers, storage virtualization is most successful in homogeneous environments.
The lack of interoperability between storage platforms is not the only obstacle in the way of a fungible storage environment. We all put considerable time and effort into designing a storage environment that matches the network latency and bandwidth and read/write capabilities with the needs of the application. Most cloud architectures are capable of handling a large number of transaction requests and moving large amounts of data vertically into and out of their environment. They are not optimized to handle the horizontal movement of data between servers within an environment. This is vital for enterprise applications.
Fungible Computing Maturity Level—Medium
Preparing the network will be a barrier to achieving a fully fungible cloud environment. Software Defined Networking (SDN) is the concept of centrally controlled and programmable networks. Large payloads and time-sensitive data are driving the need for a more deterministic approach to delivery, and SDN allows administrators to readily provision networks that are scalable and flexible—able to adapt dynamically to the unpredictable traffic patterns characteristic of cloud computing. SDN architecture allows more predictable behavior for data delivery because networks can be programmed to recognize the type of data flowing through the network and usage patterns. With time, SDN will do for networking what server virtualization did for servers. As it stands, SDN is not ubiquitous. Only when SDN is universally adopted will the network be fungible.
Fungible Computing Maturity Level—Low
Where the cloud offers great opportunity for new development, it also offers great challenges for existing applications. Many entrenched, large-scale; enterprise applications were designed decades ago, before the advent of the modern cloud. I need to point out that simply rewriting an application to run natively in a multi-tenant environment is not enough. To support Fungible Computing, applications must to be designed to use SDN tools to automatically create the network that is needed without the end user knowing or caring that the application has been moved from cloud provider A to cloud provider B.
Fungible Computing Maturity Level—Very Low
As I explained all of the hurdles to Fungible Computing, I watched the spark of interest in my President’s eyes fade as his gaze shifted to that blank wall over my left shoulder. I knew that I would have to save the discussion about Identity and Security for another day. In a desperate attempt to end on a positive note, I went back to the Official CIO Handbook (every CIO should have a copy) and pulled out one more buzzword – Integration Platform as a Service. IPaaS products like Dell’s Boomi and Informatica Cloud do the hard work of automatically mapping your workloads into different clouds. Integration is the keyword here. IPaaS integrates your workloads into disparate cyberinfrastructures, managing the movement of applications from one “Cloud” to another through a single pane of glass without the development of custom code. While these products don’t solve every shortcoming that we just discussed, they are very effective in making “The Cloud” fungible.
Fungible Computing Maturity Level—High