Filter by category
One of the most important questions that comes up each time we talk about websites and web apps is where to host? Finding the right answer is crucial, since the type of hosting you end up choosing will define the availability and performance of your project for the end user.
In this article, we’ll review four of the most popular types of hosting for both websites and web apps to help you find the best solution for your project.
The shared hosting solution is undoubtedly the cheapest and easiest way to host a website. The reason it’s referred to as ‘shared’ hosting is that the hosting account is on the same server with many other accounts, and the resources (CPU, RAM) are also shared. This type of hosting is a great choice if you plan to set up a simple, low-traffic website.
A website that relies on shared hosting is usually managed via cPanel, a very popular control panel that enables you to configure everything easily from a web interface. This software integrates everything from FTP uploads, firewalls, backups, DNS management, and one-click WordPress installs, to email management and many other tools that are all just one click away.
Even though the deployment process is usually made via FTP by manually uploading the files, it can be automated with the help of a versioning system and a CI/CD solution that allows you to upload files via FTP.
A Virtual Private Server (VPS) is great as it gives the owner total access to their server account, allowing them to make any configuration possible via SSH access. As opposed to shared hosting, which offers no guarantee on the resources you’ll get, a VPS will grant you access to dedicated resources, such as CPU and RAM, that you can also configure depending on the type of VPS you purchase.
The VPS server is the perfect solution for websites or web apps that require more resources or more control than the shared type of hosting can offer.
Although the server management can be accessed easily via the command line (a default setting), you might need advanced skills in order to properly configure a fully functional website. Luckily, cPanel can be installed on this type of server as well, but there is a downside to it – besides the VPS, you must also purchase a cPanel license, and truth be told, cPanel will end up eating up some of the server’s resources.
The deployment method will depend on how the VPS is configured, but usually, an external CI/CD solution is implemented. The CI/CD tool works with a version control system repository (like Git) and automates the upload of files on the server.
Probably the most popular hosting solution for custom web apps is cloud hosting. It’s actually similar to a simple VPS, only more scalable.
Here are just some of its key advantages:
The server is not tied to a single location, which means the location can be configured;
You have the possibility to set up an internal network across multiple machines, which will make the communication between them secure;
Turning on and shutting down machines is a configurable action, which can be performed from a web interface or a CLI;
The machines have configurable operating systems, with distributions and versions;
These machines are usually accessed only via the command line and, in order to properly use them, a CI/CD solution is required. The CI/CD solution will take the code from a versioning system, make the build process, and upload the files to the configured machine. During this process of deploying, a cloud hosting solution will allow the deployment to be made on a new machine or on multiple machines. This automation requires additional configuration between the codebase and the server, but it reduces the number of issues that might arise from having just a single, manually configured, machine.
There are three giant providers of cloud hosting: Amazon Web Services, Google Cloud Platform, and Microsoft Azure. Apart from cloud hosting servers, all these providers offer a wide range of services, which is why most companies turn to them when dealing with complex web app projects.
There are also a number of options available for smaller projects. Although they require a less complicated setup, they offer you the same benefits. One of these options is DigitalOcean, a recommended choice for small to middle web apps that need both the configurability of cloud hosting and the agility of VPS hosting.
The setup and management of cloud hosting machines requires advanced skills, thorough knowledge of the platform you’ll use, and a generous amount of time dedicated to making sure that the configuration works properly. All these requirements are really too much for smaller projects, which are either just starting up, or don’t need overly complicated configurations.
The managed hosting solution was created specifically for this niche. The advantages of this type of hosting are that the setup is easy, the configuration is done via a web interface, and the server management is out of the box.
The deployment process is also very simple since it’s linked to a versioning system and it can be configured to automatically deploy at each code push. With managed hosting, the need for a CI/CD tool is reduced, which drastically simplifies the deployment process. On the other hand, accessing the machine via SSH has its limitations - fewer operations can be executed manually.
There aren’t that many providers, but the ones that stand out are Heroku, DigitalOcean App Platform, and AWS Elastic Beanstalk. For static web apps that are frontend-only and work with various external API services, there are also some great solutions out there: Netlify, Vercel, Firebase Hosting.
So, which of the above hosting solutions would work best for your project? Hard call, since there are so many factors you should take into consideration. Hopefully, you’ll come to the right decision once you get a clearer picture of what each type of hosting has to offer. To make things easier, here’s a short list of the main aspects you should consider before deciding where to host:
One hundred users or one thousand users per day? That’s a big difference, so if you’re aiming for a large number of users, keep in mind that the server must have enough resources to accommodate all of them;
The location of your users will actually determine the loading time of your website or web app. So, ideally, the hosting should be located in the same country as your users;
Depending on your users’ growth rate estimate, one hosting solution could prove to be a more inspired choice than any other solution. It’s best to be aware of this from the very beginning, otherwise you’ll have no choice but to migrate your project to another server sooner or later;
Last but not least, pricing is important. Each project has a budget and cost estimations may influence your decisions in one way or another.
If you’re having trouble choosing the right type of hosting for your next project or just want to take a deeper dive into the topic, do let us know. We’re just one click away and eager to help.