Overview of Render
Render enables the deployment and management of web services, static sites, cron jobs, and more in a simple manner, including other features like database management. The cloud platform does support several programming languages, auto-deploys from Git, and provides DDoS protection for its users.
Overview of Heroku
Heroku is a cloud application platform, predating Render, and is known for making the testing, deploying, and management of web applications simple. At its inception, Heroku only supported Ruby and Ruby on Rails, but now does support multiple programming languages and frameworks, and has other features such as database management in the form of a Postgres database.
Comparing Render and Heroku
Heroku vs Render: Pricing
Render has a wide variety of pricing options, including a free tier for their Web services that allows for up to 512 MB RAM and 0.1 CPU usage. From there, more instance types are available at higher costs ($47 per month for a Starter instance that allows for 512 MB RAM and .5 CPU, $85 per month for a Pro instance that allows for 4 GB RAM and 1 CPU usage, and so on).
The Heroku free tier no longer exists, and Heroku charges based on dyno usage. The cost ranges from $7 per month for a Basic dyno to $250 per month for a Performance M dyno that comes with a dedicated 2.5 GB RAM to $500 per month for a Performance L dyno which comes with a dedicated 14 GB RAM; dynos on the Private Spaces and Heroku Shield tiers have custom pricing.
Heroku vs Render: Ease of use
Both platforms promise excellent user experience and certainly deliver in this regard, and this is crucial as convenience is the main benefit of a PaaS. They both have intuitive user interfaces, and allow developers to not worry about DevOps work, like setting up infrastructure and continuous integration and continuous deployment (CI/CD), and have features that make it easy to test and merge changes to the codebase: Review Apps and Preview Environments.
Heroku vs Render: Scalability
Manual scaling works similarly between Render and Heroku; users can upgrade their tier of service to access more memory and compute resources. For web services on Render, these tiers are instances and for Heroku, they are the aforementioned dynos.
Autoscaling is a feature of both platforms, but for Heroku, it is based on application response time. Render’s autoscaling is performed through load balancing and is based on resource consumption and allows users to define a minimum and maximum number of instances.
Both platforms only allow for autoscaling on their higher-tier plans, however (Performance level dynos and Private spaces on Heroku and the Team, Organization, and Enterprise plans on Render).
Heroku vs Render Flexibility
Since both of the platforms run on public cloud hosting, they face similar restrictions in terms of flexibility as users cannot configure the underlying cloud infrastructure themselves. This is not as large of an issue for hobby developers, but for growing companies, having the flexibility to configure their infrastructure to suit their security and other business requirements is essential.
Another cloud application platform option: Porter
For indie developers that don’t need any visibility into or control over their infrastructure, the choice of cloud platform should be between options like Render and Heroku, but for engineering teams at growing companies, a more robust option that allows for greater flexibility and control in their own private cloud is necessary.
Ease of use
Porter is just as convenient as Render or Heroku; developer experience on the platform is at parity with the other PaaS solutions and does not require any DevOps expertise to use. Managing the performance of web applications on Porter is simple; logging and monitoring are automatically available on the dashboard. Configuring custom domains is as simple as creating a CNAME record pointing to the same Ingress IP for your cluster. Deploying and configuring an application (whether that be a web service, worker, or job) takes a few clicks, and can be accomplished using Heroku buildpacks, Paketo buildpacks, or Docker images. Preview environments are also available and are more configurable than the other PaaS’ equivalents, allowing users to make safe merges to their codebase.
Security and compliance
One of Porter's largest differentiators from Render and Heroku is that it runs in users' own private cloud. This allows for a much better security posture and makes any sort of compliance simpler. Render and Heroku do both have private services/private dynos, but on Porter, all of a user’s infrastructure is in their own private cloud, allowing them to connect to databases through a virtual private network without worrying about the public internet’s access and keeping them more insulated from cyberattacks, bolstering DDoS protection.
Flexibility and ability to scale
Meeting compliance requirements is also easier on Porter since users have the flexibility to configure their cloud infrastructure if they want to. Porter's auto-scaling is also more robust and granular than the other PaaS options since the platform runs on Kubernetes under the hood (Render also runs on Kubernetes but since users don’t host on their own cloud, they don’t have the ability to configure the underlying infrastructure).
There are no concerns of vendor lock-in with Porter as users can choose their cloud provider and switch from one to another with ease.
Porter’s pricing is based on resource usage, so users only pay for what they use. Unlike Heroku, where if a user wants a container that utilizes 3 GB RAM then they have to upgrade all the way to a Performance L dyno and thereby double their spend, on Porter users can assign resources to each application down to 1MB RAM and 0.01 vCPU. Porter’s users pay their cloud provider of choice for their underlying Kubernetes cluster and resources; cloud credits can be used to cover this cost. Heroku and Render also run on top of cloud providers’ infrastructure, but this cost is baked into the price of their dynos and instances so credits can’t be used. With Porter, the costs for IaaS and PaaS are separate and allow users to have complete insight into what they are paying for, so they only pay for what they use.