Most websites and server-based applications run on particular computers or servers. What differentiates the cloud from the way those are set up is that the cloud utilizes the resources from the computers as a collective virtual computer, where the applications can run independently from particular computer or server configurations. They are basically floating around in a “cloud of resources”, making the hardware less important to how the applications work.
With broadband internet, the need to have the software run on your computer or on a company’s site is becoming less and less essential. A lot of the software that people use nowadays are completely web-based. The cloud takes advantage of that to bring it to the next level.
For example, if you are hosting your website on a local server or from your PC, you must usually select a particular operating system (Windows/Linux/Mac), to determine what software you can run on that particular server. If your site is being hosted in the cloud, there is no need to do that. You can run Windows and Linux programs side by side.
How does Cloud Computing work?
The Cloud Computing Reference Architecture (CCRA) is a great place to start. I don’t mean that the CCRA is the Holy Grail and should always be fully applied, but it gives you material to design your own solution and understand the architecture. You can find some questions and answers in this article: “What is CCRA?”
The CCRA defines multiple components, and each component fulfills a given functionality.
The first building block is the infrastructure where the cloud will be implemented. Some people make the assumption that environment should be virtualized, but as cloud is a way to request resources in an on-demand way and if you have solutions to provide on bare metal, then why not? The infrastructure will support the different types of cloud (IaaS, PaaS, SaaS, BPaaS).
To be able to provide these services you will need Operating System Services (OSS), which will be in charge of deploying the requested service, and Business System Services (BSS), mainly used to validate the request and create the invoice for the requested services. Any metrics could be used to create the invoice (for example, number of users, number of CPUs, memory, usage hours/month). It is very flexible and depends on the service provider.
A cloud computing environment will also need to provide interfaces and tools for the service creators and users. This is the role of the Cloud Service Creator and Cloud Service Consumer components.
Let’s see how it works in reality.
Generally, you log in to a portal (enterprise or public wise) and you order your services through the Cloud Service Consumer. This service has been created by the cloud service provider and can be a simple virtual machine (VM) based on an image, some network components, an application service such as an WebApp environment and a service such as MongoDB. It depends on the provider and type of resources and services.
The cloud provider will validate, through the BSS, your request and if the validation is okay (credit card, contract), it will provision the request through the OSS.
You will receive, in one way or another, the credentials to access your requested services and you will usually receive a monthly invoice for your consumption.