Darby Frey is Director of Platform Engineering at Belly, the leading loyalty marketing platform in the U.S. For more information, visit www.bellycard.com or read our Belly customer story to learn more about how Heroku has helped Belly scale their business.

How did you approach migrating to a microservices architecture?

Originally, we built the entire business on one Rails app. Then a couple years ago, we pivoted to a microservices approach. It is still a work in progress, but we’re migrating components of the monolithic app whenever it makes sense. For example, when we need to add or expand a feature, or if we need to scale something independently, then it makes sense to pull that out...


For many of us, building apps is a team sport. With any team, getting all the people, processes and tools in sync and working together can be a challenge, and this is especially true with software development.

Today we are announcing a new feature designed to help to make building and running effective software teams easier. Available for free (for up to five users), Heroku Teams lets groups of software developers manage different projects, permissions, and people in a unified console with centralized administration and billing. Teams is available today for all users, and is accessible via our newly enhanced dashboard.

Creating Your First Team

With the introduction of Teams, the first...


Andrey Petrov is the author of urllib3, the creator of Briefmetrics and ssh-chat, and a former Googler and YCombinator alum. He’s here to tell us of a dangerous expedition his requests undertook, which sent them from Python, through the land of C, to a place called Go (and back again).

Today we're going to make a Python library that is actually the Go webserver, for which we can write handlers in Python. It makes Python servers really fast, and—more importantly—it’s a bit fun and experimental. This post is a more detailed overview of my PyCon 2016 talk of the same title. If you'd like to play along at home, this code was written in Go 1.6 and Python 3.5 and the entire complete...


At Heroku, we're always striving to provide the best operational experience with the services we offer. As we’ve recently launched Heroku Kafka, we were excited to help out with testing of the latest release of Apache Kafka, version 0.10, which landed earlier this week. While testing Kafka 0.10, we uncovered what seemed like a 33% throughput drop relative to the prior release. As others have noted, “it’s slow” is the hardest problem you’ll ever debug, and debugging this turned out to be very tricky indeed. We had to dig deep into Kafka’s configuration and operation to uncover what was going on.

Background

We've been benchmarking Heroku Kafka for some time, as we prepared for the...


For almost two years now, the Heroku Dashboard has provided a metrics page to display information about memory usage and CPU load for all of the dynos running an application. Additionally, we've been providing aggregate error metrics, as well as metrics from the Heroku router about incoming requests: average and P95 response time, counts by status, etc.

Almost all of this information is being slurped out of an application's log stream via the Log Runtime Metrics labs feature. For applications that don't have this flag enabled, which is most applications on the platform, the relevant logs are still generated, but bypass Logplex, and are instead sent directly to our metrics...


Browse the blog archives or subscribe to the full-text feed.