Overall Satisfaction with Heroku
Heroku is being used organization-wide to handle most of the web-related infrastructure. Production and staging servers for most of our backend platforms live in Heroku, including Ruby on Rails, Wordpress, and Nginx platforms. Much of our support infrastructure is also hosted using Heroku add-ons, including Redis and Solr. Heroku helps simplify Dev-Ops and provides an easy path for any engineer to utilize and launch to our staging and production servers.
- The push to deploy almost always works and is very smooth and seamless.
- The Heroku add-ons have always been very reliable and easy to install.
- Their documentation is very thorough, and they have built a mechanism using buildpacks to make their platform very flexible.
- Some features that can be critical for security are hidden behind their Enterprise offering.
- The product is much pricier than using cloud providers like AWS, Azure, or Digital Ocean. It does solve a lot of Dev-Ops headaches, but may be too expensive for some companies.
- Some logging and auditing functionality is also somewhat hidden behind the Enterprise offering, where many other platforms offer this out-of-the-box.
- Heroku has allowed every engineer to be able to deploy and function on the operational side of things.
- It handles many aspects of our security and configuration, giving us more time to focus on application development.
- It is a pricey service. It is much cheaper to use a cloud host, but that route has more management and setup overhead.
If you have basic backend and Git knowledge, deploying to Heroku is a breeze. It now supports many types of backends, including hybrid backends (ex: nginx + application server) through its build pack system. The dashboard is easy to use, and the CLI tools are well designed. Accessing the add-ons is also easy. It uses an SSO-type system so you don't have to re-sign in to view the add-on dashboards.
I don't have a huge amount of experience with Heroku support-- the platform has mostly just worked. From doing research, it seems like a level of support that would satisfy most companies is offered through the Enterprise offerings. Their documentation is very good and seems to stay up-to-date with best practices and security updates.
Heroku, in my opinion, is the easiest platform to deploy and host web applications on. From collaboration to deployment, everything is well thought out and bulletproof. If you need advanced server functionality, like a VPC, machine-to-machine communication, etc., you will either need to use Heroku Enterprise, which is, honestly, expensive, or another offering.
Heroku is great for a lean team that has a healthy budget for their web tech. It enables teams to set up and deploy to servers very quickly, without much coordination. I have setup equivalent deployment services in AWS and Digital Ocean, but it took a lot of time and trial and error on each of those platforms to reach as smooth of a deployment experience as Heroku. Heroku works great out of the box. As long as you don't have unusual requirements and are OK with the relatively monolithic structure that Heroku enforces, it is a great choice for staging and production web application servers.