An Intro to Heroku Add-ons
March 27, 2014Purpose
Heroku is a great platform and the speed that it allows its customers to work at is wonderful. But the learning curve, especially for its third-party add-ons, can be rough. Here are some app add-ons that have helped me tremendously, and which I use on most or all applications I’ve created. I hope this list helps you build the foundation of your app.
Heroku Postgres
Chances are you’re using a database. This one comes by default on your app, but the “Hobby Dev” service level is really only suitable for just that. The upgrade, Hobby Basic, works well for low-traffic apps. If you’re expecting any signifigant amount of simultaneous users, upgrade to Standard Yanari. The biggest differentiating factor between the databases at this level is the amount of simultaneous connections allowed. (At least) one connection is established for each web dyno you’re running - and usually more (commonly, if you’re using Unicorn to split dynos).
- Relevant Links
- Heroku Postgres addons.heroku.com
- How to upgrade a Heroku database and keep all your datadevcenter.heroku.com
PG Backups
Heroku’s PG Backups add-on should come by default on your app. But it doesn't. Choose the “Auto - One Month Retention” plan. This will save both daily and weekly backups of your database automatically, and keeps them around for a month. It’s set-and-forget and there’s no reason to not use it (it’s free!)
- Relevant Links
- PG Backups addons.heroku.com
- PG Backups docs, including how to restore your database from a backupdevcenter.heroku.com
Loggly
Sometimes you need to check your logs, but `heroku logs -t` will only take you so far. Loggly saves all your logs and lets you search, filter, and monitor them. The free plan is useful for basic applications where keeping logs for a long time isn’t necessary. The paid plans get pricey, but if you’re dealing with an application where it’s critical to save and parse logs for longer than 24 hours, you might have the budget.
- Relevant Link
- Loggly addons.heroku.com
Sendgrid / Mandrill
If you’re sending transactional emails, one of these add-ons will help you. Both will get you where you need to go, so pick your flavor. I’ve had luck with both. Mandrill is from MailChimp, so if you’e loyal to their email campaign manager, go with them to support their business. Both have a free plan which is useful for dev and hobby projects.
- Relevant Links
- Mandrill by MailChimp addons.heroku.com
- Sendgrid addons.heroku.com
- Mandrill docsdevcenter.heroku.com
- Sendgrid docsdevcenter.heroku.com
Heroku Scheduler
Heroku’s version of “cron jobs”. This add-on lets you run a command-line command at a repeating daily/hourly interval. This will help you do stuff like run an hourly Twitter scrape or sending batches of emails in the background without fussing with delayed jobs.
- Relevant Link
- Heroku Scheduler addons.heroku.com
New Relic
New Relic is Google Analytics for your back-end. It will point out slow database queries, controller actions, and give you insight into exactly how quickly and efficiently your pages are loading in near-realtime. The “Stark” plan is free, which gives you a fully-featured suite for an application that runs on 1.5 dynos or less, on average (in other words, an app that’s in development).
- Relevant Links
- New Relic addons.heroku.com
- New Relic docs, including install and config instructions devcenter.heroku.com
Honeybadger
I’ll spare you the internet joke. Honeybadger monitors your app and lets you know (via email or SMS) when an error occurs, as it occurs. It also saves the full context of the error - the request data, headers, browser version, OS, and a lot more. There’s not a free plan, but the cheapest plan will serve most of your needs. It’s been a lifesaver for me (despite also being an “oh, crap” moment generator). There’s a handful of other error monitoring services offered as add-ons, too, but I’ve found Honeybadger to be the most reliable and least annoying.
- Relevant Links
- Honeybadger addons.heroku.com
- Honeybadger docs, including install and config instructions devcenter.heroku.com
Zencoder
If you’re processing video uploads, Zencoder is a great transcoder. It works by grabbing a video file from one URL and spitting it out somewhere else, like S3. It works really well with the carrierwave_direct gem, which sends user-uploaded videos directly to S3 (and helps you bypass Heroku’s 30MB / 30-second request limits).
That said, if you want to use Zencoder as a transcoder, you’re better off signing up for their service on their website, and not using the Heroku add-on. It’s much cheaper, and the steps to integrate into your app are almost the same.
- Relevant Links
- Zencoder Addon addons.heroku.com
- Official Zencoder Website zencoder.com
- carrierwave_direct github.com
Adept Scale
Adept Scale keeps track of your website’s average response times and scales your web dynos in response to slowness. You can set upper and lower limits on the dynos, and set the thresholds of how eager your dynos are to scale. This helps protect your site from sudden bursts of traffic. If you’re running a production-level application, Adept Scale is almost always worth using. It will scale your dynos down when traffic is low, which will save you more than the cost of the add-on (the lowest cost plan is $18/mo, while Heroku’s dynos are currently ~$34/mo). This type of scaling is also possible to do with some app-level coding, but Adept Scale is considerably easier and quicker to set up.
- Relevant Link
- Adept Scale addons.heroku.com
Hope this helps
Big ups to Jonnie Hallman for pointing out the usefulness of a write-up like this.
DISCUSS THIS POST
I hope you enjoyed this blog post. It’s not the only one! Please enjoy reading another from the list of selected posts below. You can see all my posts here.
How much does it cost to sell stuff online?Looking at the current state of consumer ecomm fees. November 11, 2015 |
RespreIntroducing a new tool for Responsive Design. October 24, 2014 |
Anxiety DebtMental overhead from our digital social lives is getting us down. July 2, 2014 |
Three from Last WeekCompany retreats, client projects and babaganouj. May 27, 2014 |
For the Love of the URLA love letter to the endangered visible URL. May 20, 2014 |
The Internet is a MirrorReminding myself that the internet is what you make of it. May 13, 2014 |
This WebsiteConsider this my "About" page. May 4, 2014 |
FallMotivation, cold weather, and moving to New York City. November 17, 2013 |
FinishingThe journey can be so addicting, I might never arrive. May 31, 2013 |