Sunday, December 1, 2013

Cloud - Platform as a Service

This is part three of a continuing discussion of The Cloud. In Part 1, we discussed how people perceive the cloud, and where these perceptions come from. In Part 2, we looked at Software as a Service (SaaS). Now let's look at what was the next logical evolutionary step - Platform as a Service (PaaS).

In discussing PaaS, we first need to understand a couple of other major milestones in computing history - virtualization and clustering. Virtualization has a big name for a simple topic. These days, almost anything can be virtualized: applications, operating systems, even hardware. We use the term "virtualization" to describe a method of abstraction. For example, a company called VM-Ware has made a business out of PC hardware abstraction, allowing them to virtualize the operating system of a computer. This allows them to run multiple instances of operating systems on the same compute platform, simultaneously.

A computer's operating system (OS) is responsible for "talking" to the hardware. For example, it interfaces with the hard-drive, so the applications we use don't have to know how to write the data to the disks. It interfaces with all of the various components, including the microprocessor, the random access memory (RAM), the hard disks, the network interface cards, and so on.

Then the virtualization layer comes into play, called a hypervisor, abstracting the hardware from the OS. Acting like a translator, it says "don't worry what KIND of processor or RAM" you think I'm supposed to have, I'll translate your queries & responses in a way that you will understand. This abstraction layer means that the OS can be deployed onto any piece of hardware, running the same hypervisor ! The underlying hardware layer becomes unimportant.

The first way this became important was in the area of Disaster Recovery. Since the OS and it's applications were now encapsulated into a computer file, and hardware-specific drivers were no longer important, moving the OS from one hardware platform to another became trivial. If a systems administrator could move the OS across the computer room, why not across town ? Or across the country ? Suddenly, disasters weren't catastrophic to a business.

Another key element to PaaS is the concept of the server cluster. Prior to virtualization, server clustering allowed PC-based servers to perform two duties - 1) scale the load of a single application beyond the hardware capabilities of a single server (aka a "node"), and 2) allow redundancy in the event of maintenance or a hardware failure. Google's famous search engine runs on many multiple server clusters, which are in turn load-balanced across different data-centers, so that new search requests go to less busy servers. So when a query comes to the virtual address of the cluster, the cluster-manager software determines which node to send the request to. The decision can be based on any number of criteria, such as how busy the nodes are, or the relative distance from the originator of that request.

Now that we have a hardware-independent hypervisor, and the ability to cluster our hypervisors, we can now discuss how to deploy PaaS. When an IT Department needs to set up a service, say a web-server, they can skip the phases of hardware and OS procurement, the phases of assembling the hardware, installing the OS and hardening it for security purposes. They skip ALL of that by simply logging onto their cloud-provider's management web-site & making a few choices and pressing the "provision" button. Then all they need do is install & configure the web-server and connect it to the data source. Clustering is important for making the OS Guest redundant across the provider's data-centers.

The main advantage of such a configuration is that it allows the service to be deployed in an elastic fashion. That means it can grow and shrink according to actual demand, rather than having to guess in advance what demand might be. Since the IT group doesn't need to buy new equipment for each new node, there is a shift from capital expenditure (CAPEX) to operational expenditure (OPEX), as well as potential savings related to the delay in time it takes to procure and deploy the new server hardware. Obviously, the cloud isn't free. Providers of PaaS typically charge for their service according to a number of metrics, including compute cycles, amount of disk-space required, and so forth. The positive is that the IT Group only pays for what they use, on an ongoing basis, rather than guessing and paying for it up front.

Again, we are seeing a shift in the business model. Now, the deployment can be very rapid, eliminating the acquisition phase altogether. The provider supplies the hypervisor and the operating system, and the client need only deploy the application. This allows the IT group to be agile in providing the services that its business requires, while having predictable costs associated with operating the service.

 

No comments: