What is cloud? What a question. Cloud is many things to many people. If you ask three different people in IT what “cloud” means you’ll probably get six different answers, and none of them will be wrong. “Cloud” has become a catch all term for a number of different concepts that underpin implementations of technologies that have been bound together to form the nebulous concept of “cloud”.
These concepts can be broadly summarised as follows:
Cloud platforms are highly reliable, and allow for the easy construction of application workloads with high availability and disaster recovery. These workloads are constructed in a programmatic manner which means that rebuilding, refreshing or updating deployed workloads is consistent and repeatable. This repeatability is critical as cloud workloads should have elastic scalability which allows resource building blocks in cloud platforms can be scaled on demand in near real-time to cater for peak and off peak load levels. All of these stack together to create agility for end users and businesses. Cloud allows business to explore ideas without the challenges that are traditionally associated with technology projects and IT procurement, turning technology into an enabler for business rather than a blocker.
Everything as a Service
When it comes to consuming the technology that is built on these ideas we normally see clouds form at three different layers.
IaaS or Infrastructure as a Service is a the most basic building block that can be consumed from the cloud. IaaS, as the name suggests, is traditional infrastructure, made available in the cloud for you to build your application with. IaaS is made of the three foundational building blocks of all things IT these days, compute (VMs), storage and networks. IaaS generally has prescriptive design guidance to enable you to consume it in a way that best leverages cloud and comes with enhanced capabilities around automation and reduced requirements around maintenance when compared to on premise infrastructure. IaaS platforms are commonly deployed as datacentre extensions on to existing environments as they share conceptually common components and deployment patterns.
PaaS or Platform as a Service is one level up from IaaS. PaaS allows business to deploy applications without worrying about infrastructure by providing an application platform that abstracts infrastructure management. When deploying applications to PaaS, all you worry about is your code itself, the management of the servers hosting it, the networks connecting it, the databases that underpin are the responsibility of the PaaS provider. This allows developers to focus on building features and fixing bugs instead of worrying about managing infrastructure.
Finally, SaaS or Software as a Service is possibly the most nebulous of the three broad categories of cloud technologies. SaaS focuses on finished products with consumable outcomes rather than providing building blocks or platforms, however that doesn’t exclude it from being either of those things. A common example of SaaS that is both a finished product and a platform building block is Office 365. Office 365 provides consumable collaboration as a service built upon mail, messaging, sharing and co-authoring. However, these capabilities are offered in such a way where they can be consumed “as-is”, or built upon and customised where the out of the box functionality doesn’t meet requirements.
Public Private Hybrid Multi Clouds
These different layers of clouds can be consumed from more than one location, which makes up the final piece of the discussion on what “cloud” is. Cloud technologies are generally consumed from providers that deliver connectivity to resources via the public internet, for the public to use, leading to the term, “public cloud”. Public cloud providers offer the full gamut of Everything as a Service offerings, from the lowest levels of IaaS to the wildest iterations of SaaS. However just because something deployed in the “public cloud” doesn’t mean it’s open to anyone. Public cloud platforms with security around access and identity management from the network all the way up to the application to ensure that your private data stays private.
For some organisations, public clouds may never be suitable for various regulatory compliance and security reasons, which lead to another deployment model called “private cloud”. Private clouds are generally IaaS platforms deployed for a single specific organisation, and are typically deployed within a datacentre controlled by that organisation. Private clouds, while offering complete control of the end to end infrastructure stack, carry the many of the drawbacks associated with on premise infrastructure deployments as well as the added complexity of building and managing a cloud platform.
The challenges associated with deploying to private clouds coupled with the regulatory or security requirements limiting the adoption of public cloud has led to the hybrid cloud deployment model. In hybrid cloud, services are deployed to both the public cloud and the traditional on premise datacentre environment (regardless of whether or not it qualifies as a private cloud) to get the best of both worlds. These two environments are then securely connected together to ensure that applications can transparently communicate across the cloud boundaries, creating a hybrid environment. Where possible, services are deployed to the public cloud to leverage all the benefits it offers, but where not possible applications can still be deployed to the existing datacentre environments to ensure that regulatory requirements are met.
There is one more deployment model worth mentioning called “multi cloud”. Multi cloud comes about from the recognition that public cloud providers, as reliable and redundant as they are, still represent a single point of failure, even if that one provider is distributed across multiple datacentres in multiple locations. To overcome this challenge, organisations have adopted multi cloud, distributing their workloads across multiple public cloud providers to minimise the risk of a single cloud provider failure bringing down critical business applications. However, multi cloud is not for the faint of heart. While it presents a significant single vendor risk mitigation it also introduces a number of complexities to system and application architecture that often require a lowest common feature denominator approach across all providers within a multi cloud, reducing the overall flexibility of the solution.
Okay I get it..
So what does cloud mean for you? Well it depends on the problem that you want to solve. In the next blog post we’ll take a look at some the common problems that can be solved by adopting cloud technologies.
Written by James Liu, Dilignet Cloud Architect