Cloud Computing and Service Models

Infrastructure as a Service

Infrastructure as a service (IaaS) is a cloud computing service model by means of which computing resources are supplied by a cloud services provider. The IaaS vendor provides the storage, network, servers and virtualization (which mostly refers, in this case, to emulating computer hardware). This service enables users to free themselves from maintaining an on-premises data center. The IaaS provider is hosting these resources in either the public cloud (meaning users share the same hardware, storage, and network devices with other users), the private cloud (meaning users do not share these resources), or the hybrid cloud (combination of both). It provides the customer with high-level APIs used to dereference various low-level details of underlying network infrastructure like backup, data partitioning, scaling, security, physical computing resources, etc. A hypervisor, such as Xen, Oracle VirtualBox, Oracle VM, KVM, VMware ESX/ESXi, or Hyper-V runs the virtual machines as guests. Pools of hypervisors within the cloud operational system can support large numbers of virtual machines as well as the ability to scale services up and down according to customers’ varying requirements.

Typically IaaS involves the use of a cloud orchestration technology like OpenStack, Apache CloudStack or OpenNebula. It manages the creation of a virtual machine and decides on the hypervisor (physical host) in order to start it whilst enabling VM migration features between hosts, allocates storage volumes and attaches them to VMs that track usage information for billing and more. An alternative to hypervisors is Linux containers, which run in isolated partitions of a single Linux kernel running directly on the physical hardware. Linux cgroups and namespaces are the underlying Linux kernel technologies used to isolate, secure and manage the containers. Containerisation offers higher performance than virtualization because there is no hypervisor overhead. IaaS clouds often offer additional resources such as a virtual-machine disk-image library, raw block storage, file or object storage, firewalls, load balancers, IP addresses, virtual local area networks (VLANs) and software bundles.

Further to cloud computing, infrastructure as a service is the capability provided to the consumer in the form of provision processing, storage, networks as well as other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage and deployed applications; and possibly limited control of select networking components (host firewalls). According to the Internet Engineering Task Force (IETF), the most basic cloud-service model offered by the providers is IT infrastructure – virtual machines and other resources – as a service to subscribers. IaaS-cloud providers supply these resources on-demand from the large pools of equipment installed in data centers. For wide-area connectivity, customers can use either the Internet or carrier clouds (dedicated virtual private networks). To deploy their applications, cloud users install operating-system images and the application software on the cloud infrastructure. In this model, the cloud user patches and maintains the operating systems along with application software. Cloud providers typically bill IaaS services on a utility computing basis: cost reflects the number of resources allocated and consumed.

Platform as a Service

Platform as a service (PaaS) or application platform as a service (aPaaS) or platform-based service is a category of cloud computing services that allows customers to provision, instantiate, run and manage a modular bundle comprising a computing platform and one or more applications, without the complexity of building and maintaining the infrastructure typically associated with developing and launching the application(s), and to allow developers to create, develop and package such software bundles.

PaaS can be delivered in three ways:

as a public cloud service from a provider, where the consumer controls software deployment with minimal configuration options and the provider provides the networks, servers, storage, operating system (OS), middleware, database and other services to host the consumer’s application

as a private service (software or appliance) behind a firewall

as software deployed on public infrastructure as a service

The advantages of PaaS are primarily that it allows for higher-level programming with dramatically reduced complexity; the overall development of the application can be more effective, as it has built-in/self up-and-down ramping infrastructure resources; and maintenance and enhancement of the application is thus easier.

Disadvantages of various PaaS providers as cited by their users include increased pricing at larger scales, lack of operational features, reduced control and the difficulties of traffic routing systems.

Software as a Service

Software as a service (SaaS) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. SaaS is also known as on-demand software, web-based software or web-hosted software.

SaaS is a business model specific to cloud computing, along with infrastructure as a service (IaaS) and platform as a service (PaaS). SaaS apps are typically accessed by users of a web browser (a thin client). SaaS became a common delivery model for many business applications, including office software, messaging software, payroll processing software, DBMS software, management software, CAD software, development software, gamification, virtualization, accounting, collaboration, customer relationship management (CRM), management information systems (MIS), enterprise resource planning (ERP), invoicing, field service management, human resource management (HRM), talent acquisition, learning management systems, content management (CM), geographic information systems (GIS) and service desk management.

SaaS has been incorporated into the strategies of nearly all enterprise software companies.

The cloud (or SaaS) model has no physical need for indirect distribution because it is not distributed physically and is deployed almost instantaneously, thereby negating the need for traditional partners and middlemen. Unlike traditional software, which is conventionally sold as a perpetual license with an up-front cost (and an optional ongoing support fee), SaaS providers generally price applications using a subscription fee, most commonly a monthly fee or an annual fee.

Consequently, the initial setup cost for SaaS is typically lower than the equivalent enterprise software. SaaS vendors price their applications based on some usage parameters, such as the number of users using the application. However, because in a SaaS environment customers’ data reside with the SaaS vendor, opportunities also exist to charge per transaction, event or other units of value, such as the number of processors required.

The relatively low cost for user provisioning (setting up a new customer) in a multi-tenant environment enables some SaaS vendors to offer applications using the freemium model. In this model, a free service is made available with limited functionality or scope, and fees are charged for enhanced functionality or larger scope.

A key driver of SaaS growth is SaaS vendors’ ability to provide a price that is competitive with on-premises software. This is consistent with the traditional rationale for outsourcing IT systems, which involves applying economies of scale to application operation; an outside service provider may be able to offer better, cheaper more reliable applications.