Engineering
- Engineering
- Last Updated: July 12, 2019
- Richard Schneeman
For quite some time we've received reports from our larger customers about a mysterious H13 – Connection closed error showing up for Ruby applications. Curiously it only ever happened around the time they were deploying or scaling their dynos. Even more peculiar, it only happened to relatively high scale applications. We couldn't reproduce the behavior on an example app. This is a story about distributed coordination, the TCP API, and how we debugged and fixed a bug in Puma that only shows up at scale.
First of all, what even is…
- Engineering
- Last Updated: July 11, 2019
- Ali Hamidi
This blog post is adapted from a talk given by Ali Hamidi at Data Council SF ’19 titled “ Operating Multi-Tenant Kafka Services for Developers on Heroku .”
https://www.youtube.com/embed/-AtHKoTNR1k
Thousands of developers use Heroku’s Apache Kafka service to process millions of transactions on our platform—and many of them do so through our multi-tenant Kafka service. Operating Kafka clusters at this scale requires careful planning to ensure capacity and uptime across a wide range of customer use cases. With significant automation and test suites, we’re able to do this without a massive operations team.
In this post,…
- Engineering
- Last Updated: June 19, 2019
- Jason Skowronski
There are many ways of deploying your applications to Heroku—so many, in fact, that we would like to offer some advice on which to choose. Each strategy provides different benefits based on your current deployment process, team size, and app. Choosing an optimal strategy can lead to faster deployments, increased automation, and improved developer productivity.
The question is: How do you know which method is the "best" method for your team? In this post, we'll present six of the most common ways to deploy apps to Heroku and how they fit into your deployment strategy. These strategies are…
- Engineering
- Last Updated: June 03, 2024
- Casey Watts
Editor's note: If you like CLIs, you should check out oclifconf taking place on Friday, May 31st in San Francisco. It’s the first community get-together for oclif! Space is limited so let us know soon if you are interested in joining.
What is it that makes working from the command line so empowering? It can feel archaic at times, sure, but when you remember the right sequence of words, characters, and symbols for what you’re trying to do, it hits you with a sense of accomplishment and mastery over your tools that no graphical interface can…
- Engineering
- Last Updated: April 29, 2019
- Casey
If you're like me, or like many other Python developers , you've probably lived (and maybe migrated) through a few version releases. Python 3.7(.3), one of the latest releases, includes some impressive new language features that help to keep Python one of the easiest, and most powerful languages out there. If you're already using a Python 3.x version, you should consider upgrading to Python 3.7. Read on to learn more about some of the exciting features and improvements.
One of the most tedious parts about working with Python prior to 3.7 in an…
- Engineering
- Last Updated: April 15, 2019
- Jonan Scheffler
Setting up a database is a relatively straightforward process (Heroku has an add-on for that ), but getting it to run well in production is sometimes another matter. As your application grows and your data grows along with it, you will likely find a number of performance bottlenecks specifically related to your database, and this post aims to help you diagnose and address those issues when they arise.
As with all components of your infrastructure it’s important to have early visibility into the performance characteristics of your database. Watching this data as your application grows will give you…
- Engineering
- Last Updated: June 03, 2024
- Jessie Young
Heroku has many public API endpoints. Each of these endpoints needs to be tested so that we know how they work, and documented so that our customers (and other API consumers) know how they work. Follow along, and we’ll learn how Heroku uses JSON Schema to test and document our Platform API – and how it helped us uncover an unexpected bug, rooted in the way the Oj gem parses Big Decimals.
JSON Schema files are like blueprints that define the structure and semantics of other JSON documents. When a JSON Schema file is applied to…
- Engineering
- Last Updated: June 03, 2024
- Terence Lee, Joe Kutner
When we open-sourced buildpacks nearly seven years ago, we knew they would simplify the application deployment process. After a developer runs git push heroku master, a buildpack ensures the application’s dependencies and compilation steps are taken care of as part of the deploy. As previously announced , we’ve taken the same philosophies that made buildpacks so successful and applied them towards creating Cloud Native Buildpacks (CNB), a standard for turning source code into Docker images without the need for Dockerfiles. In this post, we’ll take a look at how CNBs work, how they aim to solve many of the problems…
- Engineering
- Last Updated: April 30, 2024
- Wade
There’s obviously more to security than humans, technology, and vendors with all of their implementations and expertise. At Heroku we believe that security is a byproduct of excellence in engineering.
All too often, software is written solely with the happy path in mind, and security assurances of that software has its own dangerous assumptions. A mature security program should challenge assumptions of security controls, move to testing continuously, and prepare for the unexpectable.
This means asking hard questions about the bigger picture. Think bigger than the development lifecycle, backing away from the fixations of confirming effective corrections…
- Engineering
- Last Updated: March 20, 2019
- Amy Unger
This blog post is adapted from a talk given by Amy Unger at RailsConf 2018 titled " Knobs, buttons & switches: Operating your application at scale ."
We've all seen applications that keel over when a single, upstream service goes down. Despite our best intentions, sometimes an unexpected outage has us scrambling to make repairs. In this blog post, we'll take a look at some tools you can integrate into your application before disaster strikes. We'll talk about seven strategies that can help you shed load, fail gracefully, and protect struggling services. We'll also talk about…
Subscribe to the full-text RSS feed for Richard Schneeman.