The Future of Computation in the Cloud and Beyond

When computers pass around Web pages, they don’t know what they’re talking about but I envision an intelligence emerging where creation and consumption will be dominated by computers not people.

Eventually, the Cloud will arrive at a much richer infrastructure, in which ideas can potentially evolve outside of human minds.

Imagine something happening in the Cloud along evolutionary lines. It already happens in trivial ways, with viruses, but that’s just the beginning. Imagine nontrivial forms of organization evolving in the Cloud. Ideas could evolve that are much too complicated to hold in the human mind.

We can already detect primitive forms of organization in the Cloud that we didn’t design. We are already observing a pattern of organization we can identify & even make sense of but we didn’t engineer it. Clouds will ultimately get more intelligent & start interacting, not just carrying messages for humans but sharing knowledge among themselves.

We will see patterns evolve among Clouds that we can comprehend, as we comprehend the patterns of living organisms, but not completely understand them. Some forms of organization among Clouds that go beyond humans are already evolving. In the short term new forms of human organization are enabled.

We don’t necessarily understand all the details of the organization forming among Clouds, just as we don’t really understand all the details of living organisms. However, just because we don’t understand something doesn’t mean its not happening.

Imagine!

Anthropology and Multi-Tenant Computing

Prophets normally have the advantage of being dead long before their prognostications are proven to be wrong. A few fortunate seers live beyond their predictions and are quite surprisingly, proven to be right.

One of these rare individuals is Dr. W. Daniel Hillis. (Danny) Hillis, was the mind behind Thinking Machines, the father of the Connection Machine and is to this day, a computer visionary extraordinaire that through his work at Applied Minds, Long Now Foundation and The Rosetta Project is still shaping the future of science and technology.

Dr. Hillis once speculated at the height of the client-server movement, that computing would transition back to a mainframe style time-sharing (“multi-tenant” in Cloud parlance) model with smart terminals connecting to a web of unlimited supercomputing resources. I can only imagine how many “eye rolls and snickers” he received by computer “geniuses” of the day over this prophecy.

Well Danny should be feeling pretty good given that the world is now connected through the Cloud and we are all co-tenants just as he had predicted. While the “public” Cloud does not exactly provide supercomputer performance, there are special purpose resources available that provide complex high-performance scientific computation in the Cloud.

SGI has extended supercomputing to the Cloud with their Cyclone HPC in the Cloud offering and Microsoft entered the high-performance Cloud computing space through their Modeling the World technical computing initiative.

These Cloud models are very similar to cities in that they represent collections of affinity groups. That is to say that they are typically organized by socio-economic drivers.

Socio-economics refers to the social impact of some sort of economic change. Such changes might include a closing factory, market manipulation, the signing of international trade treaties, and even new computational models such as the Cloud. Social effects can be wide-ranging in size, anywhere from local effects on a small community to changes to an entire society.

Drivers of socio-economic change include changes in laws or regulations, changes in the physical environment such as increasing crowding, new technologies such as Cloud computing and specialized services such as High Performance Clouds.

These changes may affect patterns of consumption, the distribution of incomes and wealth, the way in which people behave both in terms of purchase decisions and the way in which they choose to spend their time, and the overall quality of life (or service in the case of computing).

Failure Mode and Effects

Failure, something that nobody likes to contemplate but it is inevitable, especially when it comes to technology. However, the mode in which something fails and its effects can be radically different.

For example, a light bulb is designed to illuminate and it only has one failure
mode, that is off and the effect is darkness. Not a big deal other than possibly a stubbed toe while fumbling around in the dark looking for a candle.

However, a carbon monoxide detector is designed to warn you of dangerous CO levels. It too has only one failure mode but the potential effect is death.

The recent failure at Amazon got me thinking about Cloud computing failure modes and effects. The Cloud is significantly more complex than a light bulb or even a CO detector and has tens of thousands of potential failure modes and the effects can range from performance degradation to catastrophic failure that results in complete outage and data loss.

