A Service Provider can offer cloud services to the customers in three different ways: as infrastructure – infrastructure as service (IaaS), as a platform – platform as a service (PaaS), or as an application – software as a service (SaaS). Before we decipher each of these acronyms, let’s quickly review virtualization.
As was described in the previous post, a Cloud Provider subdivides their physical computers into virtual computers or virtual machines (VMs) using the virtualization technology. These virtual machines are made out of software but appear in their functioning like real physical computers to a user who can access them over Internet. A virtual machine gets allotted only a portion of the computing resources of the underlying physical computer.
The virtualization software that subdivides the physical computer into virtual machines is called hypervisor and it is the first layer of software that gets loaded directly onto the hardware. In a picture below three virtual machines were created out of the underlying physical computer.
IaaS stands for the Infrastructure as a Service. This fancy term means simply that a customer can lease virtual machine(s) from a service provider.
Customer can then install an operating system on a virtual machine and then develop and deploy their application(s) on top of the operating system. Customer is responsible for the maintenance of the operating system and applying patches to it.
Scaling of IaaS. When Cloud management software detects that customer’s usage of VM had reached a threshold, it will auto-scale that VM resulting in doubling of computing capacity. The alternative to auto-scaling is to notify the customer that the threshold have been reached and this way the customer can choose to adjust the resource allocation.
PaaS stands for Platform as a Service. With PaaS, the cloud owner provides to a customer a VM, an Operating System and a middleware (i.e. database, web server, programming language execution environment, software tools, etc.) Customer can then develop and run their own applications on this pre-packaged platform. With PaaS customer does not need to worry about maintaining the OS and the middleware.
Scaling of PaaS. The underlying VM and storage resources scale out or in automatically to match customer’s application demand. Alternatively, customer may choose to be notified when a usage threshold have been reached so that customer could choose to adjust the resource allocation.
SaaS (Software as a Service) is really an unfortunate term. It would have been more appropriate to name it AaaS – Applications as a Service.
With SaaS Cloud owners install applications in the cloud for the customers to lease and use. These apps are typically ready made business solutions. Examples of such apps are Google Apps, customer relationship management (CRM), HR and payroll, etc.
Scaling of SaaS. With a SaaS whenever a customer’s demand goes up, the tasks within the app are distributed at a run-time onto multiple virtual machines to meet that demand. This is completely transparent to the customer.
There are numerous specialized forms of SaaS:
BPaaS (business process as a service),
TaaS (testing as a service),
CaaS (communication as a service),
DaaS (data as a service), and
Desktop as a service
BPaaS. In the past businesses have programmed their business process flows into their applications. If, for example, a company’s business process mandated that before an order can be issued a credit check should be performed, then the company would have this business process step built into their application. Today, many of the business processes have been standardized and instead of hardcoding these standard process steps into a business application a menu of processes that are not tied into a single application and can work with many business applications have been created and offered as BPaaS. Business now can choose which processes steps they need and can lease these from a cloud provider.
TaaS. TaaS is a cloud-based apps for delivering automated application testing services. TaaS is most suitable for specialized testing efforts that don’t require a lot of in-depth knowledge of the design or of the system. For example, services that are well-suited for the TaaS include automated regression testing, performance testing, and security testing.
CaaS. Communication as a Service (CaaS) provides customers with Enterprise level VoIP, VPNs, PBX without the need to purchase, host and manage the infrastructure.