The 5 Types of Cloud Computing
The age of globalization and digitalization has increased the demand for computer systems and resources in a magnitude that was never known or imagined before. With the advent and widespread use of mobile and hand-held devices, 62% of people on this planet are now using computer resources in some way or the other[1]. Each one of these users is almost certainly using some online services and all such services use computer resources or systems to provide their service. Every business big or small is now using computer systems to manage their customers, their employees, their vendors, their inventory, and every other asset they account for within their organisation.
As businesses grow in size, it gets practically impossible for them to manage their own data centres especially when they are involved in industry domains that are barely technical in nature. As such Cloud Computing Service models came into existence to take care of the job of managing the data of all those hundreds and thousands of customers, employees, vendors, investors, etc while the business or the company can just focus on their deliverables. In fact, now the businesses can actually give all their worries pertaining to computer resources and allied services to the Cloud Computing companies as Cloud Computing is no longer just about managing data and data centres.
If you want to find out more about what Cloud Computing is, feel free to check out one of my previous blog posts here.
The idea of using cloud computing and its service-oriented architecture is to ensure that almost everything is available as a service. Cloud Computing can come in various types and models and here we will discuss 5 of the most known cloud computing models.
Infrastructure as a Service
Infrastructure as a Service (IaaS) as defined by NIST is “where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).”
Utilising high-level APIs consumers can rapidly provision various resources such as compute, memory, storage and networking. There is a hypervisor that runs all the virtual machines. Pools of such hypervisors that sit within the cloud providers’ network support a large number of virtual machines that have the ability to be scaled up or down based on the varying customer requirements.
These IaaS services are provided on an on-demand basis and are enabled through Cloud Providers’ huge pool of servers and equipment installed in their high-tech data centres. These services are deployed from the cloud-based OS images and other application software which are maintained periodically through cloud patches and upgrades. Billing is done on the basis of resources that are allocated and utilized.
Examples include - AWS EC2, Google Compute, MS Azure, Rackspace, etc.
IaaS is the basic building block for companies. IT teams typically use IaaS in order to build PaaS capabilities for their organisations.
Platform as a Service
Platform as a Service (PaaS) is defined by NIST as: “the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.”
In this model, the end-user would have no control over the servers or the wider network. They would have full control over their own applications that they have built. This model tends to lend itself better to successful DevOps implementations but beware that just rolling out PaaS alone will not give you functioning DevOps patterns within your organisation. For more information on DevOps patterns check my previous blog post here.
This model is typically used to provide the development platform to application developers. Allowing for simple reuse of software components in addition to other cloud features, such as scalability and high-availability, means that companies can reduce the amount of code developers need to write.
This model can also be used for analytics and business intelligence, with tools usually being provided for data analysis to find insights or predict future outcomes, which enable businesses to make better decisions.
Application developers usually prefer to build and host their applications on a PaaS, as it saves them the herculean tasks of managing the infrastructure.
Apart from reducing the infrastructure tasks, the auto-scalability that these platforms offer ensures that you never run out of storage and disc space.
Examples - AWS EKS, MS Azure AKS, Openshift, Google GKE.
Software as a Service
Software as a Service (SaaS) is described by NIST as The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
In this model, the end-user is able to access the application software. The cloud provider runs and manages the platform and the infrastructure on which these applications are hosted and the end customer simply uses the application on a pay-per-usage basis, by paying a monthly or annual subscription.
Some examples of SaaS are - Google Docs, Evernote, Salesforce CRM.
One of the main benefits of using SaaS services is that users can easily gain access to sophisticated applications for performing particular tasks or workflows. All without having to install, update or maintain any hardware or software.
Another key benefit of using SaaS services is that it can help to make your workforce more mobile due to the application being readily available on the internet and accessible from any connected device.
Mobile Backend as a Service
Mobile Backend as a Service (MBaaS) is a service model which focuses on providing application developers with a facility to link the applications they develop to cloud storage and APIs that are used on the backend.
This model can also provide developers with features like push notifications, user management, file upload and geo-location. The nice thing about this model is that you can write the backend functionality once and it can be reused in numerous applications.
One of the key benefits of this model is that it can save lots of time due to the ‘write once, run many’ characteristics of the backend. This can massively speed up time to market if launching both an Android and an IOS application for instance.
Industry examples of this service model in operation are Parse, Google Firebase, AWS Amplify and Azure Mobile Apps.
Serverless
The name of this model is slightly deceptive, although called serverless, it does not mean that it does not involve running code on servers. Despite all the advancement in technology that is one constant that remains. It does mean however the consumer does not need to worry about the complexity of managing the servers because in this model server management is handled by the cloud service provider.
Serverless is often interchanged with Function as a Service (FaaS).
In this model of cloud computing, the application developer is able to write modular pieces of code which can be executed when certain events happen within the system, such as a user attempting to login.
One of the key benefits of using this model of cloud computing is that the consumer of the service does not need to worry about the complexity of managing these servers. They are also billed for the execution of the function and do not have to pay for the costs of running the servers, this can drastically reduce cloud costs as well as engineering costs.
Examples of these service models are Amazon Lambda, Google Cloud Functions and Azure Serverless, but consumers could leverage a PaaS installation with services like Knative and Apache Whisper on top of Kubernetes to add this capability ‘in-house’.
References:
- Digital Revolution - https://en.wikipedia.org/wiki/Digital_Revolution#2020
- Cloud Computing - https://en.wikipedia.org/wiki/Cloud_computing
CEO and Owner at LVIVITY | Tech Entrepreneur | Experienced guide in your software development journey
1 年Carl, thanks for sharing!
Data & Digital Architect | Consultant
1 年Carl, thanks for sharing!