As cloud computing has grown in popularity, several different models and deployment strategies have emerged to help meet specific needs of different users. Each type of cloud service, and deployment method, provides you with different levels of control, flexibility, and management. Understanding the differences between Infrastructure as a Service, Platform as a Service, and Software as a Service, as well as what deployment strategies you can use, can help you decide what set of services is right for your needs.
There are four main models for cloud computing. Each model represents a different part of the cloud computing stack
Infrastructure As a Service (IaaS)
For hosting and successfully using organization’s applications/software you need to have appropriate infrastructure like servers, storage, network security devices, network communication devices etc.
Infrastructure as a Service, sometimes abbreviated as IaaS, contains the basic building blocks for cloud IT and typically provide access to networking features, computers (virtual or on dedicated hardware), and data storage space. Infrastructure as a Service provides you with the highest level of flexibility and management control over your IT resources and is most similar to existing IT resources that many IT departments and developers are familiar with today.
Responsibilities: Cloud Service Provider
Managing hardware devices
Virtualization of hardware
Managing application and tools
Patching of software
Software license management
Upgrading software and tools
Backup and application security
Creating Runtime environment
Cost Saving as you use “pay as you go model”
More flexible in terms of selecting devices and components
No worry for security compliance
More secure environment
Can be accessed from anywhere and any time
Software As a Service (SaaS)
Software as a service (SaaS) is a software distribution model in which a cloud provider hosts applications and makes them available to end users over the internet. In this model, an independent software vendor (ISV) may contract a third-party cloud provider to host the application. Or, with larger companies, such as Microsoft, the cloud provider might also be the software vendor.
In the software-on-demand SaaS model, the provider gives customers network-based access to a single copy of an application that the provider created specifically for SaaS distribution. The application’s source code is the same for all customers, and when new features or functionalities are released, they are rolled out to all customers. Depending on the service-level agreement (SLA), the customer’s data for each model may be stored locally, in the cloud or both locally and in the cloud.
Organizations can integrate SaaS applications with other software using application programming interfaces (APIs). For example, a business can write its own software tools and use the SaaS provider’s APIs to integrate those tools with the SaaS offering
Benefits of using SaaS
No application management by customer
No on premise Infrastructure required
No license management required by customers
24/7 accessible from anywhere
Platform as a Service (PaaS)
When ever there is a requirement for new application development, we need to have a appropriate environment setup. This environment consists of required set of software tools and hardware . A cloud service provider offers this environment on rent/lease which is to be accessed through web. Developer teams are focused on application development whereas providing necessary set of developer tools and hardware is the responsibility of Cloud service provider. Providing this type of service is Known as “Platform as a Service (PaaS)” . This enable customer to mitigating the expenses and complexities of buying, installing, and managing in-house hardware and software and concentrate more towards their business.
Function as a Service (FaaS)
Hosting your own applications in cloud requires many associated devices like VMs, Storage, Networking etc. Cloud providers provide Serverless services where as customer is responsible just to provision their application and provisioning of underline infra is done automatically by cloud service providers.
FaaS (Function as a Service) is a subset of serverless computing in which your code/micro services are triggered automatically based on some events. It does not require you to provision underline infra required to run your code or micro service. This responsibility is taken care by cloud service providers.
Because it enables transactions to be isolated and scaled easily, FaaS is good for high-volume and embarrassingly parallel workloads. It can also be used to create backend systems or for activities such as data processing, format conversion, encoding, or data aggregation
Management of Different Services.
Your cost to the cloud service is dependent on the level of management handled by you and cloud service provider. Like you pay less when you go for Iaas compared to SaaS service where every thing is managed by cloud service provider
Cloud offerings are very vast. you may end up of paying huge unwanted money if your requirement is not properly analyzed and on other hand you can save a lot if you are clear on your requirement
Below figure depict different level of management for different services