Side note: If as a result of catastrophic hardware or software failure (or any other reason), data integrity is lost, then that data may as well be floating around space as a bunch of random electrons because it is useless junk so don’t bother recovering it and charging me for the disk space to store the garbage created by your failure. Sorry, back to the point.

It is beneficial then to understand the “failure mode and effects” of everything we use in our personal and professional lives in order that we may identify those that are critical and develop mitigation strategies for their imminent failure. A Failure Mode and Effects Analysis (FMEA) is a very useful tool for this. It’s not a complex exercise nor does it require a Ph.D. in statistics to perform.

Simply get out a pad of paper and start listing all the potential failure scenarios and their effects. This is the easy part so don’t get too comfortable yet. To be a truly meaningful exercise the FMEA should be supplemented by a basic probability analysis that would identify the likelihood (high/moderate/low) of the potential failure and some mitigation or contingency plans.

“Oh wait”, you are probably saying to yourself, “this all sounds familiar”. That’s because it’s from Business Continuity Planning 101. That’s right, I have not told you a thing that you didn’t already know but your two minutes have not been wasted because I have reminded you of something that you had forgotten.

That seems to be quite common when it comes to Cloud computing. We forget all the basics. Just because we can’t see it doesn’t mean we get to forget it. Apply the same level of due diligence to the Cloud that you do in the physical world and all will be fine.

That is not to say that there won’t ever be a failure, but at least you will have a plan in place to mitigate the effects.

Is It Still HPC If Anyone Can Use It?

High Performance Computing is supposed to be something special. Those magnificent, highly specialized screaming silicon eaters that can bitch-slap a Monte Carlo simulation into submission before breakfast and have a DNA sequencing party for lunch, all without producing one bead of sweat on its brow.

They are not supposed to be commonplace or ordinary. They operate in rarified air and are reserved for the biggest and baddest calculations on the planet and those with the requisite business and scientific challenges to feed their insatiable appetite for complex computation.

If everyone could use these majestic computing machines then would that not make them simply every day, run-of-the-mill computers and not “high performance computers”? It is somewhat analogous to the meteorologists that refer to normal rainfall and temperature based upon data that is long overdue for an update. At some point the bar needs to be reset and the new “average” adjusted accordingly. This is what needs to happen in the HPC world as well.

Maybe we need a new term to replace HPC. Oh wait, we tried that already. “High Productivity Computing”…really? Come on guys, we have enough of a credibility problem without using some dumb cliché that by the way isn’t catching on with anyone! The last guy who tried to use that in a meeting with a client hasn’t been heard from since.

The problem is that everyone wants “high performance” (and productivity) computing. Have you ever heard anyone say they want LPC (low performance or productivity computing)?

No, we here at Acme Corp. prefer our low performance, low productivity machines, thank you. Our cloud computing strategy is to send Maynard up in a hot air balloon with an abacus. According to the company’s CEO, Jethro Bodine, “Ways we figer, he oughts to be done cipher’n the books by ‘coon hunt’n seezun”.  The company plans to migrate to a compute-free work environment by 2014 and Bodine went on to say “we am gonna save a enuf money to git Granny a new set of wood teeth cuz her old wuns smells reel bad.”

In reality, almost every modern-day computer is “HPC capable” relatively speaking. Even laptops have multi-core processors. Just add some parallel-optimized code and voila, HPC in your lap (well sort of), but you get the point. The bar simply needs to be reset.

The term HPC needs to be restored to the level of honor and respect it once had. Just the mention of HPC used to evoke images of semi-mad scientists in lab coats working on complex problems beyond the imagination of mere mortals in computer rooms buried deep in the Cheyenne mountain range. They would emerge only annually to be treated for radiation poisoning and then return to their super-secret computing lair to work on solving the world’s most difficult problems on the biggest, baddest computers on the planet.

