Thought provocation can come from many places. For example, I recently saw a television commercial where a non-descript young lady pronounced herself as “racially ambiguous” in a satire on competitors advertising. The ad is intended to convey the message that she is “just like you”, no matter what you look, dress, or talk like and hence the product is right for everyone.
It occurred to me in that moment (my mind works in strange ways) that Cloud computing could result in the ambiguity of computation. The name “Cloud” even infers a certain level of obfuscation (or clouding) of the underlying infrastructure. Something about this bothers me so I thought I would reason through it with you.
One caveat, while this may seem like a strange warning coming from a Cloud strategist and evangelist, it is simply an attempt to caution against computational ambiguity and is certainly not intended to be a negative commentary on Cloud computing in general. After all, it’s this or serving Caramel Macchiato’s at Starbucks and that would not be a good thing for anyone.
The Cloud provides the ability to do things that are not possible with other computing models but “hiding” some of the most important parts of the architecture removes an important part of our identity.
When a culture loses its identity things tend to get less interesting (Read: boring and lacking creativity). Traditions are forgotten, the things that make us unique are gone, innovation comes to a standstill and we become very mechanistic in all aspects of our personal and professional lives. We essentially become a society of wooden-headed puppets that have little need for the gray matter between our ears.
Sure, abstracting away the layers can simplify development, deployment, management and maintenance but at what cost? Perhaps there will be long-term unforeseen and unintended negative effects such as intellectual degradation in the architect and developer community.
Think about it, we are depriving architects and developers of their God-given right to worry about things like capacity, code optimization, resource utilization and performance. Will computer science programs start dumbing down their curriculum because the infrastructure is no longer in the thought domain of the developer or architect?
Infrastructure capacity is now only a tick away. Failed to contemplate resource requirements and need more capacity, just increase the number of servers by selecting a check-box. Need multiple instances of an application, just increase the digit from 2 to 3, oops too much, just change it back on the fly. Where is the art and science in that type of approach?
Cloud computing has the potential of stripping away the intellectual heavy-lifting of architecture, design and development and stifling innovation. When you have limited resources you tend to be more innovative in the way you allocate and utilize them. The Cloud eliminates that problem and along with it can come sloppiness and a laissez-faire attitude towards utilization and optimization of the underlying infrastructure and hence, the applications themselves.
Will the Cloud cause us to all start looking and acting the same by eliminating our identity and hence our ability or even desire to innovate?
As a Cloud Platform Strategist & Evangelist I implore you to challenge your developers and architects to remain concerned with the optimization and utilization of Cloud resources and never stop innovating for efficiency and performance. We are denizens of the technology society and it is our duty and responsibility to continue to innovate, both in the Cloud and on earth.
Remember, only you can prevent computational ambiguity!