How BeerMenus Elevated its Craft with a Seamless Move to Render
It's so helpful that Render gives us the ability to easily spin up fully isolated versions of our entire environment, including a database, in a reasonable, cost-effective way.
About BeerMenusBeerMenus helps beer-lovers in the U.S. and abroad find local bars, restaurants, and bottle shops serving the beverages and foods they enjoy or are looking to try. For business owners, BeerMenus provides a single place to automate their menu in all the places they need to display it, including websites and social media. With this information, app users decide where to go based on what nearby businesses carry. BeerMenus also emphasizes optimizing the on-premises experience by supporting print menus, QR code menus, and TV menus. Establishments input what they sell, and Beermenus helps them present it everywhere. Founder Eric Stephens points to businesses with an ever-changing selection of craft beer as the core focus of BeerMenus. With a constantly changing selection, it’s hard to keep menus up to date, especially informative menus with description, style, and alcohol-by-volume details for each product. BeerMenus maintains extensive databases of product information so that when customers add new items to menus, the app automatically includes rich details that help patrons decide what to order. Tech Stack: Ruby on Rails, PostgreSQL, Redis, Memcached
The ProblemBeerMenus ran its infrastructure on Heroku for over 10 years. The founders were drawn to Heroku from the beginning because it minimized the need to invest in DevOps. This worked well for quite a while, but in the last several years, BeerMenus had more and more issues arise with Heroku.
Reliability IssuesFor the last couple of years, the availability and stability of BeerMenus' application went from something they didn't think about at all, to something that platform errors forced them to focus on more and more. Instability and issues that blocked deploys became more frequent, exacerbated by poor communication from Heroku. Ultimately, Eric's team set up a check of Heroku's status page as a gate for deployments, a sign of their diminished trust.
Support and Product ChallengesEric' and his team's experience with Heroku Support was painful at times. In one instance, the platform forced changes to SSL configuration, a risk-laden process Eric likens to "diffusing a bomb." Specific questions for Support on the best options for making the changes without downtime led to a frustrating and circular path towards getting definitive answers. Several times, interactions with Heroku Support also culminated in attempts to convince BeerMenus to sign an annual Enterprise Support contract, an investment Eric worried might end up a liability. Meanwhile, when difficulties arose, Eric would submit tickets, but found that errors most often stemmed from platform issues, requiring him to simply wait and hope Heroku would fix them.
The SolutionSwitching from Heroku to Render has inspired confidence, and provided additional flexibility, making accomplishing the team's goals easier. Eric reports that running BeerMenus on Render has resulted in comparable, if not better, uptime. Monthly hosting costs have decreased 35% despite increased capacity.
Friction-free MigrationIn late 2021, reasons for BeerMenus to search for an alternative to Heroku continued to mount. When a lack of communication about environment changes led to broken deploys, distracting the BeerMenus team from important work on customer-facing features, Eric decided enough was enough. After hearing good things about Render from other founders, he experimented with the platform. By January 2022, it was time to migrate. A stellar migration experience gave Eric and the team high confidence in their choice.
One of the things that blew my mind about the migration was that we were able to cut over with about 15 minutes of downtime at our lowest-traffic time. Render Support helped us set up a live database sync, which removed a tremendous amount of risk. For a site that’s been around a long time, with a non-trivial database, that gave us a huge amount of confidence, and it went smoothly, which is pretty amazing.
Stellar Support and ProductInteractions with Render Support made BeerMenus' positive experience with migration to Render even more reassuring. Working with thoughtful, competent, capable engineers when questions arise has been, "incredibly helpful and incredibly appealing," and Eric feels confident that he can "get through to someone who can help me resolve my problem faster." When something came up, he was able to quickly get in touch with someone who talked him through a manual solution. Then within an hour or two, Render had deployed a fix. BeerMenus also used Heroku's Review Apps extensively, and their implementation used a shared database across all review servers. This was messy; for example, when various branches contained different schema migrations, contention arose. This made the transition to Render Preview Environments particularly refreshing. "It's really helpful that Render gives us the ability to easily spin up fully isolated versions of our entire environment, including a database, in a reasonable, cost-effective way."
I was excited to invest in a platform that was being invested in, based on the rate of improvement and the things Render is working on.