Understanding Cloud Computing Services and Deployment Models
This is long overdue. Keeping up with a blog and life is hard LOL. And the new Animal Crossing game dropped and so did the rest of my responsibilities lmao. Anywho..let's jump into the topic: Understanding the different cloud computing services categories and cloud deployment models.
I am sure you may have heard the terms Iaas, PaaS, SaaS or Private vs Public vs Hybrid Cloud somewhere on the internets. Cloud computing is gaining in popularity and these terms are key to understanding how to use cloud based services. Need a recap on understanding what cloud computing is and why organizations are moving there? Read the quick guide I did here.
As a quick recap: Cloud computing is an umbrella term that involves delivering hosted services over the internet. These hosted services are divided into 3 categories:
Iaas (Infrastructure as a Service)
PaaS (Platform as a Service)
SaaS (Software as a service)
These services can be deployed in a variety of cloud environments:
Private cloud: a network or data center that supplies their hosted services to a limited number of organizations with restricted access and permissions.
Public Cloud: a third party cloud service provider that sells their hosted services to anyone on the internet.
Hybrid Cloud: a cloud environment that uses both the private and public cloud deployment. With this option most organizations typically have their services integrated with one another.
Multi-Cloud: a strategy in which an organization may be combining all of the previous deployments. For example, an organization might have multiple public and private clouds or multiple hybrid clouds. They may be stand alone or connected.
Cloud Deployment Models
So now that you know that there is a public or a private cloud, naturally you are wondering their differences right? I got you.
Also known as a single-tenant environments, private cloud deployment models are stricter than public clouds as the resources provided are not shared with other users. These resources can be located on-premise for an organization, taking advantage of the infrastructure already present, or through a third-party organization. Organizations typically choose the private cloud deployment model when they need the control and security common to data centers with the benefits and versatility offered from the cloud. Example of this would be RedHat Cloud and VMWare.
This is the most popular model and is when a third-party cloud service provider delivers their services over the internet. Think GCP, AWS, Azure, Alibaba. They utilize the on-demand model, which appeals to businesses as there are no long-term commitments and you only pay for the resources you utilize. It's the most flexible options as it reduces the need for organizations to invest and maintain their own data center and resources. With this flexibility comes the loss of control and can be explained via the shared responsibility model (which we will get into next article).
Sometimes gets confused with multi-cloud but the main difference to understand that a hybrid cloud is a combination of public and private cloud services with orchestration between the two environments. For example, an organization may want to keep their sensitive data in-house and host it in a private cloud but everything else can be hosted in a public cloud. Having orchestration and proper architecture setup in the beginning for this kind of model is KEY in order to achieve a unified environment. When done right, your two environments become seamless thanks to automation and scaling capabilities.
The main takeaway with this deployment model vs hybrid is the fact that this involves multiple cloud environments (two or more). To paint a picture think an organization has multiple IaaS environments: one in AWS and one in Azure. So they have two cloud environments, whereas in hybrid an organization might only have one cloud provider and an on-premise data center.
Cloud Computing Services
Now that we understand how the cloud can be deployed and the differences between each model, now we can understand the different categories of services offered within each model.
Infrastructure as a Service aka IaaS (pronounced eye-as)
A self-service model for organizations to access, monitor and manage remote datacenter infrastructure services. In more friendly terms, this options gives you the abilities and controls you would have in an on-premise data center but without taking care of the foundational security structures such as physical security (guards, cameras, utilities, an actual data center). It is important to note that organizations are still in charge of compute components such as the OS, storage, networking, firewalls and such. Examples of this would be Amazon Web Services, Microsoft Azure and Google Compute Engine. A use case as to why an organization might choose this option is if they need to extend their current on-premise data center infrastructure to handle an upcoming holiday sale that will have a spike in traffic. It would take them a lot of time and money to increase their current physical infrastructure, so utilizing a third-party IaaS service will help them manage this traffic and tear it down once the holidays are over
Platform as a Service (pronounced pazz)
A service model where a third-party provider hosts application development tools and platforms to make available to customers over the internet. It is the option for those looking for general software development and hosting services, so that they can focus on creating and running applications rather than the underlying infrastructure. This option has less control than the previous one, as most of the underlying infrastructure and control given in IaaS is hidden within this option. Which is a good thing for teams that just need to build an application quickly to market and that's it. Examples of this would be AWS Elastic Beanstalk, Google App Engine and Azure and again, common use cases for this option is the fact that it increased developer productivity while decreasing an application's time-t-market.
Software as a Service aka SaaS (pronounced sass)
The most popular service model, this option is when a third-party service provider hosts applications and makes them available over the internet. This is the least flexible option for control as this just provides an organization with the service and no access to the underlying infrastructure. The source code is the same for all customers using the services and everyone gets the same kind of application. You typically access this using your browser and typically doesn't require any additional downloaded tools. It is super easy to user and deliver, hence the popularity. Examples of this service include Google Docs, Salesforce, Microsoft Office 365 and its use case and appeal that it completely replaces the need to have devices for each type of application you want to use.