What is Cloud Computing Reference Model?
The important characteristics of cloud computing is ability to deliver on demand a variety of services which can be diverse from each other. So, there is a different perception of cloud computing among the users. However, there is no uniformity in the perception among the users that we can define cloud computing into three major categories, and they are called cloud computing reference model.
Type Of Cloud Computing Reference Model
There are three type of cloud computing refrence model which are Infrastructure as a Service (IaaS),Platform as a Service (PaaS) and Software as a Services (SaaS).
Infrastructure as a Service (IaaS)
Iaas is the most basic category of cloud computing services. With Iaas, we can rent IT infrastructure servers, and virtual machines (VMs), storage, networks, and operating systems from a cloud provider on a pay-as-you-go basis. It’s an instant computing infrastructure, provisioned and managed over the internet. Virtual hardware is provided on demand in the form of virtual machines instances. Pricing can be hourly basis. Virtual storage is either raw disk space or an object store which is the higher level of abstraction entities rather than file. For example data in s3 storage which when we access data using JAVA API then we can’t treat them as file however they are shown as file with s3cmd ls command inside the s3 bucket. Virtual networking is the collection of the services that manages networking among virtual instances.
Platform as a Service (PaaS)
PaaS is another category of cloud computing reference model. Paas provides an environment for building, testing, and deploying software applications. The goal of PaaS is to help create an application as quickly as possible without having a focus on managing the underlying infrastructure. PaaS models deliver scalable and elastic runtime environments on demand and host execution of applications. These services are backed by a core middleware platform that is responsible for creating an abstract environment where applications are deployed/executed. Responsibility of service providers is to provide the scalability and manage fault tolerance whereas use focus on the logical part of application development which leverage the use of APIs and libraries provided by PaaS. For Example We want to process data on spark engine For this We don’t have to install Spark environment and Scala environment if we are writing code in Scala language. Service providers already do this for users. We will be using cloud computing services as a platform.
Software as a Services (SaaS)
Saas is software that is centrally hosted and managed for the end customer. It allows users to connect to and use cloud-based apps over the internet. Common examples are email, calendars, and office tools such as Microsoft Office 365.SaaS provides application and services on demand. Most of the common functionalities of desktop applications (office automation, document management, photo editing, customer relationship management (CRM)) are provided via web browser which can make applications more scalable. Applications are shared by multiple users. For example, social networking sites like Facebook, twitter which are hosted on cloud we just use them as software. Most of the social networking makes use of cloud-based infrastructures.
References: Mastering Cloud computing book