This is the domain of High Performance Computing!

Just Say I Don’t Know

There are 3 answers to a question; Yes, No and I don’t know. Societal pressure however, oftentimes prevents us from responding with the latter.

Our fear of admitting that we do not know is instilled in us from a very early age. When we were kids and didn’t do our chores, our parents would ask why and of course we were compelled to come up with a really good answer. “I don’t know” would have never been an acceptable response, even though it was most likely true that you had no real idea why, you simply didn’t.

“What do you mean you don’t know, you have to know, answer me right now.” “Um, uh…I forgot.” That answer would also have likely produced the same undesirable response from our parents such as “Reeeeeeealy, then you are grounded for two weeks.” Either way, you were in trouble and nothing short of an asteroid landing in your back yard was going to distract them enough to change that.

As grown adults (and accomplished professionals), we still have difficulty admitting that we may not have an answer to a question when it is asked. What’s worse, we will answer a question even if it is the wrong one or if there is no right answer at all such as “are you dumb or stupid?” There is really no right answer to that question. Even “I don’t know” in this case would be a bad answer…because that would make you both.

Perhaps it is ego combined with cultural conditioning that instilled the belief that “I don’t know” is simply not an acceptable answer, or even a “real answer” in the opinion of many.  Society tends to scoff at “I don’t know” and will oftentimes go so far as to label someone that dares give that answer as incompetent (and yes, even dumb or stupid).

Regardless, “I don’t know” should be an acceptable answer. Possibly, we need time to contemplate various options or analyze something further before we are able to give an appropriate answer. Or maybe as I said previously, it was the wrong question to begin with. This pressure is especially evident with regard to the question over Cloud computing.

The media hype around Cloud computing is applying pressure directly and indirectly on executives to have an answer to questions related to their “cloud strategy”. Boards of directors caught up in the Cloud frenzy are also applying pressure to have an answer, much like a room full of parents asking why we didn’t do our chores.

I have watched as executives stumble over themselves in a desperate attempt to answer questions about their Cloud strategies. While I acknowledge that it is far easier to critique a response when you are not the one in the hot seat, a simple “I don’t know” (or “we are evaluating our that”) would have been far more graceful than falling flat on your face in the middle of the dance floor as you trip endlessly over technical jargon and meaningless clichés.

So, What is Your Cloud Computing Strategy?

Not only are we unwilling to answer with “I don’t know”, the question is technically the wrong one to ask.

Cloud computing, in and of itself is not a “strategy” at least from an Enterprise perspective. While Cloud computing may be part of an IT strategy in support of one or more Enterprise strategic objectives, it is in actuality, an Enterprise “tactical” initiative.

For example, the Enterprise strategy may include a charter to “improve operating efficiency through a 20% reduction in CapEx”. However, IT’s reduction in CapEx is not a strategy. Rather, it is an operational efficiency as a result of a well-defined and executed IT strategy in support of an Enterprise Strategic objective. This may be achieved through the Cloud or server optimization through consolidation and virtualization, etc.

The IT Strategy charter would read something such as “improve operational efficiency through server virtualization and consolidation and Cloud computing to handle non-standard workloads in order to reduce CapEx.” A reduction in CapEx then is the result of executing the IT strategy but to the Enterprise, it is still simply a tactical initiative that supports the Enterprise strategy.

The Enterprise strategy should inform the development of an IT Strategy that will optimize technology resources and improve the ability of IT to support a broader range of Enterprise strategic objectives.

So the appropriate question would be “what is the role of Cloud computing in supporting the company’s strategic objectives”?

I know that it may just seem like semantics, but this subtle difference has potentially enormous ramifications. It places the focus of the discussion about Cloud computing where it belongs…dare I say…as a “strategic enabler”.  You know…that old chestnut.

