In the 80s, web servers were primarily used to host websites that consisted of static pages, built with HTML, CSS and a little JavaScript. You would rarely find any software or business application hosted on the Internet then. Complex applications were built for standalone desktops and had to be delivered in CDs for people to install on their own computers. Over time things have changed. With the induction of newer technologies and platforms, better security on the web, and faster connection lines, the web service world has seen a sea change. Now, nearly any software or business application that you can think of can run on a web server and deliver its functionalities directly in a web browser.
Therefore, it is not uncommon today to see numerous e-commerce systems, complex software delivered as a service (SaaS), ERP systems, gaming software, banking systems, and so on, all hosted on web servers. To efficiently and optimally cater to the different requirements of different types of web applications, hosting companies developed a wide variety of hosting environments.
There are many different types of hosting environments available on the market today. These are broadly classified into four categories: shared hosting, semi- or fully dedicated, scalable cloud, and function-focused. It's important that you choose the right hosting type for your website or web application.
Your choice will depend on how much of computing resources (CPU, RAM, storage & bandwidth) your website system requires - to cater to the expected number of users at an acceptable speed during normal load conditions. Also, how important is it to quickly scale up the resources during peak load, and whether you require 100% availability or can afford a few hours of downtime once in a while.
These factors help determine which hosting type you should opt for. Your selection will have an impact on the expense you incur in running your website.
For non-techies, it can be a daunting task to figure out which type of hosting environment is most suitable for their website system so that they are able to run their website system at an optimal cost without compromise.
In this article I will briefly touch upon each hosting type so as to give you a quick overview. More details can be read by following the connected linked article where I have explained each hosting type in great detail along with its pros & cons. Once you understand the specifics of each hosting type and what it entails, you will be in a better position to decide what is suitable for your particular kind of website or web application.
In a shared hosting environment, the web server is set up to allow hundreds of sites from different users to be hosted on the same physical computer hardware. They all share a common pool of computing resources, viz. CPU, RAM, and storage space. Each website is logically separated from the others via software and security systems so that a user of one site cannot access the logical space of another user. Restrictions are imposed so that each hosted site gets its fair share of the resources and no one site completely hogs the CPU or RAM. Limited access is given to the users via an easy-to-use control panel to enable them to host and manage their website(s).
Shared hosting is quite suited for personal websites and websites of small businesses who need a web presence and do not see much traffic to their website. It is the most affordable hosting option.
Free Hosting: Some hosting providers provide a starting point for beginners to host their website for free. They may even provide you with a domain name of the form yourChoiceName.theirName.com. Examples of such free hosts include TheUltrahost, HyperPHP, Freehostia, and InfinityFree. Free hosting is suitable only for students who are trying out the web world or for hobbyists who do not wish to spend money on a professional hosting service.
Paid Shared Hosting - single domain or multi-domain: This is the most popular and common type of hosting that most website owners opt for. Plans are also available where you can host multiple websites in a single plan. It is quite suitable for personal websites and also for business websites of small and medium sizes. As server and network resources are shared by multiple users, the cost per user is lower, and hence you can get a paid shared hosting plan at a very affordable price - making it a viable proposition for most websites that have fairly standardized software and hardware requirements commonly provided for on a shared server.
Reseller Hosting: Here, the hosting company sells bulk space with suitable software such as WHM and cPanel that help split the bulk space into multiple small-sized plans and resell them to end users. This type of hosting is quite suited for website developers who own multiple websites of their own and also sell small hosting spaces.
These are dedicated environments where you get a fixed share of server resources which are always available for your websites. You are allowed root access that enables you to install any specific software needed for your web application and that the hosting company does not provide in their standard configuration. You can even install multiple websites on the same host.
Semi-Dedicated: Also known as VPS (virtual private server), here the hosting company implements server virtualization to logically divide a single server into multiple small-sized servers, with each server allocated a specified quantum of exclusively reserved CPU & RAM. This plan is quite suitable for database-driven websites that see a decent amount of traffic (1000-5000 visitors per day). It is also quite suitable for hosting e-commerce websites, erp systems and other business applications for small to medium-sized businesses, where 25-50 users can be simultaneously logged in. With proper caching techniques, on a VPS, you can even host websites that have high traffic - as high as 50,000 visitors per day.
Fully Dedicated: Here a complete server is dedicated to you. You select the type of server hardware, the operating system and the CPU & RAM capacities as per your need. You get full root access to your server so that you can install whatever software you need to, and carry out all administrative tasks. However, it requires server administration skills to porperly utilize a dedicated server. This type of hosting can be quite useful for very large websites with huge traffic or for complex web applications where 200-300 users are logged in at the same time.
Co-location Service: Suitable for very large companies, especially banks & financial institutions, this environment is usually provided by data centers directly to end customers. A data center will allow your company to host a set of servers that you own. They will do the full installation task, provide the required network connectivity, and also maintain the hardware if you so desire. Your servers are housed in a lockable space, if you so desire, for security reasons. This is a very expensive deployment but well suited for large companies who require mission critical servers to be hosted on the web.
A scalable environment enables you to set up a set of servers for running very large website systems. The deployment separates code and data and places them on separate servers. Depending upon the processing load, severs that run the code can scale up and down, and depending upon the disk read-write volume, the hardware that stores data can scale up and down. Further, servers can be replicated in multiple data centers (multiple geographic availability zones) so that if one data center goes down, another one takes over. This type of deployment is required for very large and very popular websites such as Amazon store, Facebook, Stock exchanges, and the likes.
Cloud Hosting: This is the most popular form of scalable architecture. Companies such as Amazon (AWS), Google and Microsoft (Azure) are the major players in this segment and provide high quality cloud service that are billed as per use, i.e., you pay for the quantum of resources you deploy and use.
Hosting Cluster: A Hosting Cluster is a group of servers that are connected and set up in a manner so as to appear as a single powerful server. This architecture provides failure protection for any of the individual servers in the group by sharing the workload.
Hosting Mirror: Also known as mirror sites, this environment essentially replicates and serves website content from multiple data centers spread across multiple geographic locations with the objective to distribute load and provide a better experience to website visitors by serving them from a mirror in close proximity. This is quite suitable for very popular websites that see millions of visitors per day.
This hosting classification entails servers that are specially customized to carry out very specific functions efficiently. These types of servers are accordingly termed as - file server, database server, multimedia server, gaming server, backup server, email server, DNS server, and so on.
While on the subject, it is imperative to mention some of the other hosting types that have emerged recently and are gaining popularity:
Wordpress Hosting: Due to the immense popularity of wordpress, hosting companies have started providing special plans which are configured exclusively to run a Wordpress website.
Green Hosting: The concern for the environment has led to the emergence of green hosting. Data centers that provide green hosting infrastructure implement eco-friendly measures to reduce their carbon footprint. It may be noted that hosting data centers consume a lot of energy. Although green hosting is expensive compared to their non-green equivalent, if you are concerned about the environment, you can look out for hosting companies that provide green hosting services.
Web Hosting Selection Criteria
What is a Web Hosting Service?
Your guide to buying a hosting plan
How to decide between Linux Hosting and Windows Hosting - Which hosting server to opt for?
How to move your Email accounts from one hosting provider to another without losing any mails?
How to resolve the issue of receiving same email message multiple times when using Outlook?
Self Referential Data Structure in C - create a singly linked list
Mosquito Demystified - interesting facts about mosquitoes
Elements of the C Language - Identifiers, Keywords, Data types and Data objects
How to pass Structure as a parameter to a function in C?
Rajeev Kumar is the primary author of How2Lab. He is a B.Tech. from IIT Kanpur with several years of experience in IT education and Software development. He has taught a wide spectrum of people including fresh young talents, students of premier engineering colleges & management institutes, and IT professionals.
Rajeev has founded Computer Solutions & Web Services Worldwide. He has hands-on experience of building variety of websites and business applications, that include - SaaS based erp & e-commerce systems, and cloud deployed operations management software for health-care, manufacturing and other industries.