Publicaciones

I have my product, so what's next?

 – #Deployment

I have my product, so what's next?

This is a question that is repeated among developers once they finish an application that has to be deployed. There are too many options out there and it’s not always trivial to find the best alternative that fits perfectly with the application you developed. Consequently, in this article I will try to go through my short but intense personal experience while developing and deploying applications of all kind. Hopefully by the end of this article you get the basics on how to decide whether to choose one cloud service provider among others and more importantly understand the power of self-hosting which is probably my favourite option.

Before anything else, I told myself not to talk too much about quantitative aspects, since I’m not pretending to cover in depth technical features between the different cloud service providers, but I feel like it’s necessary to provide some information in order to have a general overview and give my honest opinion based on reliable facts.

Starting from the origins, my first application that had a minimum of complexity to be deployed was a reservation manager for a sports center, nothing too sophisticated, but it had a reason why it should be deployed, so that other people could use it. At that time, the first option that came up to my mind was Heroku where I eventually ended up hosting the application, since it was easy to use and as it was a platform as a service (PaaS), which it did not require extra knowledge to be able to host the product.

From then on, I discovered one of the downsides that Heroku’s free tier has, which was the fact that the application went to sleep after 30 minutes of inactivity and needed between 5 or 10 seconds to be available again afterwards. Despite the inconvenience, I decided to create a background task whose functionality was to keep the application available. After solving the small mishap, I run into another issue related to the number of hours per month that my site was available (540), so I look into the cheapest plan that could fulfil my needs and it turned out that it was quite expensive compared to what other cloud service providers offered. Basically, what I learnt after using Heroku was that it is great for deploying smaller applications, but when it comes to a large and scalable application, there are better value for money options.

Aside from Heroku, I have recently used AWS and Google Cloud which offer a free service for one year. From my personal point of view, the downside with these 2 technological multinationals is that you have the opportunity to configure a wide variety of parameters, which makes it practically a profession to operate easily within the platform. In addition to providing the ability to highly customise your application, the main objective that lies behind this approach is to depend on them once the free trial period is over, since it takes a long time to have everything properly configured compared to other alternatives, which means that by not having to reconfigure your project to work with another provider, you are prompted to resort to the paid version in order to continue receiving its benefits.

Besides Heroku, AWS and Google Cloud, I use Digital Ocean which is a great platform that offers an infrastructure as a service approach (IaaS), which means that you need to know the technologies you want to use for the deployment. It's not like in Heroku where you upload your project and it takes care of everything to have your project up and running. In Digital Ocean, you have to customise your server from scratch, meaning that you have to pick your operating system, install your database and so on.

On the other hand, I think that self-hosting is the best way to host the projects you create, since after having created and deployed a few, no one knows better than yourself what are the requirements of a project that you have created.

As you may know, I can’t cover all the myriad alternatives that are available for hosting, otherwise this post would be endless, but there is loads of information and tutorials available on the official websites of each and every cloud service provider that It is definitely worth to check out to know the prices and the compatibility they offer in order to choose one among the others depending on the needs of your project.

To sum up, I’d like to reflect on the often-used concept of free hosting. While most cloud service providers do offer a free tier suitable for small-scale projects, these plans typically lack the resources needed to deploy larger applications or are limited to a trial period — after which continued use requires a paid subscription. Therefore, I highly recommend not only hosting your own projects when possible, but also exploring various cloud providers such as those mentioned above, along with others like Oracle Cloud, Microsoft Azure, and IBM Cloud.