“The Cloud”. Rarely has there been such a huge buzzword that’s so misunderstood. Every board room, every company from cottage industry to giant mega-corporations are all talking Cloud enablement and Cloud Native apps. Yet, when posed the question “What is the Cloud?” a large number of people struggle to answer in a straight forward manner. Some will talk about Microsofts Azure, others about Amazons AWS but very few seem to grasp the fundamentals.
For some this doesn’t seem like a concern as they are focused on managing the delivery of a product. They don’t need the details. They should care though as it can make the difference between a strategically solid decision or a weak one.
The Cloud is computers, all the way down
In the 17th century mythical belief (likely from India) held that the world was supported by several elephants. They stood on the back of a giant turtle. When pushed believers of this myth replied the questions “What’s under the turtle?” with “It’s turtles all the way down!”.
Unlike the turtles myth the Cloud IS actually computers all the way down. The Cloud has built such a huge following, and nearly mythical status, that people struggle to grasp that there is no magic. It’s not even new technology.
A little history
Depending on who you consider correct the first real Personal Computer was the Kenbak-1 released in 1971. The PC is something we all know have used, it’s the desktop computer at home, the laptop most people use for work, etc.
The next evolution of the Computer came when Time Berners-Lee and Robert Cailliau wrote the proposal for the World Wide Web. They outlined the notion of sharing documents across a network in the form of Hypertext which could be viewed using Browsers. This groundbreaking idea birthed the Internet which has become so dominant and crucial to human progression. At it’s heart this network is still simply computers; some are specialised in Serving Hypertext and others are PCs with Browsers that consume those documents.
With the explosion of the internet came huge demand for content, commerce and entertainment. Servers (of HyperText documents and other content) had to use greater and greater resources to meet that demand. From a technical point of view Servers had to be given more disk space, more memory and more CPU power to keep up with heavy consumer demand. From an economic point of view this increase in power gives diminishing returns. As disks, memory and cpus are ramped up the step in power comes at ever larger costs until it it becomes unsustainable to continue; this is where The Cloud steps in. While the technologies for Cloud systems have been around since the 1960s it was in 2006 that Cloud Computing was coined as a term by Google CEO Eric Schmidt.
A Cloud is simply a collection of Servers networked together.
Why the Cloud is important
At this point it’s more useful to make clear that there is no one thing we can call The Cloud; it’s much more accurate to discuss singular Clouds. A Cloud is nothing more than a network of computers designed to spread the load of computation across multiple Servers. Going back to our economic issue above; it’s MUCH cheaper to buy and run several lower powered Servers than it is to buy and run one high powered server. The costs incurred to get to high levels of performance in hardware simply have demising returns.
Some advantages of having multiple Servers sharing the load are:
- Due to the nature of the computation distribution a Cloud has built in redundancy. If one (or even several) Servers fail the others are able to take the load and still operate. The computation may be slower but it can still continue
- Large computations can often be split and done in parallel giving a Cloud the ability to vastly out perform even a single high powered Server or Personal Computer
- The flexible nature of running multiple Servers means that costs can be strictly controlled and managed. Need more computation? Add more Servers (if the economics make sense)
- The ‘Always On’ nature of a Cloud means that new approaches to persistence mechanisms like Databases can be re-imagined. The details are another blog post in themselves but a Cloud can be tuned to give almost 100% uptime. This means that data can be held in memory rather than on disk giving way to a huge number of lighting fast database technologies
- Software application designed to run on a Cloud are able to use significantly different architectures than those designed for single CPU computers. The Cloud challenges the whole paradigm of how Software is created
There are several other large advantages to a Cloud of Servers sharing computational load but suffice to say the buzz is there for a reason. It’s given unprecedented access to computing power that could only be imagined previously.
With great power comes great… effort
The pay off for all this flexibility and power is, predictably, complexity. Typically when using Cloud systems the hardware side of the system is abstracted away and is run by the Cloud provider. Not dealing with bare metal devices keeps IT teams and Procurement happy but ultimately comes at the cost of complexity in managing, operating and provisioning Cloud systems. Even deploying an application into a Cloud can be a time consuming process with several critical decisions required on compute power, architecture and tooling. Writing applications that leverage a Cloud are also harder to create, harder to debug and harder to architect in general.
One very real concern is around data security. While most Cloud vendors actually have solid security controls and practices the nature of some data (highly personal, sensitive, intellectual property, etc) has tight controls on it. Either contractually or by law some data cannot be held “off site”. The distributed nature of The Cloud means data storage is ephemeral and doesn’t sit anywhere that can be touched or even really nailed down.
Costs can quickly spiral out of control in a Cloud system too. Cloud solutions typically charge based on usage (cpu, memory and disk used). If left unchecked or setup incorrectly Cloud systems can consume resources at incredible rate to meet the demands placed on them. It’s not uncommon to hear of high computation applications costing thousands per month. This is why the decision to use a Cloud cannot be left just to technical teams but must be understood at all levels of a business to make sure the economics make sense.
Going forward The Cloud looks set to be woven into many companies strategic plans but its critical the nature of the technology is understood. Business leaders need to understand, at least at a high level, how the Cloud can affect both success and the bottom line. If there is one main thing to take away from this blog post it’s this: there is no magic, The Cloud is simply computers all the way down.