I attended Dell World on October 13/14 2011, and as you might expect the term "Cloud" was used extensively. I don't know about you, but this has been a bit of a pet peeve of mine, that is, until now. My complaint has been the use of term for which there seemed to be no good definition. I have been trying to narrow down a definition for Cloud, but have not had much luck. While listening to these presenters, it finally came to me what cloud really represents. Do you remember back to math class when functions where being defined. Frequently the term "Black Box" was used to describe a set of actions which when presented with input, would perform an action, then return the post action results.
Sound familiar? What if we replace the box with a cloud? The cloud takes a quantity of functions or "Black Boxes" and combines them into a single grouping of related functions. We don't know what happens inside the Black Box, or the Cloud, but when we interact, we expect results. To give a simple example, I have used email for years. I can both send and receive email, but I don't actually know where the server resides, or what exactly it does within the server. I just know that I can provide input, and receive output. Now, extrapolate that out to other applications. Most everything over the past 20 years has been written to be a multiple tier application with the World Wide Web accelerating the concept. Everything from the desktop to the smart phone relies on back end systems located somewhere on the Internet to perform important functions. That grouping of functions located "somewhere" is what cloud truly represents. Sometimes those functions are handled by systems inside the office network (Private Cloud), and sometimes they are provided by a vendor on the Internet (Public Cloud).
Now that we know what "Cloud" really is; we need to determine when it makes sense to use it. In most cases, it is really about whether it is a Public service provided by a 3rd party, or is it something you will set up and support locally. In each case you will need to evaluate all of the resources needed to provide a specific service level (5 x 10, 24 x 7, or other). If hosting yourself, what servers, storage and network connectivity is required? Who will support the systems and application? Is specialized knowledge and training required? What about software with licensing? If using Internet providers, how much bandwidth is needed to effectively use the service? Is latency a factor? Is the content sensitive information requiring specialized security? What happens if the provider goes out of business, can I get my data and how will I continue to provide that service?
Each instance is unique to the company and circumstance, and sometimes will change over time as technology and people change. My recommendation is to make certain you or someone you trust, with a good base of knowledge across these disciplines is part of the team making decisions on how to proceed. Wandering into the Cloud, be it internal or external, without that fog light of knowledge will leave you lost and potentially in a great deal of trouble.