• Pratik Bhattacharya

Cloud Computing (Part II) - Delivery Models

Now that we have a basic knowledge of what is Cloud Computing, in this blog we will be talking about the various models of cloud service.

When you are using any Cloud Computing platform, there are 3 major models of service that you can consume. They are Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) or Software-as-a-Service (SaaS). The main difference between each of them is in the amount of control that you, as a consumer, want to retain on the infrastructure. Each of these services has its pros and cons and should be used based on your use-case and in some cases the availability of skilled resources.

There are other newer models like Function-as-a-Service (FaaS) models, but we will keep our discussion concentrated on the major service models.

TL;DR


Quick look


IaaS - Infrastructure as a Service

In this model, the Cloud Vendor provides the infrastructure or computing resources to the consumer. The consumer is free to use these computing resources as per their prerogative, and their use case.

Delivery Model

The Cloud Vendor will continue to manage the physical hardware devices which include the Physical servers, storage devices and networking components. Virtualization will also be taken care of by the Cloud Vendor. The consumer will have complete control and customization options over the Operating System (Linux, Windows etc.), the runtime framework, the data and the applications being executed over these computing resources. This kind of delivery model is analogous to leasing for a Virtual Machine on a demand-basis and paying for the same on a pay-as-you-go model.

E.g., if you want to run an E-Commerce website on the cloud using the IaaS model, the cloud service provider will provide you with the Virtual machine, with required computing power, and you will be responsible for installing and updating a suitable Operating System (like Windows Server), installing a Web Server like Apache or IIS and then deploying your custom Website code. You will also be responsible for setting up other settings like opening required ports for HTTP/HTTPS communication. In similar fashion to maintain data for your organization, you are responsible for installing the required Database Management System (DBMS) like SQL Server or other non-relational DBMS like Mongo DB or Cassandra. In all these scenarios the Cloud Computing will continue to own and maintain the physical devices required by your organization.

Advantages

  • Flexible for the consumer since the consumer continues to have OS-level control over the computing resources. As a consumer, you are free to choose the O/S and runtime

  • Easy to use

  • Issues and maintenance overhead of the physical devices are offloaded to the 3rd party Cloud Vendor

  • Payment is based on a usage model

  • Resources can be scaled/purchased on a demand basis

Issues

  • The consumer will need to maintain and patch the guest Operation System of the Virtual Machine. This means that the consumer is responsible for keeping the Operating System up-to-date when security patches and other bug fixes are released for the Operating System. This increases the maintenance overhead compared to the other Cloud Service models.

  • In some scenarios, a dedicated team is required for maintaining the Virtual Machines. Hence skilled resources are needed for operations and management of the VMs.

  • IaaS has a multi-tenant architecture, i.e., the same physical host machine can be used to create multiple VMs with each VM being used by a different tenant. Hence there are some security concerns that need to be addressed by the Cloud Service provider.

  • Initial setup time is huge. Since the consumer is responsible for maintaining the setting up the OS in the VMs, the initial setup time for deploying in IaaS is more compared to other models.

When to Use

IaaS is best suited when your organization wants to quickly move from dedicated On-Premise resources to Cloud Service Provider. In such a scenario instead of having the infrastructure in your own datacenter you are leasing the infrastructure from a 3rd party Cloud Service Provider; with the advantage of offloading the physical hardware maintenance duties to the Cloud Service Provider.

IaaS should also be used in scenarios where you want to have complete control over not only the Application and Data but the underlying Virtual Machine settings. In case your application/data needs to have major customizations done over the runtime or OS then IaaS is a good choice.

PaaS - Platform as a Service

In this model, the cloud vendor will provide the consumers with a framework where custom applications and software can be built. The consumers won't have to deal with any hardware and infrastructure-related concerns. As a consumer, you can focus on building and maintaining your custom applications.

Delivery Model

The cloud vendor will not only maintain the hardware and infrastructure but also the Operating System, the middleware and the framework. The data and the custom software will belong to the consumer. The consumer pays for the VM and the operating system license cost.

Example

Tasking the same example of an e-commerce website. In a PaaS model, the cloud vendor will provide you with a VM or an abstracted web service which will have the Operating System and the necessary runtimes (like ASP.NET, IIS or Node) will be installed in the web service. APIs will be provided which will be used by the consumer to deploy their custom code in the pre-installed machines. For database, a similar model will be followed where the Cloud Vendor will provide a VM with SQL (or some other database) pre-installed. As a consumer, you will need to load the SQL scripts to create the required tables, views, Stored Procedures, etc.

Advantages

  • Reduced effort for IT Administrators (compared to IaaS)

  • OS security patching and framework updates will be taken care of by the Cloud Vendor

  • Scaling is easier and faster

  • Developers can concentrate on building the application without having to worry about the underlying architecture

Issues

  • Reduced control over the framework, hence framework updates are controlled by the Cloud Vendor. In this scenario, as a consumer, you won't be able to update the underlying framework at your own will. You will be dependent on the Cloud Vendor to update their systems.

  • Different cloud providers provide different mechanisms to deploy custom code/applications. Hence there is a chance of Vendor lock-in where your deployment scripts may get too specific to a Cloud Vendor.

  • Some cloud provides may not be able to provide you with the runtime framework required by your applications. E.g. your engineering team maybe building an application on Ruby, but your cloud vendor may not be able to provide you with an Ap Service where the required runtime is installed.

When to Use

PaaS model should be chosen when you are developing a greenfield project from the scratch. You wouldn’t have to spend much effort and cost on IT administration and the engineering team can concentrate on building the software.

SaaS - Software as a Service

In this model as a consumer, you will get to use online built applications uploaded by the Cloud Vendor. APIs will be provided to the consumer to configure the software as per their requirements.

Delivery Model

The cloud vendor would deploy ready-to-use software in the Cloud, the consumer will get to subscribe and use the software. The consumer pays for the subscription cost as decided by the Cloud Vendor.

Example

Going by the same E-Commerce website, the Cloud Vendor would deploy a generic multi-tenant E-Commerce software. The consumers would-be tenants who would use the software. They would be able to use APIs or UIs provided by the Vendor to upload their product, track shipments, view reports, etc. Shopify, Big Commerce, Wix are some of the companies in this market space.

Advantages

  • Time to market is fastest when compared to Paas and IaaS.

  • Development and maintenance effort is hugely reduced

Disadvantages

  • Limited opportunity to customize the software

  • Different vendors would have their own SaaS offering for the same category of Product which increases the chances of vendor lock-in

  • Your data will be owned by the Vendor, so security and privacy concerns may arise in case your vendor's security standards are not up to the mark

  • APIs and integration points provided by the Vendor may be limited. So integrating your SaaS offerings with other applications may be an issue

When to Use

When a ready-made solution is already available for you and you do not have enough engineering resources to build some custom from the grounds-up. Time-to-market can also be a factor, and in situations where you need to have a market presence as soon as possible, SaaS can be a good model.

983 views0 comments

Recent Posts

See All