What is Web hosting?
Understanding web hosting is crucial for software development. Knowledge of web hosting helps developers take their applications from their machines to the internet.
Software development is vast, with many programming languages, frameworks, tools, and design patterns. You can build software applications with a tech stack of your choice and make it work on your machine.
But the rest of the world cannot access it. You can grant public access to your machine for others to access your application, but that is reckless.
Shipping your application to a machine (server) that can be accessed publicly (through the internet) is called web hosting.
This week’s article covers:
Web hosting
Why should you care about hosting?
What are cloud applications?
Types of web hosting
SaaS, PaaS, IaaS, DbaaS, and FaaS
Popular web hosting providers
What is web hosting?
Storing your content, i.e., website, web application, images, or videos, in a server so the internet can access them is called web hosting.
In simple terms, you are hosting your content in another place, instead of your machine, for everyone to access.
Serving your software application on the server can also be referred to as deploying your application.
Hosting a software application may require multiple components, like a server, database, file storage with large memory, etc.
Why should you care about hosting?
Anyone can develop software applications with varying levels of complexity. But it cannot be used if it isn’t hosted for the internet to access.
Instantiating, deploying, and maintaining applications on a remote server is a separate aspect of software engineering called DevOps (Development Operations)
But we cannot hire a DevOps engineer to manage and deploy our side projects.
Developers need to understand the basics of web hosting and how it works, as it is a crucial step in showcasing your software product to the public.
Your software can be a small calculator app, portfolio website, a full-stack social media app, or your startup’s MVP (Minimum Viable Product).
Without understanding how to deploy your content and the tools available, you will be the only user of your software.
What are cloud applications?
If you’re new to software development, the first thing that comes to mind when someone says “cloud application” is an application floating on the cloud, at least, that is what I thought.

Cloud applications are software applications hosted on a set of remote servers, which can be accessed primarily via the internet.
In certain cases, the front-end (client-side) of the application runs separately, and the back-end (server-side) runs separately. They communicate using APIs. Consider mobile and tablet apps as examples of this.
Setting up a server, deploying your code, and maintaining it to serve your application to the internet can be complex.
Some tools specifically handle these complex tasks that we can leverage. These are called Hosting providers.
Hosting and hosting providers are classified into many types depending on the provisions given and the software deployed.
Types of web hosting
A couple of decades ago, there were only a few types of web hosting providers. But technology changed, and now there are a lot more choices.
1) Shared web hosting
Shared web hosting is when the server in which your application is hosted, is shared between multiple applications.
You can choose to rent the server from a hosting provider. The hosting provider will handle the server configurations.
Disadvantages:
If one application in that server takes up too much CPU space or memory, your application will suffer.
Your application will be vulnerable to security issues.
2) Dedicated web hosting
As the name suggests, when you get dedicated hosting for your application, the hosting provider allocates a separate server just for your application.
Dedicated hosting eliminates all the disadvantages of shared hosting. Depending on the hosting provider, the server configuration can either be handled by them or us.
Popular hosting providers
Most of the hosting providers listed below provide shared and dedicated hosting.
Cloud hosting providers
Cloud hosting providers have data centers across the globe. Data centers are a large group of computer servers inter-connected to serve applications with remote storage, processing, and distribution of large amounts of data.
Most of the provisions given by cloud hosting providers are virtual. Even the hardware rented from them can be managed and configured with software.
Most popular cloud providers are worldwide. This enables the users to access applications from the server nearest to them with very low latency. This is one of the main reasons developers choose to host their applications on the cloud.
Cloud computing “as-a-service”
There are multiple types of cloud provisions provided as a service for developers to utilise.
1) SaaS (Software-as-a-Service)
Software-as-a-service is delivering software for users over the internet. Users of this software need not worry about installation or deploying the application.
These are cloud-hosted, and they can be readily used.
Popular examples
Gmail (Mail software)
Dropbox (Software providing cloud storage)
Salesforce (CRM software)
2) IaaS (Infrastructure-as-a-service)
Some cloud providers deliver infrastructure over the internet. Users need not worry about physically setting up the servers.
The memory, CPU, storage, and network are virtualized and highly scalable.
In simple terms, these hosting providers let us use their computers to host our applications. We can configure the number of CPUs, memory, and storage that our applications need using a software, and it will be provided by them accordingly.
Popular examples
AWS (Amazon Web Services) - Most widely used IaaS in the world.
GCP (Google Cloud Platform)
Microsoft Azure
3) PaaS (Platform-as-a-service)
With Platform-as-a-service, a cloud provider gives a framework for the developers to work with and deploy their applications.
We need not worry about setting up and configuring servers or virtual machines like with IaaS. We can concentrate on developing the application and deploying it to the PaaS of our choice. PaaS takes care of the rest.
There might be certain programmatic limitations depending on the service we are trying to use.
Popular examples
Heroku - We can easily host application build with Node.js, Java, Scala, Go on Heroku.
Google App Engine
4) DbaaS (Database-as-a-service)
With DbaaS, the cloud provider delivers the database infrastructure over the internet that we can use.
The cloud provider manages the following:
Initialization
DB configuration
Backups
Performance optimizations
Disaster recovery
We, as developers, can directly use these virtually-delivered databases for our applications.
Popular examples
MongoDB Atlas - Popular MongoDB provider
Amazon DynamoDB - Amazon’s highly scalable NoSQL DB
Amazon Aurora - Amazon’s relational DB with compatibility for MySQL and PostgreSQL.
5) FaaS (Functions-as-a-service)
With FaaS, we need not worry about physical hardware, operating systems, or web software. We write functions to return our desired computational results on a runtime of our choice. This function will be executed on demand.
In simple terms, we write functions and host them with FaaS provider. We can execute these functions on demand. This does not require an entire software to be deployed or server configuration.
Popular examples
Amazon Lambda - Most popular FaaS provider in the world.
Google Cloud functions - Google’s FaaS provider.

I hope this article gave you a clear idea about web hosting and the types of hosting providers.
Sources:
Once our application is hosted on a server, we need to access that application using the internet. We access cloud applications daily using the domain names.
How do we get a domain name for our application? How does the browser know which application to load based on the domain name?
Next week, we’ll discuss DNS, purchasing domain names, and how an application loads when we type the URL into the browser.
Until next time!