Different types of web hosting

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

For years if not decades, web hosting to me was something that was done through a management console or control panel like Plesk, with files being uploaded through FTP. When I first learned about hosting environments with only ssh access, it felt like a terrible step back. It wasn't: It's just a different paradigm - A completely different way of working and looking at things. And that makes it difficult to comprehend that there are other ways of working possible, if you've only known shared hosting. After all: If the only tool you have is a hammer, everything looks like nail.

Out of curiosity: Let's have an impression of different hosting environments, or types of hosting:

Shared hosting

Shared hosting is the familiar entry-level hosting environment: Your site is run together with maybe hundreds or thousands of sites from the same server, with the same IP address.

Aspect Notes
Configuration management Configurations are done through graphical (web based) management consoles or control panels like Plesk:
  • Limited possibilities. E.g.: You probably can't change DNS entries too much
  • There are several alternatives to Plesk. I also used to see homebrewn solutions, but I haven't seen those for a while. Maybe a sign that the hosting industry is concentrating?
File uploads FTP
Shell access
  • Usually, there is no shell access, altough e.g., TransIP started offering this on shared solutions in 2023
  • Not having shell access, severely limits what you can do within your hosting environment. But for the public to whom shared hosting is targeted, that might actually be a good thing :)
Liability Limited:
  • The IP address(es) are shared. So if one of the other sites on the same server gets flagged for spam, your email gets flagged as well
  • Without shell, you are limited in what you can do
  • Resources are pooled hence not guaranteed in any way
Security Limited:
  • Shared IP address(ess) - See above
  • Authentication usually done through user name & password verification
  • Log-ins possible from anywhere

Managed VPS

Using a managed VPS is probably the next step after shared hosting: You rent a complete and ready-to-use Virtual Private Server (VPS), but you don't manage it. Using a managed VPS can be quite easy, especially if you make use of management consoles as mentioned in the previous chapters. It can also be quite complicated, if you prefer to forego at using a management console.

I have tried out a managed VPS from CloudWays around 2020-2022 (after having extensive experience with self-managed VPSs) and it is not for me: I want to have full control and this was like the worst of various worlds.

Unmanaged VPS

Unmanaged VPS (or Self-Managed VPS): With this type of hosting, he hosting provider typically just ensures that the server is running, and the rest is up to you. This means you're responsible for software installations, updates, security, backups, and all other administrative tasks. It offers more flexibility (as you can configure the server exactly how you want it) but requires a good amount of technical know-how.

