Customer Stories / Software & Internet / Global
Heroku Reduces Operational Overhead by 90% Using Amazon DynamoDB
Learn how platform-as-a-service provider Heroku improved the operational efficiency of its fleet using Amazon DynamoDB.
90% reduction
in operational overhead
75% reduction
in latency
Overview
For many developers, time spent on routine operational tasks takes time away from innovating and delivering value to customers. Heroku, a Salesforce company, aims to simplify application deployment, operation, and scaling on Amazon Web Services (AWS) with its platform-as-a-service (PaaS) offering. By providing a fully managed solution, Heroku empowers teams to focus on building and innovating their applications while reducing the burden of infrastructure or DevOps management.
The majority of Heroku’s architecture, including many of its data stores, was built from the ground up and managed in-house. This self-managed approach became increasingly challenging for Heroku’s developers; in 2022, the company began migrating to managed services in an effort to reduce operational overhead. As part of this initiative, Heroku migrated the storage backend for its application metrics and alerting features to a new service on AWS—a migration that reduced operational overhead and improved query performance.
Opportunity | Streamlining Database Management for Heroku
Founded in 2007, Heroku is one of the first cloud PaaS providers and supports a wide range of programming languages, including Ruby, Python, Node.js, PHP, .NET, and Java. Heroku’s PaaS offering is the chosen solution for millions of applications, from small startups to large enterprises. Heroku is built entirely on AWS. “A development team needs to have a set of tools that are inclusive of development and production with a standard way to build, test, deploy, and more,” says Bob Wise, CEO of Heroku. “We use many AWS services to provide these capabilities to developers, but we pull them together into a PaaS offering—a customer can use Heroku and access all the tools that they need.”
Previously, Heroku used self-managed Apache Cassandra clusters for its Metrics as a Service (MetaaS) system, which collects and aggregates application metrics. This system also sends alerts for performance issues and drives Heroku’s automatic scaling functionality. Over time, the company’s engineers were burdened by time-consuming management tasks associated with operating these clusters, which took their focus away from innovation and new feature development for the platform.
On AWS, we can be more operationally efficient while maintaining robust security and enjoying new performance advantages.”
Bob Wise
CEO, Heroku
Solution | Using Amazon DynamoDB to Innovate Faster with Fully Managed Service
Heroku chose to migrate from self-managed Cassandra clusters to Amazon DynamoDB, a serverless, NoSQL database service. To streamline the migration process, the company also adopted AWS Database Migration Service (AWS DMS), a managed migration and replication service that helps move database and analytics workloads to AWS quickly, securely, and with minimal downtime and zero data loss.
“Our priorities were very much aligned with AWS: number one was security, and number two was operational stability,” says Wise. “We want to be as safe as possible, and we have a level of trust in the AWS team’s commitment to operating with security as the main principle.”
The original MetaaS system ingested hundreds of thousands of observations per second into Apache Kafka. These observations were then consumed by stream-processing jobs, which calculated various metrics for each application and published the time-series data back to Kafka. The final data was then written to a Cassandra database for long-term storage and querying.
After careful planning, Heroku created a parallel set of stream-processing jobs that wrote the same data from Kafka to Amazon DynamoDB without impacting the rest of the system. Heroku incrementally increased the percentage of queries reading from both Cassandra and Amazon DynamoDB until 100 percent were running through both code paths. Heroku implemented a series of tests to validate data consistency between the two databases and, after confirming that the data was in sync, the team began the final phase of the migration.
Starting with test environments, Heroku gradually cut over read queries from Cassandra to Amazon DynamoDB until they eventually read solely from Amazon DynamoDB. The migration proved successful, and by May 2023, 100 percent of queries to the MetaaS system were being served by Amazon DynamoDB. Because of this gradual approach, Heroku could complete the migration without impacting existing customers. “Unless you were closely watching page load times for our metrics tab, you didn’t notice a thing,” says Wise. “For a lot of the work we do here at Heroku, that’s the ultimate sign of success: no one even noticed.”
Outcome | Reducing Operational Overhead by 90 Percent
By migrating to Amazon DynamoDB, Heroku enjoys greater speed and agility. Because the team no longer needs to manage and maintain Cassandra clusters, operational overhead decreased by 90 percent, and because Amazon DynamoDB is fully managed, Heroku no longer needs to provision or scale underlying hardware.
At the same time, Amazon DynamoDB offers faster and more predictable query performance, even during peak traffic periods. Heroku can now run queries much faster and more consistently using Amazon DynamoDB, reducing latency by 75 percent.
Migrating to Amazon DynamoDB has also paved the path for Heroku to innovate faster. The company no longer needs to focus on time-consuming operational tasks, which has freed up engineering resources and empowered its team to focus on delivering new features to its customers.
“Our customers always want us to move faster on the innovation front,” says Wise. “One of the ways for us to do that is to spend less of our engineering time on undifferentiated heavy lifting and more on actually building features and moving faster. That’s a pretty direct benefit of AWS.”
As Heroku continues its journey from self-managed to fully managed, AWS will continue to play a key role in its transformation. “We can have our cake and eat it too,” says Wise. “On AWS, we can be more operationally efficient while maintaining robust security and enjoying new performance advantages at the same time.”
About Heroku (from Salesforce)
Heroku is a cloud application platform as a service (PaaS) that supports several programming languages. As one of the first cloud platforms, Heroku has been in development since June 2007. Heroku was acquired by Salesforce in 2010.
AWS Services Used
Amazon DynamoDB
Amazon DynamoDB is a serverless, NoSQL database service that allows you to develop modern applications at any scale.
AWS Database Migration Service
Trusted by customers globally to securely migrate 1M+ databases with minimal downtime.
More Software & Internet Customer Stories
Get Started
Organizations of all sizes across all industries are transforming their businesses and delivering on their missions every day using AWS. Contact our experts and start your own AWS journey today.