It also provides a way for executives to answer the question a bit more gracefully, such as; ”Well Mr. Reporter or Mrs. Board Member, Cloud Computing in our view is a tactical initiative that may support one or more Enterprise Strategic objectives and we are currently evaluating which of those may be supported through the adoption of some form and degree of Cloud computing.”

That’s how the pros say “I don’t know.”

You Don’t Get a BMW by Buying Four Hyundai’s

The rush to get to the Cloud is resulting in a widespread “ready, fire, aim” shotgun approach. The risk of Cloud computing failing to achieve its potential is equally proportionate to our unwillingness to stop for a minute and say “I don’t know.”

What I mean by “I don’t know” in this case is that organizations are rushing to the Cloud without a clearly informed IT strategy. Every component strategy (e.g. IT) and its tactical initiatives exist exclusively to support one or more Enterprise strategic objective. So the Cloud should map directly to an IT strategic objective which in turn, should map directly to the Enterprise strategy.

Many have rushed to the Cloud simply so that they can at least say “we are there”, even if they don’t know what to do with it now that they have it. It is analogous to a dog chasing a hubcap on a moving car; what is he going to do with it once he catches it?

The client-server movement was very similar and the result was absolute chaos. The persistent lack of interoperability and difficulties with collaboration among groups today can be traced back to the time that the client-server model took hold in organizations.

A similar risk exists today in that within the same organization, different groups are taking different approaches to cloud computing which is a direct result of the lack of a clearly informed and defined IT strategy. Within the same organization, I have seen up to four different cloud models in use.

At a high-level there are 3 Cloud computing strategies; all, hybrid or nothing.  Meaning that you move everything to the cloud (highly unlikely, unless you are a startup), you have a combination of on and off premises IT resources or, you move nothing to the cloud (also highly unlikely unless you are in the business of making walking sticks for blind mice).

All sides of the debate provide some interesting perspectives but it is somewhat analogous to arguing the merits of a BMW over a Mercedes. They are both great vehicles but they are designed for different types of drivers. Automobile aficionados say that you “drive” a BMW and you “ride” in a Mercedes so the analogy to Cloud computing is not too much of a stretch.

The “all” model is pretty much the Mercedes in that you relinquish the majority of control over your IT resources and can just sit back and enjoy the ride. The “hybrid” model requires a bit more active involvement on your part in that you retain control over on-premises IT resources and the Cloud services provider acts somewhat like the dynamic stability control. It can deal with unanticipated driving conditions (workloads) and is always ready at the flip of a switch.

Both automobiles share many common attributes, (performance, safety, reliability, panache and status), the most important being that they both require drivers. The enterprise strategy is the navigation system and IT is the power train but without a driver they are both useless.

One could buy 4 lesser automobiles in an attempt to get all the features but anyone would agree that would be impractical (Read: Really Dumb). Yet, this is exactly what some organizations are doing in their approach to Cloud computing.

The pressure to “get in the Cloud” is driving the random selection and adoption of multiple cloud models that most likely do not make sense from a strategic business perspective. More importantly the shotgun approach will not deliver the strategic value that should be provided by any IT initiative and will ultimately fail.

Computational Ambiguity in the Cloud

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!

Two Strong Oxen or 1024 Chickens?

Is it Getting Hot in Here?

Microsoft’s recent announcement that they are ending support for the Intel Itanium processor on the Windows HPC Server product got me thinking again about specialized processors versus low-cost commodity processors for high-performance computing (HPC) in general and specifically, HPC in the cloud.

Low-cost, general purpose processors have made the Cloud possible, not only from an economic standpoint but also due to their broad support for various programming languages, compilers and tools. The tools for specialized processors are most often special-purpose and limited which require highly trained resources. This of course results in a significantly higher Total Cost of Ownership. However, there are certainly some performance advantages which in some cases make the trade-offs worth it.