How we used to do this at DVB:

  • I used to maintain these myself, but since 2013, we are hiring a system administrator for this - One of the best moves I made this year
  • Private IP addresses
  • Management only through SSH, on a non-standard port.
  • Several additional protocols are supported over ssh. E.g., I can use Nemo (the file explorer for the flavour of Linux that I'm using on my desktop) to access files
  • No FTP
  • Maybe only three open ports: 80 (HTML), 443 (?, SSL), xxx (SSH over non-standard port)
  • Authenthication: PKI over a limited number of IP addresses.

Dedicated (unmanaged) hosting

Dedicated hosting refers to a hosting configuration where an entire server is dedicated to a single client or user, as opposed to shared hosting where multiple clients share the resources of a single server:

  • Exclusive Resources: One of the primary advantages of dedicated hosting is that the client has access to all the server's resources, including CPU, RAM, storage, and bandwidth. This means that the server's performance isn't affected by other users, as is the case with shared hosting
  • Customization and Flexibility: With dedicated hosting, clients have the flexibility to choose the server's hardware specifications, operating system, and other software configurations. This is especially beneficial for businesses with specific requirements that cannot be met by standard shared or VPS hosting configurations
  • Enhanced Security: Dedicated servers are inherently more secure than shared hosting environments. Since there's only one user or organization using the server, the chances of malware or malicious users affecting the server are reduced. Additionally, users can implement custom security protocols and software to further enhance server protection
  • Higher Costs: One of the drawbacks of dedicated hosting is its cost. Since you're renting an entire server, it's generally more expensive than shared or VPS hosting. However, for businesses that require the resources, performance, and customization that a dedicated server offers, the cost is often justifiable
  • Maintenance and Management: Depending on whether you choose a managed or unmanaged dedicated hosting solution, you might be responsible for maintaining the server. This includes updates, security patches, software installations, and other administrative tasks. However, many hosting providers offer managed dedicated hosting services where they handle these tasks for you
  • Reliability: With all resources at your disposal, there's a higher reliability factor. There's no risk of other websites on the same server affecting your website's performance.

In essence, dedicated hosting is best suited for large businesses or websites with high traffic volumes, or those with specific customization and performance requirements that can't be met by shared or VPS hosting.

Cloud hosting

Cloud hosting means that hosting is distributed over multiple servers, either VPSs or dedicated servers. Unfortunately, it's also sometimes used for VPS hosting, but not here.

Examples:

  • We use CloudFlare in front of our sites, so effectively, hosting is distributed, although quite limited
  • CDNs are a (limited) example of this
  • Using load balancers that divert traffic to various servers
  • See the examples below of Tweakers.net and Wikipedia.

Serverless hosting

Serverless hosting, often simply referred to as "serverless," is a cloud computing execution model where the cloud provider automatically manages the infrastructure for application deployment. In a serverless model, developers don't have to be concerned about server provisioning, maintenance, scaling, or runtime environments. Instead, they can focus solely on writing the application code:

  • Event-Driven: Serverless functions are often designed to be event-driven. This means they execute in response to specific events, like HTTP requests, database modifications, file uploads, or even certain scheduled times
  • Automatic Scaling: One of the significant benefits of serverless is its ability to scale automatically. If there's an influx of requests, the cloud provider will handle scaling up the necessary resources to meet the demand. When the traffic subsides, the resources are scaled down
  • No Infrastructure Management: With serverless, developers don't have to worry about the underlying infrastructure. Tasks such as server provisioning, patching, operating system maintenance, and capacity provisioning are abstracted away and managed by the cloud provider
  • Billing Model: In serverless hosting, you are typically billed based on the actual amount of resources consumed by the executions of your functions, not pre-allocated server sizes or uptime. This can result in cost savings because you only pay for what you use
  • Statelessness: Serverless functions are designed to be stateless, meaning they don't retain any internal state between executions. If state management is necessary, external services (like databases or caches) should be utilized
  • Short-Lived Executions: Serverless functions are typically designed for short-lived operations. They are instantiated, run to completion, and then terminate. Long-running tasks might not be suitable for serverless models, depending on the provider's restrictions
  • Popular Providers: Some of the most popular serverless providers include AWS Lambda (by Amazon Web Services), Google Cloud Functions (by Google Cloud Platform), Azure Functions (by Microsoft Azure), and Alibaba Cloud Function Compute
  • Challenges: While serverless offers many benefits, there are challenges to be aware of, including cold starts (latency when initiating a function after a period of inactivity), limitations set by providers (like execution duration or memory usage), and potential increased complexity in monitoring and debugging

It's essential to understand that while the term is "serverless," there are still servers involved. The name signifies that the developers don't need to think about those servers; the management is entirely in the hands of the cloud provider.

Currently (2023.10), I am not a fan of serverless:

  • Vendor lock-in: You can't migrate your stuff from one provider to the other, without building some (most?) stuff anew
  • Since everything is event-driven, there can be a lot of overhead in all the parts talking to another, especially since they might not be on the same physical server or be physically closely located
  • Difficult to manage and control?

SaaS

Saas or Software as a Service doesn't seem to be a type of hosting, but I do think it needs to be mentioned here, as it effectively is a substitute for hosting:

SaaS refers to cloud-based services where software applications are provided over the internet and are often built on top of cloud infrastructure. Users can access these applications directly from a web browser without needing to download or maintain them on their personal devices. Here's how services like Wix or Shopify fit into this context:

  • Web-Based Access: SaaS applications are accessible directly through a web browser. This means users don't need to install software on their individual computers or devices
  • Subscription-Based: Typically, SaaS services follow a subscription model. Users pay a recurring fee to access the service, which often includes updates, support, and hosting costs. This contrasts with traditional software, which might require a one-time purchase and additional fees for upgrades
  • Managed Infrastructure: Users of SaaS platforms don't need to worry about the underlying infrastructure, servers, or even software updates. The SaaS provider handles all of that. For instance, someone using Shopify doesn't need to think about hosting, security patches, or software updates – Shopify takes care of it
  • Customization and Extensions: While SaaS platforms are inherently managed and abstract away much of the technical details, they often offer means for customization. For example, Wix allows for website design customization, and Shopify offers a marketplace of apps to extend the functionality of an online store
  • Scalability: SaaS platforms are designed to handle growth. If an online store on Shopify experiences a surge in traffic, Shopify's infrastructure is designed to scale and handle that increased load. The end user doesn't have to make any adjustments
  • Integrated Updates: SaaS providers regularly update their software to add new features, fix bugs, and improve security. These updates are typically seamless and automatic, ensuring users always have access to the latest features and security patches
  • Data Storage: With SaaS platforms, user data is often stored in the cloud. This offers benefits like automatic backups and the ability to access the service from anywhere with an internet connection
  • Use Case Specific: SaaS solutions are often tailored for specific use cases. Wix is designed for website building, while Shopify is tailored for e-commerce. This contrasts with more generic hosting solutions where users get raw resources and need to set up their applications.

In essence, SaaS platforms like Wix or Shopify simplify the technical aspects of running online platforms, allowing users to focus on content, design, or business operations. They provide a holistic service that includes both the software application and the necessary hosting and infrastructure, all bundled into one offering.

I've never made use of SaaS (for myself)

  • The philosophy of SaaS happens to be the opposite of how I (as an engineer) operate: Probably one of my major selling points for my customers is, the ability to do custom stuff. Like duplicating webshops with 17,000 products in 45 minutes thanks to scripts and automation - That's totally the oppoisite of the limited possibilties that SaaS offers
  • Additonally, the extreme vendor lock-in of SaaS platforms, isn't for me.

I do think Saad could be really suitable as a first step, e.g., in exploring a business. For a customer, I once customised a site using JouwWeb, and I was very impressed.

Colocation

Colocation refers to renting space at a hosting provider to host your own phycial servers. It isn't a form of hosting.

  • For a fellow IT guy, I did some maintenance jobs at a colocation in Amsterdam Watergraafsemeer. He had his own dedicated servers on which he hosted for his customers. I suspect that his customers used managed hosting
  • Tweakers.net and Wikipedia use this: They have a large number of servers that work together to serve pages.
  • Wikipedia uses dedicated cloud hosting. Some years ago I read that all their servers run Ubuntu. Since then, I also only run Ubunty (before, I experimented with CentOS and FreeBSD).

Sources