In simple words, cloud computing is nothing but accessing services through the Internet.
The most common services available through the cloud are IaaS (Infrastructure-as-a Service), SaaS (Software-as-a-Service), PaaS (Platform-as-a-Service), and in recent times, new services like CaaS (Communication-as-a-Service) and MaaS (Monitoring-as-a-Service).
- Client — Shopping Mall, Banking, Insurance, Healthcare
- Vendor — Hardware, OS, Dev Env, Databases, Application
- Dev Co — i.e. ennVee, TechM, Wipro, etc.
Platforms for Cloud Computing
A twist to customers, platforms in the cloud are making the delivery of application functionality even more interesting.
Increasingly, applications that run in the cloud are starting to look less like websites and more like platforms, meaning they are growing tech-wise and are starting to sprout APIs, code libraries, and even programming models.
Collectively, these new innovations in development technologies can be thought of as platforms to run the application in the cloud. Similar to traditional platforms, cloud computing platforms provide tools that allow developers to leverage and older functionality to create something new and match with that tool. However, because these platform tools are accessed freely over the Internet, rather than through an operating system or package that was installed on a local machine, developers don't need to worry about the logistics of putting together an executable that will be installed on a user's machine because everything is maintained in the cloud itself. Anyone with a web browser can access the app!
The possibilities presented by this type of platform service have emerged quickly, spurred on by the popularity of mash-ups — a website or application that combines tools from multiple cloud computing platforms without giving much complexity to the user to install extra software or tools in local machines to create new functionality.
Some cloud computing platform tools used in today's technology include innovations like Google's search API, which allows developers to use the power of that search engine in their applications, eBay's APIs for submitting items for listings and auctions, and Amazon.com's system for creating entirely new storefronts and provides control service operation access.
For example, almost any real estate website or application these days uses a mapping service such as Google Maps under the hood which makes there business easy, illustrating how these eBay's, Amazon.com's APIs are now commonly running alongside the more traditional database, application server, or os platforms.
PaaS is the concept of accessing a platform on which applications built are provided as a service over the internet.
It's an environment where developers use programming tools offered by a service provider to create applications and deploy them in a cloud. The application is hosted as a service and provided to customers via the Internet. The PaaS vendor provides a well-developed API for creating and extending specialized applications. The PaaS vendor also takes responsibility for the daily maintenance, operation, and support of the deployed application and each customer's data. Examples include Force.com (the platform used by SalesForce) and Google App Engine.
PaaS Use Cases
PaaS providers abstract out most of having to deal with servers and give clients an environment in which operating system and servers, as well as hardware and infrastructure, are taken care of. The business can requisition as they need them, scaling as demand grows, rather than investing in hardware and other resources.
Accessing infrastructure, such as application servers and storage server over the Internet, is called IaaS. Infrastructure-as-a-Service consists of highly automated and scalable compute resources, complemented by cloud storage and network capabilities that can be self-provisioned, metered, and available on-demand because of its lower maintenance.
Infrastructure-as-Service is the basic layer in the cloud computing model. Companies that provide IaaS include Digital Ocean, AWS, Microsoft Azure, and Rackspace.
IaaS Use Cases
IaaS allows developers to create their own platform and software. It allows an organization to spin up additional resources quickly and efficiently without having to purchase physical hardware. Usually, this model is charged on a “pay-as-you-use” or “pay-as-you-grow” basis.
An application that is hosted as a service provided to customers across the Internet is called SaaS.
Some examples of Software-as-a-Service include:
- Salesforce Customer Relationship Management (CRM)
- Microsoft Dynamics Customer Relationship Management (CRM)
SaaS Use Cases
Whenever cost is a matter for an organization, they tend to reduce the cost of ownership by removing technical staff most likely to install, manage, and upgrade software, as well as reduce the cost of licensing software. SaaS comes with a subscription model as a counterbalance. SaaS comes with IaaS, but SaaS doesn't offer the flexibility of creating custom software like IaaS does.
In simple words, I want to highlight the differences between SaaS, PaaS, IaaS with some examples:
- SaaS — For example, if you have already built a website and now, you want to host the website.
- PaaS — When you're planning to build a website and you don't want to put much money into buying software like force.com, Anypoint Studio, etc. to develop — and if you think someone would rent you the software license for a certain period — then PaaS is the best option.
- IaaS — Now, let's say you want to build a website or application and you want the license of MuleSoft Anypoint Studio, but also to ensure that the system on which you are working fulfills your computational capabilities. Assuming all of the above is true, then IaaS comes into the picture.
Functions-as-a-Service is a newer cloud computing service allowing to users to develop, maintain, and run code independently without any complexity of building infrastructure. It is associated with serverless computing architectures.
Types of functions:
- Process a web HTTP request
- Process an MQ message (queue)
- Scheduling and processing queues
- Manually running functions
FaaS platforms available for public use include:
FaaS Use Cases
- Very high volume transactions: Isolate them and scale them.
- Burstable workloads: If you only run something once a day or month, there's no need to pay for a server 24/7/365.
- Scheduling tasks: They are a perfect way to run a certain piece of code on a schedule.
Communication-as-a-Service is a contract enterprise communications solution. Providers of this type of cloud-based solution are known as CaaS vendors.
CaaS is responsible for the management of hardware and software required for delivering some telecommunication services and networking resources like Voice over Internet Protocol (VoIP) services, Instant Messaging (IM), and video conferencing capabilities. CaaS offerings guarantee QoS (Quality of Service) with well-defined Service Level Agreements (SLAs). CaaS solutions also include redundant switching and circuit diversity.
Service Layer Architecture