Plus, there is not anything more sexy (calm down, I’m talking computers here) than an ultra-scale High Performance Computer running Itanium or Tile-Gx specialty processors. The harmonics of the heat sinks as they dissipate the inferno created from 100 screaming cores annihilating billions of complex calculations per second, is music to the ears. Add NVIDIA’s Tesla GPU’s to this powerhouse and you have got yourself one serious Ox capable of pulling a plow through 6 feet of mud.

From Multiple Processors to Multi-tenant

Alas, the sex appeal of the specialty processor has been diminished by the economic realities of low cost commodity processors. In addition to significantly lower capital and operational costs, the technical expertise necessary to run a “generic” shop are far more plentiful and less expensive also.

It’s the Ford truck of computing models; “Never runs great but runs forever.” This approach has a long history of stable and reliable performance which dates back to the 1960’s when computer design was largely focused on adding as many instructions as possible to the machine’s CPU.

It was also at this time when “parallel computing” emerged and along with it came the multiple-processor, general purpose computer design. The system divided the workload up by distributing parts of the problem to each CPU and consolidating all the results into a single answer.

In 1965, in an effort to capture market share in the scientific field, Burroughs picked up where Westinghouse left off with their Solomon high performance computing initiative. In a shared-risk project, Burroughs teamed up with the University of Illinois as a development partner to build what would become the last generation of the ILLIAC family. Given that the systems computational resources would far exceed what the University could use, they decided they would “rent” capacity to commercial customers. This may have been the first true example of a multi-tenant cloud computing model.

Time has proven the ILLIAC’s design to be effective for technical computing applications. Today, supercomputers are almost universally made up from large numbers of commodity computers, precisely the concept that the ILLIAC pioneered. What the Burroughs engineers did not realize was that they were laying the foundation for the mega data centers that power cloud computing today.

Does Technical Computing Require a Dedicated Cloud?

There remains a question as to whether the Ford truck design will be sufficient for applications that require high-performance computing. The Cloud was not designed with technical or scientific computing applications in mind they were designed for reliability and steady, predictable performance. The biggest challenge is that not all HPC applications lend themselves to this type of processing and extracting “high-performance” from this type of design was and still is, problematic.

The Cloud presents some interesting possibilities for HPC and there appears to be a divide forming between traditional cloud models and those that are designed specifically for high performance computing applications.

SGI recently introduced their Cyclone HPC in the Cloud service which is comprised of some of the world’s fastest supercomputing hardware architectures, including Intel Xeon and Itanium processor-based SGI Altix scale-up, Altix ICE scale-out and Altix XE hybrid clusters. The Cyclone also incorporates high performance SGI InfiniteStorage systems for scratch space and long-term archival of customer data, another pre-requisite for HPC.

The technology at Cyclone’s core is highly specialized and designed exclusively for HPC workloads, something that traditional Cloud designs are lacking. While traditional Cloud computing designs can impersonate an HPC environment, they do not possess the true performance characteristics that are necessary for complex scientific and technical computation.

As Seymour Cray once remarked, “If you were plowing a field, which would you rather use? Two strong oxen or 1024 chickens?”

It is my opinion that true HPC workloads will require specialized Clouds and we will see more models like SGI’s in the near future. As a result the division between low-cost commodity and specialized Clouds will become clearer as HPC and non-HPC workloads are better defined.

PLATO: A Living Tribute to the Societal Impact of Technology

Background

Built originally by the University of Illinois in 1960, PLATO (Programmed Logic for Automated Teaching Operations) was the first computer assisted instruction system offering elementary through university coursework to UIUC students, local schools, and other universities.

Donald Bitzer, a laboratory assistant at UIUC, is considered the Father of PLATO. At the time of its conception, 10 character-per-second teletypes were the standard yet even then Bitzer recognized that in order to provide quality computer-assisted instruction, graphics would be critical.

