As for today, we have several options to host our application, the big providers always offer solutions that fit our needs and try to make our lives easier.
In a world where we have a lot of offers, how do we select the right one for our case? With the past of time, we’ve got some experience on this topic and we’ll love to share it with you.
Identify your use case
We should admit the there is a difference between a monolithic application and another one based on microservices, and we are not talking just about performance or specific requirements, we talk about deployment options.
The first thing to consider is the general architecture of our application. If we need something that we can control all the time, maybe a managed service like Heroku is not the best option and we should think in DO or AWS.
On the other hand, if our deploy is simple and we don’t need a high level of customization, Heroku (or any other similar service) is a great way to go. We’ve deployed a lot of apps over this service with awesome results along the last 3 years.
Scalability and future growth
At every moment we have to think in the future and our growth plans. There are some applications that, as part of the strategy, are thought to be born and stay small. For those cases, we should use the minimum-effort law and go for the simplest option.
If our application is going to be complex and we can’t afford the change of hosting in the future, then we could go with a more complex option that provides flexibility and scalability (and for most cases, it’s cheaper).
How much can you invest?
If you go for DO or AWS, then you have to take in count the money that you want to invest and the level of customization desired. It’s not a secret that AWS is basically a monster in terms of features, flexibility, and scalability; but all of that has a price.
If you are in the possibility to pay that price, go for it! If you want to start in a more affordable way, then DO would be a great option for your case.
At the end of the day, the decision should be based on finding a balance between performance, requirements, and expenses. Don’t force yourself to pay for something that you don’t really need or to ignore an advantage offered by a more expensive provider just because it costs a bit more money.