The world of cloud computing is coming at us—fast. Within the next couple of years, over 94% of all backend computing will occur in a cloud rather than a privately-managed data center. Cloud computing is defined as software that is maintained on shared servers as opposed to physical servers to provide on-demand availability of resources like data storage and computing power.
This kind of computing will rely on technology that has driven Amazon Web Services (AWS) to become the most profitable division of Amazon, Adobe to move from perpetual licenses to subscriptions, and salesforce.com to knock out its fiercest rival, Siebel Systems.
The Three Layers of Cloud Computing Technology
There are three fundamental layers of cloud computing technology:
The technology that runs the infrastructure and underlying systems, which enable everything else to function
The software that enables the services offered across the cloud, from data storage to big data analysis to machine learning and artificial intelligence
The Application Programming Interfaces (APIs) and microservices that act as the connective tissue between the far-flung elements of the environment and empower developers to build extraordinary applications
Essentials of Cloud Computing Infrastructure
The technology behind the first layer of cloud computing—the technology that makes it possible for backend software to be nowhere specific, yet everywhere and always-available—ranges from the impossibly esoteric and proprietary to the broadly understood and open source. At its heart, though, are some core concepts of cloud computing:
Converged Infrastructure. This is as much a philosophy as it is a networking architecture. In essence, all the technological elements of a network intended for cloud computing must be aligned and manageable as a whole, rather than as a collection of separate parts. Servers must be virtualized, data storage distributed, and networking organized centrally. These features enable the operator to have multiple sites that are virtually indistinguishable from one another, with data and business logic replicating on an ongoing basis to ensure that the loss of one site would not create a catastrophic failure across the whole environment.
Automated Orchestration. A network simply can’t be used for cloud computing if the technology it uses is decelerated by having to rely too heavily on human interaction. Technology like VMWare opened up the possibilities of virtualization—essentially the ability to run multiple distinct server instances (from the operating system up) on a single machine. Now we have progressed to containerization, in which each of those instances can share the underlying operating system, making it lighter weight. More importantly, technological advances in containerization from solutions like Kubernetes and Docker make it easier to automate the creation and destruction of capacity. Think of it this way: when tons of people want to use a system, automated orchestration will ensure new server instances are available, which adds to the system cost but provides smooth usage. Once the audience subsides, those additional instances can go back to sleep, reducing system cost with no adverse effect on users. Without automation, the personpower to spin those servers up and down would destroy the economics of the offering.
Self-serve catalog of standard cloud computing offerings. At the highest level, the largest areas of demand will be for straight-up storage and compute power to manage the containers that customers will want to spin up to manage their own applications. However, the range of services customers will have can be extremely broad—from publish/subscribe engines, to data pipelines, to machine learning, and beyond. As with the administration of the system, automation technology is necessary to create efficiency.
Usage tracking and billing. Not to be forgotten, a cloud computing provider must ensure they leave time and energy for creating the technology that allows them to monetize their offering. Monetization is a non-trivial exercise, as the provider must not only track usage, but decide on the units that will be counted, the cost per unit, and the packaging used to sell on to customers. For instance, will consumers buy a bucket of CPU hours or a number of CPU cycles? Defining the monetization scheme for a cloud is as much art as it is tech.
Software Needed to Support Cloud Computing
With the infrastructure in place, a prospective cloud provider must now settle on the software that will be the backbone of its cloud computing capabilities. If they are acting as an Infrastructure-as-a-Service (IaaS) provider, they will need to include more options than if they are acting as a Platform-as-a-Service (PaaS) provider. PaaS commonly provides a limited set of features that are focused on solving a narrower set of problems. Either way, there are core cloud computing technologies that companies must inevitably include to offer a credible product and service set, such as:
Storage. Arguably the foundation upon which all other cloud computing technology was built, storage represents one of the easiest-to-understand and easiest-to-value features. Whether it’s storing photos on iCloud, saving spreadsheets on Google Drive, or sharing documents through Box.com, every Internet user understands the concept of storing information online for broad access.
Compute. As you look at the history of cloud computing technology, the other big category is compute power—literally, the ability to spin up and spin down virtual server machines. As organizations move away from owning and operating their own physical hardware, the easiest concept to grasp and become comfortable with is the idea of a virtual server: it acts the same way as the old physical ones, you just can’t see it. On the journey from monolithic to microservice architectures, moving from a physical to a virtual server is a relatively uncontroversial first step.
Databases, data pipelines, and machine learning. In today’s market, a cloud will need the technology to ingest, manage, manipulate, analyze, and summarize vast quantities of data. Where once companies like Rackspace and GoDaddy could scratch the itch by providing MySQL, today’s cloud requires technology like Cassandra, Hadoop, Spark, and Shark to store, organize, and analyze the accelerating tsunami of data organizations use to make informed business decisions.
Cloud providers can choose from a vast array of other technologies that they feel customers would be ready, willing, and able to pay for, from load balancing to DDoS protection, from functions-as-a-service to Virtual Private Networks (VPNs), and from containerization to auto-scaling.
APIs and Cloud Computing Technology
Cloud computing ultimately relies upon three layers of technology: the converged and centrally orchestrated infrastructure, software that enables cloud services, and the APIs that knit the infinite possibilities of cloud-resident solutions together.