Technology for humans

The blog space of The Liberated Edge


Self hosting on The Edge

An introduction to hosting vs. self hosting and The Liberated Edge

This article provides an introduction to the concept of self hosting on The Edge. It also briefly touches upon third party hosting. Practical guidance and synthetic examples are presented, so that everyone can determine the right hosting model for them.

Hosting - definition

All technical steps that need to be done in order to deploy, operate and maintain a website, an application or a service that is addressable and accessible to users on the Internet through a variety of protocols in the Application layer of the OSI model, i.e. HTTP, FTP, SMTP, SSH, etc. For simplicity we will refer to the plethora of useful things that can be deployed as “application”.

The aforementioned technical steps widely vary depending on the specific hosting model. The list below enumerates the one which are most common.

  1. Deployment of the application to a host/platform that’s accessible to the Internet through a static IP address.
  2. Configure the deployed application.
  3. Make an A-record with your domain registrar for the running application, i.e. bind a domain name with the host and port of the running application.

Types of hosting

There is a very large number of hosting options. On a principle level we can distinguish between third party and self hosting.

Third party hosting

This is by far the most common and widely adopted approach for hosting applications. It relies on transporting an executable version of an application to a runtime environment supplied and belonging to a third party and running it there. The level of automation varies but there are hosting providers known for the high degree of automation that they support their users with.

The runtime environments vary, e.g. fully hosted blogging platforms, virtual hosts in a shared web server, a public cloud, etc.

Self hosting

This is the process of building infrastructure and hosting an application on bare metal in a private data center.

If self hosting is something you’d like to try out, a few questions need to be answered at first.

  1. When is self hosting appropriate?
  2. How does a private data center look like and what’s needed to build one?
  3. Which applications can be self hosted?
  4. How are self hosted applications exposed on the Internet - addressable and accessible?
  5. How to operate and maintain self hosted applications?

Let’s address them one by one.

Self hosting vs. Third party hosting

When is self hosting appropriate? When would it be better to rely on third party hosting?

As of today self hosting is more time consuming and more effort to set up, operate, and maintain.

Application throughput

The throughput of an application that’s self hosted can be way lower compared to the throughput of the same application running on an arbitrary public cloud.

Security

In many cases self hosted applications could be more prone to security vulnerabilities compared to the applications running on public clouds. Professional data centers have many layers of security that cannot easily be achieved in-house.

Reliability

Reliability of applications running on managed third party platforms is usually higher than when self hosted. This is actually one of the selling points of such platforms.

Application operations and maintenance

Operating and maintaining self hosted solutions is usually more manual effort due to the usual lack of reliable monitoring and alerting infrastructure, which is common to many third party hosting solutions.

Data privacy and ownership

Data privacy and ownership is higher with self hosted applications. Third party hosting relies on storing application/user and analytics data, logs, etc. on the premises of third parties. A priori, there is risk that this data will be used in ways that were not agreed with application owners and/or the users of the application.

When should self hosting be used?

Commercial and business hosting

If commercial success would be a key goal, self hosting may be impractical unless there would be some tricky use cases to implement, e.g. a real device cloud where any number of smartphones and tablets are connected to (often custom) equipment and management servers. In the rest of the cases, third party hosting may be a more affordable solution with better time to value.

Self hosting can quickly become overwhelming in a business setting. However, it is also true that sophisticated infrastructure and automation could also be implemented with self hosting as well. Blazing fast and fail over connections to the Internet can be arranged for. It’s mostly a matter of serious investment for equipment and the right engineers to maintain and evolve a self hosted application.

Non-commercial hosting

Whether you’d like to have trusted means of communication with your close ones or you’d like to be able to collaborate with specific communities, self hosting may turn out to be an useful alternative The quality attributes related to self hosted applications that we mentioned earlier are not that relevant to individuals and small communities.

Engineers usually debate about such characteristics of software when they have significant traffic and strict availability requirements. For example, imagine that an e-commerce marketplace that makes X money units per minute is not available for 15 min. This means that the outage would cost to the owning organization 15 money units and this is without factoring in any reputation hits.

On the other hand, if the this website goes down for an hour that wouldn’t cause any monetary loss or ruin a brand. In the worst case scenario this would cause some inconvenience and it may take some time until the website would be up and running. It may also require effort, but it wouldn’t be the end of the world.

As traffic-heavy applications are more visible from attackers’ perspective, they get attacked more frequently than some random self hosted applications used by small communities or even individuals. That doesn’t mean that self hosted application shall not be hardened. Self hosted applications used for non-commercial purposes seem to be not so attractive, easy to discover, and profitable from attackers’ perspective.

Thus, self hosting could be an alternative to third party hosting for non-commercial projects with small user communities, when data ownership and data security are priorities.

Challenges with non-commercial self hosting

What does it take to start with self hosting? One needs to gain specific technical knowledge and come up with good answers for the remaining questions from the list above, namely:

  • How could a private data center for non-commercial use look like?
  • How to build one?
  • What applications can be deployed and run there?
  • How to publish an application and expose it to the Internet?
  • How to operate, and maintain self hosted applications?

Even then different approaches of engineers are likely to be going in all directions and hard to standardize. In this way, engineers who self host are naturally constrained by the number of applications that they can operate and maintain. And there are many things that can go South.

The Liberated Edge

For self hosting to work well, one has to be able build out private data centers and run, operate, and maintain applications. This is all dependent on specific technical knowledge and experience that’s hard and time consuming to gain. Getting started can be quite overwhelming, when there is no detailed and well structured guidance.

History

This was the train of thoughts occupying my mind at some time in 2020, when I realized, recognized, and acknowledged the serious threat to human freedom that freemium commercial services introduced. Thus, I got excited by the mere idea that one could still own their data and benefit from software and workflows independent of the large Tech companies out there, at least in private life.

This is also how I came up with the idea of founding The Liberated Edge - the first open knowledge repository that aims at answering all of the aforementioned questions above based on real world experience.

Ever since I have been playing with different self hosted applications and writing the guides that can be found on The Liberated Edge. Self hosted applications have been instrumental in my private workflows. As mentioned earlier this website, The Liberated Edge, and all other applications that are used internally for the sake of the project are self hosted. We eat our own dog food and drink Champagne.

Mission and vision

Our mission is to cultivate knowledge about self hosting, curate it, capture it, preserve it, extend it, and share it. The ultimate goal is to equip everyone with the knowledge and tools to easily self host applications and re-gain their digital freedom inch by inch.

This will not happen over night and will require also tooling for setting up, operating, monitoring and maintaining of infrastructure and self hosted infrastructure. There is a crystal clear vision how we will evolve and get there - step by step. Keep in mind that our resources are quite limited right now, so every step costs.

Wrap up

  1. Third party hosting is usually more suitable for commercial applications unless specific use cases would require such an approach towards hosting.
  2. Self hosting can be very useful for non-commercial purposes, when data ownership and data privacy are strong concerns.
  3. Self hosting is a bit of a green field. There are many applications that can be self hosted, however standards and guidance how to do that are often lacking/not thorough enough.
  4. The Liberated Edge aims at bridging the gaps that make it challenging for human beings to self host by sharing coherent and reliable knowledge as well as tools for self hosting.