Server Monitoring has had a slew of upgrades in the last few months. The general themes are (1) support the needs of larger customers, and (2) make it even quicker and easier to navigate your server metrics and respond to issues:
Starting with Fiveruns TuneUp in 2008, a number of in-browser Rails profilers have come, gone, or continue to exist but in a zombie-like half-alive state. Finding profilers that reliably work in 2017 with little effort was a bigger challenge than I thought. Here's a 2017 summary of the Rails profiler ecosystem: what works, what doesn't, and each profiler's niche.
Rails dominates Ruby web frameworks: the next most popular framework, Sinatra, has 5% of the popularity of Rails. However, that doesn't mean non-Rails frameworks like Sinatra and Grape don't have their place.
When does it make sense to step away from
ActionController and use another framework? What are the sweet spots and gray areas for these frameworks?
I'll explore these questions below.
The Ruby app server ecosystem has consolidated around three app servers in 2017: Unicorn, Puma, and Passenger 5. What specific problems must an app server solve for Ruby? How do you pick the right app server? Is there a need for each of these app servers in 2017?
In this post I'll cover all of the above, as well as compare and contrast the three leading Ruby app servers.
Honeybadger's Ben Curtis on bootstrapping, competing aganst VC-funded companies, and life managing a large Rails app
Exceptions happen. To everyone. For half a decade, Honeybadger has given sanity to the art of bug hunting, monitoring exceptions for Heroku, eBay, DigitalOcean, and many more. I was able to steal some time from Ben Curtis, one of the Honeybadger co-founders, to talk about their origin story, life as a self-funded company, his favorite web framework in 2017, the infrastructure behind Honeybadger, and more.
Like a pair of jumper cables, ActiveRecord's
eager_load methods are incredibly useful, but also very dangerous when used incorrectly. Knowing when and where to use each approach - and even when to combine them - can save you considerable trouble as your app grows.
I'll explore the when and where of each method below.