PLATO 1 operated on an ILLIAC 1 computer and included a television set for display and a special keyboard for navigating the system’s function menus. In 1961, PLATO 2 introduced concurrent user capabilities. By 1972, PLATO was in its 4th generation and used an orange plasma display designed by Bitzer that supported bitmapped graphics. His plasma display also included an infrared touch panel that provided the ability for students to answer questions by touching the screen.

PLATO also introduced revolutionary “collaboration” capabilities that we take for granted today. PLATO was the first system to provide instant messaging, e-mail, chat rooms, forums, message boards, remote screen sharing, online testing and yes, even multi-player games.

The stewardship over PLATO changed numerous times over the years but it continued to actively function for 46 years, an astonishing accomplishment by any measure. One of its earliest, longest and staunchest supporters was Control Data Corporation President, William Norris.

While a shrewd businessman, he was more concerned by the unrest of the late 1960’s than he was in the commercial market for PLATO (or at least equally so). Norris felt that much of the unrest was due to social inequalities and PLATO offered a solution by providing higher education to segments of the population that would otherwise never be able to afford a university education.

Global Societal Impact

PLATO’s reach extended well beyond the borders of the UIUC and the United States. In the 1980’s, Madadeni College in South Africa was a major user of the system. What makes the installation interesting from an anthropological point of view is that University had approximately 1,000 students of which  99% were of Zulu ancestry.

Madadeni was a teacher preparation institution and was extremely primitive compared to other learning institutions elsewhere in the world. None of the classrooms had electricity and there was only one telephone for the entire college, which had to be cranked for several minutes before an operator may come on the line. PLATO’s term-talk was oftentimes the only way students could communicate with the outside world.

Most of the Madadeni students came from very rural areas and the PLATO terminal was the first time they encountered any kind of electronic technology. Skeptics were vocal over their concerns that PLATO would be of any use to these students but within hours most had become proficient at using the system and were learning math and science skills. A few students used online resources to learn TUTOR, the PLATO programming language, and some even wrote lessons on the system in the Zulu language.

CDC invested heavily in the development of an entire secondary school curriculum on PLATO, but unfortunately as the curriculum was nearing the final stages of completion, CDC began to falter in South Africa partly because of financial problems in the U.S., partly because of growing opposition in the United States to doing business in South Africa, and partly due to the rapidly evolving microcomputer, something that CDC failed to anticipate.

Norris continued to be a staunch supporter and as late as 1984, he announced that it would be only a few years before PLATO represented a major source of income for CDC. The PLATO service was slowly killed off when Norris stepped down as CEO in 1986. The last production version of PLATO continued to actively function until shortly after Norris’ death in 2006.

Donald Bitzer’s baby had arms that reached around the world and PLATO still stands today as an enduring legacy of the enormous societal impact of technological innovation.

Experience PLATO

PLATO still has a thriving online community that was spawned by its PLATO Notes (Pnote) and other revolutionary communication features. Apply for a free PLATO account at Cyber1 and send me a Pnote at mbaylor\cerl3.

Celebrate PLATO’s 50th Anniversary

Attend the 2 day conference June 2-3, 2010 celebrating the 50th anniversary of PLATO at the Computer History Museum in Mountain View, CA.

Special guests: Dr. Donald Bitzer, Father of PLATO and Ray Ozzie, Chief Software Architect, Microsoft Corp.

Cloud Computing | The Evolution of Computational DNA

Let me begin with an acknowledgment that this discourse does not begin to scratch the surface of this subject in the level of detail that it deserves. It is a stream of consciousness exercise intended to aid me in fleshing out some ideas for a series of treatises on Cloud Computing that I am presently working on.

I am looking for a proper place for this particular stream of thought and needed to reason through it a bit further. It seemed as though it may be sufficiently interesting as a stand-alone post, if only for my own desperate need for intellectual exercise.

Onward then!

DNA serves as a mechanism for long-term storage of information and is essentially a set of blueprints that contains the instructions needed to construct other components. It has a significant influence on future generations and exposes itself in the form of specifically identifiable physical (and some claim character) traits, in its descendants.

