Cloud models come in three types: SaaS (Software as a Service), IaaS (Infrastructure as a Service) and PaaS (Platform as a Service). Each of the cloud models has their own set of benefits that could serve the needs of various businesses.
Software as a service (SaaS) is a cloud computing offering that provides users with access to a vendor’s cloud-based software. Users do not install applications on their local devices. Instead, the applications reside on a remote cloud network accessed through the web or an API. Through the application, users can store and analyze data and collaborate on projects.
- SaaS vendors provide users with software and applications via a subscription model.
- Users do not have to manage, install or upgrade software; SaaS providers manage this.
- Data is secure in the cloud; equipment failure does not result in loss of data.
- Use of resources can be scaled depending on service needs.
- Applications are accessible from almost any internet-connected device, from virtually anywhere in the world.
- SaaS applications are totally dependent on Internet connection. They are not usable without Internet connection.
Open SaaS and SOA
Open SaaS uses those SaaS applications, which are developed using open source programming language. These SaaS applications can run on any open source operating system and database. Open SaaS has several benefits listed below:
- No License Required
- Low Deployment Cost
- Less Vendor Lock-in
- More portable applications
- More Robust Solution
PaaS (Platform as a service)
Platform as a service (PaaS) is a cloud computing offering that provides users with a cloud environment in which they can develop, manage and deliver applications. In addition to storage and other computing resources, users are able to use a suite of prebuilt tools to develop, customize and test their own applications.
App Engine of Google and Force.com are examples of PaaS offering vendors. Developer may log on to these websites and use the built-in API to create web-based applications. But the disadvantage of using PaaS is that, the developer locks-in with a particular vendor. For example, an application written in Python against API of Google, and using App Engine of Google is likely to work only in that environment.
- PaaS provides a platform with tools to test, develop and host applications in the same environment.
- Enables organizations to focus on development without having to worry about underlying infrastructure.
- Providers manage security, operating systems, server software and backups.
- Facilitates collaborative work even if teams work remotely.
- Lack of portability between PaaS clouds : Although standard languages are used, yet the implementations of platform services may vary. For example, file, queue, or hash table interfaces of one platform may differ from another, making it difficult to transfer the workloads from one platform to another.
- Event based processor scheduling : The PaaS applications are event-oriented which poses resource constraints on applications, i.e., they have to answer a request in a given interval of time.
- Security engineering of PaaS applications : Since PaaS applications are dependent on network, they must explicitly use cryptography and manage security exposures.
Based on the functions, PaaS can be classified into four types :
- Application delivery-only environments : The application delivery PaaS includes on-demand scaling and application security.
- Stand-alone development environments : The stand-alone PaaS works as an independent entity for a specific function. It does not include licensing or technical dependencies on specific SaaS applications.
- Open platform as a service : Open PaaS offers an open source software that helps a PaaS provider to run applications.
- Add-on development facilities : The add-on PaaS allows to customize the existing SaaS platform.
Infrastructure-as-a-Service (IaaS) is a cloud-computing offering in which a vendor provides users access to computing resources such as servers, storage and networking. Organizations use their own platforms and applications within a service provider’s infrastructure.
Apart from these resources, the IaaS also offers:
- Virtual machine disk storage
- Virtual local area network (VLANs)
- Load balancers
- IP addresses
- Software bundles
All of the above resources are made available to end user via server virtualization. Moreover, these resources are accessed by the customers as if they own them.
- Instead of purchasing hardware outright, users pay for IaaS on demand.
- Infrastructure is scalable depending on processing and storage needs.
- Saves enterprises the costs of buying and maintaining their own hardware.
- Because data is on the cloud, there can be no single point of failure.
- Enables the virtualization of administrative tasks, freeing up time for other work.
IaaS shares issues with PaaS and SaaS, such as Network dependence and browser based risks. It also has some specific issues, which are mentioned below:
- Virtual Machine sprawl : The VM can become out-of-date with respect to security updates because IaaS allows the customer to operate the virtual machines in running, suspended and off state. However, the provider can automatically update such VMs, but this mechanism is hard and complex.
- Data erase practices : The customer uses virtual machines that in turn use the common disk resources provided by the cloud provider. When the customer releases the resource, the cloud provider must ensure that next customer to rent the resource does not observe data residue from previous customer.
- Compatibility with legacy security vulnerabilities : Because IaaS offers the customer to run legacy software in provider’s infrastructure, it exposes customers to all of the security vulnerabilities of such legacy software.
IaaS vs. PaaS vs. SaaS
The easiest and most common way of understanding the distinction between the coarse grained -aaS categories of IaaS, PaaS, and SaaS is typically by understanding which elements of the stack are managed by the vendor and which are managed by the end user.
In a traditional IT setting, it is up to the end user to manage the whole stack end-to-end, from the physical hardware for servers and networking, up through virtualization, operating systems, middleware, and so on.
IaaS, PaaS, and SaaS each offer a progressive layer of abstraction after that. IaaS abstracts away the physical compute, network, storage, and the technology needed to virtualize those resources. PaaS goes a step further and abstracts away the management of the operating system, middleware, and runtime. SaaS provides the entire end-user application as-a-Service, abstracting away the entire rest of the stack.