Heroku, a cloud-based platform from Salesforce, is designed to make it easy for companies to build, deliver, monitor and scale applications with high velocity. It is particularly attractive to developers, because it helps them get their applications up and running quickly with less focus on infrastructure configuration. But as companies grow and their needs get more complex, it often makes more business sense to migrate those applications from Heroku to AWS. In this blog post, we will review the key differences between Heroku and AWS and why, if you're on Heroku, you may be better served by migrating your applications to the AWS cloud.
Heroku vs. AWS: the Key Differences
Heroku is a Platform as a Service (PaaS) that is actually built on top of AWS. Heroku takes a curated selection of the services and capabilities available from AWS and packages them into an easy-to-use solution for application development. The company provides and manages the tools—OS and databases, for example—so the organization needs to concern itself only with its own functions and data.
AWS, by contrast, provides and manages the hardware, but the customer manages everything else, including the OS, the databases, the software stack, and all data.
Heroku is an attractive option when the primary goal, as with a small startup, is just to get up and running. It can serve as a sort of onramp to an organization’s use of the cloud, but you can wind up stuck in the slow lane. You are limited to the languages and environments that Heroku offers- if the runtimes or components you want to develop on aren’t supported, you don’t have other choices.
Conversely, AWS’s flexibility and wide range of choices can make it a more attractive option, enabling customers to build more resilient, available, and complex systems on AWS. Let’s review several reasons why a company might choose to migrate from Heroku to AWS.
- Convenience: If you host other cloud services on AWS and want to keep everything in one place, migrating to AWS can be a more convenient option. Heroku’s limitations can leave you with some functions running on Heroku but others on AWS. In that case, you could opt to consolidate operations by dealing with one platform.
- Cost: Applications on Heroku run in containers called dynos, and you are only able to run one service on each. Additional dynos cost $25-50 each, so if your applications grow to the point where you require a large number, the cost can mount up. With AWS, you only pay for what you use, and with larger applications it quickly becomes the less expensive option. AWS (and AWS Premier Consulting partners like Mission) also offer many cost optimization tools and services to keep costs in check.
- Flexibility: A company may want the freedom to use development tools that aren’t available on Heroku- for example, .NET is not a supported runtime, immediately disqualifying it for Windows-based workloads. As Heroku is a managed offering, applications built for Heroku’s configurations are inherently limited and can be difficult to move to other providers or services. Some of these limitations include function size (max 500mb including source code and artifacts), networking (applications can listen on a single port only) and startup constraints (must boot in under 1 min). Developing within these constraints forces hard choices that would not be present in AWS, and may have large ramifications down the line.
- 3rd Party Integrations: Applications might rely on the third-party add-ons that Heroku uses to support functions- from email to analytics. Add-on suppliers occasionally go out of business, leaving an application unsupported or may not be available in other ecosystems.
- Geography: Heroku divides their offering into two common regions, while AWS offers 24 regions for hosting, with Spain, Indonesia, and Japan coming soon.
Making the move
When your organization grows to the point where you’re chafing at the restrictions imposed by the Heroku platform, it’s time to move into the fast lane by migrating your applications to AWS.
Mission, an AWS Premier Consulting Partner and Managed Services Provider, has the AWS Migration Competency and extensive experience helping customers migrate from any environment- including Heroku- to AWS. Contact us today to learn more about how we can help you you migrate your Heroku applications to AWS.
Accelerating Your AWS Migration
Empower your team to accelerate their speed by freeing them from the constraints of on-premises data centers and providing the flexibility to pay only for what they use.