Cloud Computing has been around for well over a decade now, and chances are good you have been using some form of cloud computing as it is (whether you were aware of it or not). Web-based email, Dropbox, Office365 are all part of cloud computing, which has expanded over the years into many new more generalized or even niche products.
This series will deal with what Cloud Computing is (if you are unaware of it, Part 1 will be introductory). Cloud Computing really came to the fore in 2006 when AWS launched their first range of services, and it has grown exponentially since then. What is Cloud Computing, you ask? The NIST (National Institute of Standards and Technology) definition puts it as follows:
"Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."
Around this are 5 characteristics that are a requirement to be considered Cloud Computing:
- On-demand self-service – this means being able to provision new services, be they new VMs on AWS, new users on O365, or an entire test environment on a SaaS provider;
- Broad network access – free to choose how you connect up to your cloud provider. This can be through dedicated connections within a data center, across a dedicated link such as MPLS or SDWAN, or through the Internet across a shared company line;
- Rapid elasticity – Being able to quickly and easily (especially through automation!) expand your services during peak periods of business usage, or shrink them when not required;
- Resource pooling – the major benefit for companies making use of Cloud Computing is that they have access to a far greater pool of compute and storage resources, led by the provider being able to get bigger and better infrastructure on the backend, all the while utilizing multiple clients on the same hardware;
- Measured service – billing being provided for on a monthly basis for usage only of resources, with insight into this billing and usage as, and when needed.
Those 5 characteristics are key to being seen as a cloud provider in my eye. I’ve seen a number of providers calling themselves cloud providers, while not utilizing any of these charactieristics. Some don’t have billing information readily available, while also not allowing any form of self-service (calls having to be logged to have VMs deployed or data restored for instance). When looking at a cloud provider, make sure the 5 characteristics above are an inherent function of their services.
Definition done! What types of cloud computing are out there? There are a number and are all outlined below:
- Public Cloud – AWS and Azure are the 2 most famous cloud computing companies in the world and both have this option available. Public cloud allows multiple clients to use the same infrastructure whilst having their data logically segregated. You have the ability to decide where you want your VMs to run (specific country or location within that country), and the client has no access to the underlying hardware or control over it. The provider looks after the hardware, and provides this as the service on which to run the cloud VMs;
- Private Cloud – See this as the virtual platform in your own data center to which only your company has access. While it can be hosted externally in another data center, generally Private Clouds are hosted within a company’s own data center, and are decidedly more costly to run. Maintenance on hardware and software, as well as forecasting for growth are all the responsibility of the company who owns it all. The big upside to this is security and control…nobody else has access to this infrastructure;
- Hybrid Cloud – a mix between on-site and offsite compute. For instance, hosting your ERP and mission critical applications locally within a company’s own data center, and offloading a test environment to a public cloud environment where you can pay-for-use of those VMs;
- Community Cloud – cloud infrastructure shared amongst a community where data and is shared amongst people/companies with a common interest. An example of this would be a government department.
What about services? Or the underlying platform on which a cloud service is based? Well, there are 3 main services:
- Software-as-a-Service (SaaS) – a provider makes available an application that companies or individuals can make use of. Examples of this would be any Internet-based email (Gmail being the most famous) or Salesforce. The users or companies using SaaS only have access to the services being offered, and not any Operating Systems (OS) or hardware;
- Platform-as-a-Service (PaaS) – generally offered for development such as databases or web servers. Microsoft Azure, for instance, has a number of PaaS options available to users and companies;
- Infrastructure-as-a-Service (IaaS) – the provider simply makes compute resources available and the user/company is able to deploy what they want, when they want. They can either bring their own licenses for OS or applications, or make use of an available licensing model from the IaaS provider itself.
With the end of this article, you should have a better idea of what cloud computing is and what it involves. I’ll dive a bit deeper in subsequent articles.