Before 2010, most normal people hadn’t heard of the cloud. Sure, some super-geeks and techies knew of Elastic Cloud Compute, Amazon’s pioneering cloud service. But the term only entered the popular consciousness with the creation of services like Apple’s iCloud. Nowadays, everyone has heard of the cloud. Without it, almost no smartphone applications would work, businesses couldn’t rely on SaaS services, social media would be a much more limited affair, and companies would struggle to deliver digital transformation. But what is the cloud? And why has it been so transformative for tech?
A cloud of computing resources
In its purest form, cloud computing allows you to access any computing resources from an amorphous pool—the eponymous cloud. You don’t need to care where the underlying resources are, just that they are delivering the services you require. Of course, the reality is that the cloud is actually a huge network of interconnected servers, hosted in vast data centers all across the globe. The biggest of these data centers can contain millions of servers and consume more electricity than many large towns. But how do they work?
Data centers are huge warehouses full of servers delivering the cloud
The core technology behind the cloud is called virtualization (or more properly, paravirtualization). This clever technique allows one physical server to be treated as a much larger number of virtual machines (aka virtual servers). These VMs perform just like a server, but they are actually sharing the physical resources. This works for two reasons (disclaimer, this is a greatly simplified explanation). Firstly, most computer workloads are variable, meaning a dedicated server is often sitting idle waiting for new work. Secondly, modern servers are actually technically collections of independent servers—effectively, each core in their CPUs is its own computer.
The servers in a data center are often commodity off-the-shelf machines
Virtualizing servers brings some key benefits. For a start, you can achieve near-perfect utilization of all your resources. Given the cost of modern high-end servers, that counts for a lot. Then there’s the handy fact that virtual machines can often be hot-migrated from one physical server to another. That has a really significant impact on reliability. Then there’s the flexibility—with virtualization, users can in effect customize their server on the fly. Need more processing power for a given operation? Spin up a VM with more virtual cores. Need more RAM? Just configure a VM with more virtual RAM.
At the heart of any data center is a huge super-fast network. This is essential because data centers rely on moving petabytes of data around. Typically, data centers will provide storage in one of two models. Either, the locally attached disks in each server will be connected together to create a large, performant, and reliable virtual storage area network. Here, the data is shared across multiple servers with error-correcting codes, striping, and replication ensuring reliability and performance. Alternatively, the storage will be provided by specialist storage area network machines, such as the ones provided by NetApp. These highly specialized servers provide huge volumes of storage in a reliable manner. However, both of these approaches require the servers to be connected to a network that can handle the load. Nowadays, that typically means a massively parallel network running at over 100Gbps.
The data centers are also joined together and connected to the larger Internet by extremely “fat” network pipes. Google’s latest dedicated undersea cable, Grace Hopper, will connect the US, UK, and Spain with a combined capacity of 352Tbps. To put that in context, that’s enough capacity to allow tens of millions of people to stream 4k video simultaneously.
What does cloud enable?
Originally, cloud computing was simply a way to allow companies to access flexible server capacity on-demand and with elastic pricing. This is what we now know as Infrastructure as a Service (IaaS). However, it soon spawned a whole raft of new capabilities. Firstly, Platform as Service offered ready-made services that could be joined together to deliver scalable and flexible backends. Then, containerization and serverless computing allowed backends to be designed without even thinking about the physical resources. But there are other key possibilities that are only available thanks to the cloud.
The history of computing has seen a constant shift of computing power from the center to edge devices and back again. Mainframe computers were accessed by thin clients or terminals. Then desktop computers became more powerful. Nowadays, we are seeing another shift. Services like Mighty allow you to offload computing from your edge device (laptop, PC, or smartphone) to the cloud. This, in turn, enables lighter, faster, and more energy-efficient edge devices. This is especially useful when running graphics-heavy workloads, such as video games. Given the ever-increasing price of GPUs (driven by demand from blockchain currencies like Bitcoin), this pattern may continue.
When the terrorists attacked the US on 9/11, almost every news website in the world crashed as people rushed to try and get the latest news. More recently, hackers have sought to use DDoS attacks to bring down company servers and demand ransoms to stop the attacks. Cloud computing offers a way to manage such events. All data centers have specialized systems called load balancers that seek to ensure the compute load is spread evenly across the physical servers. Services like Cloudflare take this one step further and ensure the load can be spread between different data centers or can be rate-limited to avoid bringing down your service.
How does the cloud enable digital transformation?
The cloud is integral to the whole concept of digital transformation. Firstly, thousands of companies have developed crucial B2B services that can be combined to solve many of the problems for digital transformation. Secondly, it allows most companies to outsource the risks and costs of maintaining their own infrastructure without sacrificing any performance. Thirdly, it is an enabler for one of the biggest disruptors of the modern age, artificial intelligence. We will see more about that in our next blog. Meanwhile, to see how Functionize leverages cloud and AI, have a look at our video.