Several years ago, companies had to set up their own data centers with all the equipment needed to get their software into the hands of their customers.
Smaller websites used web hosting services or even shared-hosting solutions.
Things are different now.
Today, you can create ten remote servers equipped with 16GB of RAM, 4 CPUs, 250 GB SSD, located in New York with just a few clicks.
This is cloud computing or simply the cloud.
Cloud computing is the on-demand delivery of computing power and data storage solutions over the Internet, so you won’t have to deal with purchasing, housing, operating, and maintaining IT equipment on the premises.
Major cloud providers in the market are:
- Amazon Web Services (AWS)
- Google Cloud Platform (GCP),
- Microsoft Azure
- IBM Cloud
- Digital Ocean
Cloud providers offer their services in the following forms:
- Infrastructure as a Service (IaaS)
- Platform as a Service (PaaS)
- Software as a Service (SaaS)
- Serverless Solutions
Infrastructure as a Service (IaaS)
IaaS is a cloud computing model that provides on-demand computing, networking, and data storage solutions over the Internet.
IaaS providers run large data centers across the globe to provide users with the infrastructure they need to run their applications without having to deal with any hardware and networking equipment.
In most cases, users do not interact directly with the physical infrastructure.
Instead, the service is provided to them virtually via visual or CLI interfaces and APIs.
You access the cloud provider’s UI and create a remote server with just a few clicks of a mouse.
And you have a remote server.
And anytime you don’t need them, you turn them off (remotely), so you have to pay for idle capacity.
Additionally, you can load-balance or scale your infrastructure if you need more power – automatically (Auto Scaling) or with supervision.
The billing in the IaaS model is usually pay-as-you-go.
This billing model helps companies significantly reduce up-front infrastructure-related costs.
Platform as a Service (PaaS)
PaaS is another cloud computing model similar to IaaS but with a higher level of abstraction.
But what does it mean?
Here’s an explanation.
Unlike IaaS, which provides raw computing resources, the PaaS model provides you with an operational software stack. Every software you need to run your app is already available to you, and you only do the configuration.
PaaS provides databases, runtime environments, and even code libraries out of the box; however, you won’t have control over the underlying infrastructure as you would in the IaaS model.
PaaS enables your team to build, test, and deploy applications quicker than ever, with the ability to scale up and down based on market demands.
Software as a Service (SaaS)
A SaaS product is a web-based application you can use online with a monthly/yearly subscription (usually on a per-user basis).
Examples are CRM systems, HR tools, project management systems, design tools, or even email services, such as Google Workspace.
A SaaS service may look like an expensive option at first. However, in the long run, it might significantly minimize the team’s development and maintenance costs.
With a SaaS solution, you can start right away without having to wait for your in-house solution to be implemented and deployed.
Before developing an in-house product for internal use, it’s better to
check if there’s a ready-to-use solution at a reasonable cost.
Serverless architecture is a way to develop, deploy, and run applications without maintaining any hardware or software stack.
FaaS (function-as-a-service) is a widely-used form of serverless architecture.
In the FaaS model, you develop your features as multiple independent functions.
You deploy these functions to autonomous event-triggered containers on the cloud platform.
These event-triggered containers call your functions upon certain events, like when a user visits a particular URL or signs up to your website.
You can even configure the functions to run periodically, like every 5 minutes!
Although PaaS and Serverless have many similarities, there are differences in the way you develop and deploy your applications.
In the PaaS approach, your application runs on a traditional web application stack, including an OS, a webserver, a language runtime environment (like Node.js), and a database, to name a few.
PaaS treats your application as a single unit, meaning the scaling and billing are done on the application level, no matter what parts of your app do the heavy lifting.
However, in the serverless approach, particularly FaaS, you can scale your application functions individually based on the call frequency (how often they get called).
You’ll be billed only for the number of times your functions get called and won’t pay for any idle capacity.
Serverless is suitable for cases that require a few functions, like an API with a few endpoints.
The most popular implementation of FaaS is AWS Lambda, Azure Functions, and Google Cloud Functions.
Development teams usually use a mix of all these cloud models in their projects.
If you read this far, you can tweet to the author to show them you care. Tweet a Thanks
Never miss a guide like this!
Join the DWD mailing list for your weekly dose of knowledge! This mailing list is for doers and thinkers. If you're a curious person, you might find it useful, just as 2,000 other devs do!
Disclaimer: This post might contain affiliate links. I might receive a commission if a purchase is made. However, it doesn’t change the cost you’ll pay.