The 5 main reasons why startups leave Heroku for AWS
Heroku is a cloud-based platform that helps companies build, deliver, monitor, and scale applications with high velocity. Heroku's popularity is due to its simplicity, usability, elegance, and focus on the developer experience. Developers find Heroku helpful as they can get their application ready and running with only minimal focus on configuring infrastructure. Heroku scores on easiness in architecting apps, deploying them to flexible cloud infrastructure, and scaling them as required. However, startups and a few organizations are seeking to move away from Heroku for AWS in recent times.
In this article, you will learn why hundreds of CTOs and developers from growing startups have decided to move out of Heroku for AWS.
Romaric PhilogèneDecember 13, 2021 · 4 min read
When startups grow, they all seek better control and ownership of their infrastructure, whether the servers we use or cloud hosting for our apps. Deploying apps on Heroku doesn't give you ownership and control of the infrastructure, and Heroku owns it, and users get access to it.
Smaller dynos in Heroku get deployed onto multi-tenant shared servers. In this case, due to security reasons, Heroku has to restrict access to the server. Moreover, you do not choose where your servers get deployed. All these add to an environment that lacks transparency.
You can set up a database in Heroku easily using Heroku Postgres, a robust database as a service based on PostgreSQL. However, while running the database in production needs more attention. With the growth in applications and data, performance bottlenecks in your database rise. You may have slow-running queries or views that run more queries etc. which may slow down the application. Fixing database issues and optimizing them requires a lot of fine-tuning and more control that is lacking in Heroku offerings. AWS gives more power to their user to fine-tune their database. E.g. on AWS RDS (Managed Postgres), you have access to your WAL logs, which give you the power to plug BI tools.
The primary ingredient in scaling up is to have more control. Here Heroku offers limited control and hampers control, and limits scalability.
For example, you may want to use a development tool of your choice, which may not be available for Heroku. For instance, .NET is not a supported runtime. Heroku is a managed service offering. There can be difficulties moving to other services or providers with inherently limited applications that support Heroku configurations. Some limitations include - function size limitations of a maximum of 500MB with source code and artifacts. In networking, the applications can only listen on a single port, and startup constraints of mandatory booting up in less than a minute, doing development under these constraints and limits controls and scaling-up opportunities.
In the case of 3rd-party integrations used by Heroku to support add-ons, the add-on suppliers may not supply future updates or may close down their business too.
Heroku offerings are available in two regions versus AWS, which has over 24 regions and is growing.
One aspect of scaling up is that it increases' costs in Heroku. The applications on Heroku run in dynos (containers). You can run only one service on each, and additional dynos are can cost between $25 to 50$ each. The downside is that as your applications grow and you need a more significant number of dynos, the costs will shoot up. AWS is optimal for large applications and is a cheaper option.
A "dyno" is a lightweight Linux container that runs a single user-specified command. As most web apps need more than one dyno, you need to scale up vertically with more RAM/CPU or scale-up horizontally by adding more dynos. Scaling up increases the prices.
I met CTOs that need for their business to be HIPAA or/and SOC2 compliant. They have no choice here. No compliance, no business possible. Heroku requires subscribing to their Enterprise offer with at least a one-year commitment to access the security and compliance features. The price of the Heroku Enterprise can be ten times what you usually pay for their service. While AWS provides everything startups need to be HIPAA and SOC2 compliant. Nonetheless to say that Heroku runs on AWS. CTOs feel to be stuck and are looking for alternatives. This is where they consider using AWS with Qovery to keep the power of AWS and the simplicity of "Heroku".
Heroku's high cost of running a business on the platform coupled with architectural limitations have hindered its ability to scale beyond the web 2.0 customers truly. Heroku took a long time to adapt to the new industry standards of Docker containers orchestrated by Kubernetes. Though the startups might find using Heroku advantageous initially, they face challenges later on and then decide to move on to other options like AWS.