Building Apps Efficiently on Heroku
June 12, 2013 by Chris Stolt
Whether you’re building your initial prototype or running a large scale profitable business, there will be times where you will have questions about building, maintaining, or troubleshooting your application. One of our goals is to help make your business successful by empowering you to build quality software with best practices, clear documentation on a stable erosion-resistant platform. When in doubt, there are several channels here at Heroku available to help you get the support you need.
Brand new to development or just new to Heroku there’s a place for you in the Dev Center. As you’re getting started you likely want to setup your application so you can get better visibility. Several tools are recommended, including add-ons for monitoring, add-ons for logging and native tools such as log2viz that provide visibility into application performance and issues.
Throughout the app development process, you will want to take into consideration best practices for application architecture and scaling, The Twelve Factor App provides the recommended methodology for building software-as-a-service apps on Heroku.
Moving from development to production is a critical stage. When you’re developing you often don’t worry about uptime or bugs, but in production you want to take extra steps. The best place to start is through Heroku’s built in production check which runs your app through a checklist for maximizing uptime and ensuring optimal performance. Items in the production check include using Cedar, dyno redundancy, DNS & SSL, production databases and appropriate visibility and monitoring.
When additional support is required, Heroku’s Help App provides a guided experience for accessing documentation and resources to get answers quickly. Help App aggregates content from both Heroku documentation and community discussions forums like Stack Overflow where Heroku engineers are very active. If questions are left unanswered, users have the ability to get in touch with Heroku support engineers from Help App. While free standard support hours are 9am–9pm ET without an SLA, Premium Support offers 24×7 coverage with 2-hour response time (this is the maximum; most premium support tickets are answered within a few minutes). When you aren’t able to find the answer yourself, Heroku support engineers are here to help.
Common issues that support can assist with include setting up DNS with root domains, securing a site with SSL, and migrating data between database plans. We are also able to help guide customers with more advanced needs such as difficult scaling techniques, app and database performance. When sending a support ticket, it’s a good idea to first perform the steps outlined in the above sections and explain what you’ve already tried.
In addition to Premium Support, Heroku offers individualized attention and support to your app through a dedicated Heroku engineer, called a technical account manager. Technical account managers offer the advantage of someone having immediate context and background on your apps. They also review your apps end to end for architecture, configurations and optimizations you may not have considered and will make recommendations on a regular basis.
Premium support services give you first access to new features that might be of help in making your app perform faster and more reliably, making teams of developers more productive. Some prior examples include early access to to 2X dynos, PostGIS and Fork and Follow before any were publicly announced.
To learn more about best practices, guaranteed response times and support for critical apps, our customer advocacy team provides free introductory 1:1 assistance. Get in touch today.