Platform
Use cases
Resources
← Back to Blog

Heroku, alternatives, and how to migrate

Published 12th May 2022

Heroku is a cloud service platform that makes it simple to deploy your code using buildpacks and hosting databases using addons like Postgres and Redis. For years it has been popular because it reimagined how fullstack applications could be deployed into production without hiring infrastructure engineers. But recent developments have caused users to start leaving the platform and looking for alternatives.

Heroku raised $13m in funding and was acquired for $212m in cash by Salesforce in 2010. As time has moved on, they have not been able to keep up, the changelog paints a picture of a company unable to ship any product, with the last two years of updates being little more than version bumps and feature deprecations. Recent security incidents and outages have left Heroku users asking what next? There is frequent mention of project Periwinkle where Heroku could be discontinued in favour of a Salesforce cloud offering. Today Heroku handles over 60bn requests a day, 600k requests a second with $500m ARR, broken down by $200m in self-service and $300m in enterprise revenue. Heroku now has ~123 employees according to LinkedIn, down 30% in 2 years, and much below the peak in 2018/2019 at over 400 people working on the platform.

What does Heroku do well?


Dyno - Heroku's version of containers allow for a serverless like experience in deploying your software. Scale up and down, horizontally or vertically as required.

Buildpacks - Heroku uses buildpacks to compile application code and create a “slug”, a pre-packaged copy of the application that is optimised for distribution into a dyno. Heroku supports the most common programming languages (Java, Node.js, Scala, Clojure, Python, PHP, Ruby, and Go) but for deployments in any other programming language, custom buildpacks can be used. Buildpacks allow you to get started quickly without wrangling with dependencies or configuration.

Environments variables - either through their CLI or UI, users can change the configuration variables.

Rollbacks - offer an overview of release history, allowing users to roll back to a prior state with ease.

Databases and addons - Heroku offers Postgres, Redis and Kafka as 1st party databases. Any other databases or addons required are available through their large library of addons developed by third-parties for data stores, database UIs, detailed logs and monitoring, notifications, caching, CMS, testing queuing, networking services (DNS; proxies management), security…

Database restores and backups - using Logical Backups users can create a single snapshot file from Heroku Postgres databases. Via the CLI users can manually capture or schedule logical backups, which will run a series of SQL COPY statements in a single transaction to produce a consistent snapshot across the database.

What does Heroku do badly?

Heroku publicly shares their outages, which occur on average every week. The latest and most concerning is the catastrophic hack suffered on and before the 15th April 2022, in which multiple Heroku GitHub OAuth applications were targeted, potentially exposing code source repositories, log sinks and service environment variables. Users have been unable to deploy new code to their Heroku services using GitHub for weeks. It is unclear if Heroku understands exactly what attackers were able to gain access to. These two articles by The Register and the GitHub Blog dive deeper into the details of the attack. Following are some Tweets sharing the sentiment of some Heroku users:

Another recent disappointment from a large percentage of Heroku customers is their refusal to accept payments from non-enterprise Indian customers with Indian credit cards. On 15th December 2021, Heroku announced ​​that they were unable to verify and process India-issued credit cards for Heroku Online customers. This came after the new Reserve Bank of India (RBI) regulations stated that they can no longer process automatic recurring payments.

Since the acquisition by Salesforce in 2010, Heroku has renounced their leadership in product delivery, engineering, security and reliability. Once a pioneer they are now stuck in maintenance mode bordering on sunsetting the entire project. Heroku’s revenue of $500m would be a very large independent cloud technology company but only makes up 2% of Salesforce’s global revenue in 2021.

What are the alternatives to Heroku?

Several production ready, credible alternatives to Heroku include Northflank, Cloud.run, Render, Platform.sh, and Fly.io.

Developers want a platform to deploy their code which is flexible, reliable and secure. With rapidly evolving technologies and industries, a PaaS has to be constantly evolving and adding support for new databases and other developer needs. Ensuring reliability and security will make a PaaS trustworthy for production environments.

Northflank is a developer platform to build and scale microservices, jobs and managed databases with the ease of use of Heroku and pricing and comprehensiveness of AWS in a delightful UI, API and CLI.

In minutes, developers can integrate with GitLab, GitHub & Bitbucket, provision highly available databases, schedule cron jobs, configure networking, deploy services and collaborate with their team of other developers. Northflank will build and deploy any workload: ephemeral, stateful, horizontal or vertically scalable. Northflank can be accessed through a flexible and comprehensive API while offering a severless like experience, without any of the drawbacks of existing serverless providers. Builds, containers, jobs and database ‘as a service’ in a unified experience.

How do you migrate away from Heroku?

Northflank faithfully enables developers to deploy their 12factor applications, written by Heroku's co-founder Adam Wiggins here.

The first step to migrate from Heroku, is to create a Northflank account and connect your version control, either GitHub, Bitbucket or Gitlab. Our docs on how to migrate from Heroku to Northflank will provide more detail.

All your code will have been built using buildpacks on Heroku, which are also supported by Northflank. Whether you use Heroku buildpacks or custom ones for unsupported languages or frameworks, you will be able to use the same buildpacks to build your services on Northflank.

Once that is set up, you can import your existing databases from external archives or existing live databases. Our detailed docs on how to import an existing database will be useful in this process.

Heroku concepts

HerokuNorthflank
AppService
DynosInstance
Standard Heroku git push & build & deployCombined service
Worker dynosService with no public networking
SchedulerCron Jobs
PostgresAddons Postgres
Papertrail addonLogs (search, tail, 90+ day retention) - log sink coming soon

A streamlined feature to import your Heroku project to Northflank in seconds is arriving soon. You will be able to login with your Heroku account, select the projects and services you wish to import. Setting up databases, Git repositories and your environment variables is all handled seamlessly and will be running in production in your Northflank account.

Share this article with your network
X