The simple elegance of its double-helix structure belies the complexity lying beneath the surface. This is analogous to the abstracted layers of Cloud computing that conceal much of the DNA complexity of the underlying infrastructure necessary to deliver Cloud services.

I am a student of the history of computing and am fascinated with the evolution of computing models. Cloud computing is of particular interest to me because of its DNA, that is the lineage of its ancestors that is unmistakable when one examines the traits that were influenced by prior generations of computing models (e.g. Mainframe, Client-server).

There was once a study that examined the effect of DNA in terms of its influence on one’s vocation. The investigation focused on Fishermen and their sons. After an exhaustive analysis of hundreds of Fishermen and their sons, the “scientists” that conducted the study made an astonishing proclamation; They concluded that the majority of sons of Fishermen would themselves, also become Fishermen!

I hope that whoever commissioned the study did not pay a lot of money for that insightful information.

The reason for sharing that story is the analogues to the evolution of computing models. The “Cloud” is not (as Neil Ward-Dutton and others have already acknowledged) a revolutionary concept. That is not to trivialize the importance or significance of Cloud computing, but it is more accurately, evolutionary.

That is, it has evolved from earlier forms of computing models but contains unmistakable traits that it inherited from previous generations. Some good DNA, some bad.

Our computing DNA provides valuable insights into the evolution of future generations and what we should watch for in terms of risks to our future well-being. We need to understand it in order to identify weaknesses or flaws that could jeopardize future generations.

One of the most valuable lessons we can learn from the history of our Computational DNA is the mistakes that were made and the most valuable lesson we can learn from previous mistakes is to not repeat them or at minimum, identify alternative approaches.

However, for some reason we ignore genetic traits that may predispose us to fatal diseases. After all, we know much more today than our predecessors did and history has little to teach us about the future.

Ego check!

Before we get too full of ourselves, check out the famous (or infamous) quotes below from past industry luminaries. (From Stephen Whites, “A Brief History of Computing”).

  • 1899 “Everything that can be invented has already been invented.”, Charles H. Duell, director of the U.S. Patent Office
  • 1943 “I think there is a world market for maybe five computers.”, Thomas Watson, chairman of IBM.
  • 1949 “Computers in the future may weigh no more than 1.5 tons.”, Popular Mechanics, forecasting the relentless march of science.
  • 1957 “I have travelled the length and breadth of this country and talked with the best people, and I can assure you that data processing is a fad that won’t last out the year.” The editor in charge of business books for Prentice Hall.
  • 1965 Moore’s law published by Gordon Moore in the 35th Anniversary edition of Electronics magazine. Originally suggesting processor complexity every year the law was revised in 1975 to suggest a doubling in complexity every two years.
  • 1968 “But what … is it good for?” Engineer at the Advanced Computing Systems Division of IBM commenting on the microchip.
  • 1977 “There is no reason anyone would want a computer in their home.” Ken Olson, president, chairman and founder of Digital Equipment Corp..
  • 1980 “DOS addresses only 1 Megabyte of RAM because we cannot imagine any applications needing more.” Microsoft on the development of DOS.
  • 1981 “640k ought to be enough for anybody.”, Bill Gates
  • 1992 “Windows NT addresses 2 Gigabytes of RAM which is more than any application will ever need”. Microsoft on the development of Windows NT

In the 1950’s, we just “knew” that the mainframe was the future of computing, in the 60’s we just “knew” that mini-computers were the future of computing, in the 70’s we just “knew” that super-mini’s were the future of computing, in the 80’s we just “knew” that client-server was the future of computing, in the 90’s we just “knew” that the Internet was the future of computing we and now we just “know” that Clouds are the future of computing.

Just think of what we will “know” tomorrow!

At the end of the day we are all just sons of Fishermen, predestined ourselves, to also become Fishermen (but with much cooler and faster boats)!