Need advice about which tool to choose?Ask the StackShare community!
Heroku vs OpenShift: What are the differences?
Key Differences between Heroku and OpenShift
Introduction
Heroku and OpenShift are popular platform-as-a-service (PaaS) offerings that allow developers to deploy, manage, and scale applications in the cloud. While they serve a similar purpose, there are key differences between the two platforms that developers should consider when choosing the right solution for their needs.
Pricing Model: Heroku offers a simple and transparent pricing model based on the resources used by the application. It provides a clear breakdown of costs for each resource type. On the other hand, OpenShift has a more complex pricing model, as it offers different tiers with varying levels of resources and features, making it somewhat more difficult to understand and predict costs.
Deployment Process: Heroku simplifies the deployment process by providing a streamlined and automated workflow. Developers can easily deploy their applications by pushing the code to the platform, which takes care of the build and deployment process. OpenShift, on the other hand, offers more flexibility and control over the deployment process. It allows developers to build and deploy applications using their preferred tools and languages, enabling a more customized deployment experience.
Integration and Ecosystem: Heroku has a strong ecosystem and provides seamless integration with popular third-party services, such as databases, monitoring tools, and authentication providers. It offers a marketplace with a wide range of add-ons that can be easily integrated into applications. OpenShift, on the other hand, has a more enterprise-focused ecosystem and provides integration with Red Hat's suite of products and services. It offers certified containers and images, making it suitable for organizations with existing investments in the Red Hat ecosystem.
Scalability and Performance: Heroku provides automatic horizontal scalability, where applications can scale dynamically based on demand. It offers features like dynos that can be easily provisioned or scaled down as required. OpenShift also provides scalability options, but it requires more manual configuration and management. It allows developers to scale applications using pods and replica sets, which require more advanced knowledge and setup.
Supported Technologies: Heroku offers a wide range of supported technologies and languages, including popular frameworks like Ruby on Rails, Node.js, and Python Django. It provides a Heroku Buildpack mechanism that allows developers to easily deploy applications in different languages. OpenShift, on the other hand, has a more extensive list of supported technologies, including Java, .NET, PHP, and more. It also supports different container runtimes, such as Docker and Kubernetes, providing more flexibility for developers.
Hosting Options: Heroku only provides cloud-based hosting on its own infrastructure, which may limit options for organizations with specific hosting requirements. OpenShift, on the other hand, offers more flexibility in terms of hosting options. It supports cloud-based hosting on platforms like Amazon Web Services (AWS) and Microsoft Azure, as well as on-premises hosting for organizations that prefer to keep their applications within their own data centers.
In Summary, Heroku offers a simpler pricing model and deployment process, with a strong ecosystem and support for a wide range of technologies, while OpenShift provides more flexibility and control over deployment, scalability options, and hosting choices, making it suitable for organizations with specific requirements and existing investments in the Red Hat ecosystem.
As I was running through freeCodeCamp's curriculum, I was becoming frustrated by Replit's black box nature as a shared server solution for Node app testing. I wanted to move into a proper workflow with Git and a dedicated deployment solution just for educational or non-commercial purposes. Heroku solved that for me in spades.
Not only does Heroku support free app deployment if you don't use their extra service handlers, but you can directly hook into your GitHub repos and automatically update the app whenever you commit to the main branch. It's a simple way to get an app running as fast as possible if you wish to share a proof of concept or prototype before moving to dedicated servers.
The Friendliest.app started on Heroku (both app and db) like most of my projects. The db on Heroku was on the cusp of becoming prohibitively expensive for this project.
After looking at options and reading recommendations we settled on Render to host both the application and db. Render's pricing model seems to scale more linearly with the application instead of the large pricing/performance jumps experienced with Heroku.
Migration to Render was extremely easy and we were able to complete both the db and application moves within 24 hours.
The only thing we're really missing on Render is a CLI. With Heroku, we could manage everything from the command line in VSCode. With Render, you need to use the web shell they provide.
I'm transitioning to Render from heroku. The pricing scale matches my usage scale, yet it's just as easy to deploy. It's removed a lot of the devops that I don't like to deal with on setting up my own raw *nix box and makes deployment simple and easy!
Clustering I don't use clustering features at the moment but when i need to set up clustering of nodes and discoverability, render will enable that where Heroku would require that I use an external service like redis.
Restarts The restarts are annoying. I understand the reasoning, but I'd rather watch my service if its got a memory leak and work to fix it than to just assume that it has memory leaks and needs to restart.