Heroku is a cloud service provider and software development platform that allows developers to quickly deploy and scale applications without the need to consider infrastructure. Heroku is built on top of AWS (Amazon Web Services) and is a fully managed platform as a service (PaaS) where infrastructure management is abstracted away from developers so that they can focus on the development of their application.
AWS is a cloud computing service provider that offers a plethora of cloud computing solutions that enable developers to run fully-fledged and customisable cloud-based applications. The AWS suite of services include infrastructure as a service (IaaS), platform as a service (PaaS), software as a service(SaaS) and many more. With the wide variety and options available on AWS, a DevOps engineer is essential to properly configure the platform for your needs. AWS has a large worldwide footprint with 16+ geographic locations and its services are offered on a pay-per-use basis.
AWS Elastic Beanstalk is a more directly comparable PaaS that AWS offers. Elastic Beanstalk is also a software development platform that handles the infrastructure for the developer. However, it allows more manual access to customise infrastructure and works out cheaper than Heroku with their pay-per-use billing system.
Consider Heroku if you do not have the time or skill-set to build and manage infrastructure but have the budget to pay a little extra to have it managed for you.
Consider AWS if you have a DevOps engineer and you require custom infrastructure that can meet high computational demands for larger projects.
Consider Elastic Beanstalk if you are looking for a managed platform for easy application deployments, if you have a skilled DevOps engineer and want to take advantage of the pay-per-use billing system.
Heroku is a PaaS that enables developers to deploy applications on their platform where all the infrastructure is fully managed by Heroku. DigitalOcean is an IaaS that offers raw servers for developers to deploy applications while providing the flexibility to build and manage their own servers at a lower price.
DigitalOcean has a larger geological footprint than Heroku. They also offer their "App Platform" – a fully managed PaaS for developers to deploy applications without worrying about infrastructure.
Consider Heroku if you are looking to deploy automatically scalable applications fast with no access to server-level management and you have the budget to pay a little extra for the fully managed service.
Consider DigitalOcean if you are new to DevOps but need the flexibility to manage your own servers on a platform that is easy to use with great documentation.
Consider DigitalOcean’s App Platform if you want them to manage the infrastructure for you, at a lower cost than Heroku.
Heroku is a more generic PaaS that allows multiple types of deployment under a large set of programming languages focussed towards backend development. Netlify is an automation PaaS for web projects that is focused on frontend developers.
Consider Heroku if you'll be building mobile or web applications that are more backend related, and want the convenience of one-click deployments and effortless vertical and horizontal scaling.
Consider Netlify if you are looking to accelerate website deployment and hosting with continuous integration tools as well as a fully embedded CDN service focussed on modern frontend development.
Heroku is a PaaS that provides developers with a platform to deploy their applications without the need to worry about infrastructure and server-side configurations. They support multiple types of deployment under a large set of programming languages and database technologies.
Firebase is Google's application development platform that uses proprietary technology and a “realtime” NoSQL database. Firebase allows for seamless integration of Google features like federated authentication and includes many great services for analytics and application management all from a single console.
Consider Heroku if you need more flexibility with regard to different programming languages and database technologies.
Consider Firebase if you want to use a realtime NoSQL database and take advantage of all the added Google functionality and powerful analytics.
Heroku is a commercial PaaS that provides an abstracted pre-configured container for developers to deploy their applications without any server-level interaction. Docker is an open-source container standard that can run just about anywhere, allowing infinitely more flexibility and portability to developers.
Consider Heroku if you want to focus on building and deploying your best application fast and don't mind paying a little extra for having them manage the server-side configuration and maintenance for you.
Consider Docker if you want to have complete control over server-side configurations especially where security is of high importance. Also ensure you have the skills on your team to deploy and manage your own infrastructure.
AWS is a fully-fledged cloud infrastructure and services provider that offers more than 165 services. Netlify is a PaaS that offers an all-in-one solution for deploying static web applications and, in fact, also makes use of some of AWS's services.
Consider AWS for large applications where you need full infrastructure control and heightened security.
Consider Netlify if you are looking for an all-in-one frontend solution for smaller static web applications.
Firebase is a backend as a service (BaaS) that provides developers with a platform and the necessary tools to deploy and manage web and mobile applications. Netlify is a PaaS that provides frontend developers with a fully managed and easy to use static web hosting platform. Furthermore, Firebase includes support for artificial intelligence (AI) and machine learning (ML) projects.
Consider Firebase if you want to create a dynamic website or application especially if you need to process AI and ML learning algorithms.
Consider Netlify if you want to easily create, deploy and scale static web applications.
AWS is a fully-fledged cloud infrastructure and services provider that offers more than 165 services including IaaS, BaaS, PaaS and SaaS. Firebase is a backend as a service (BaaS) that provides developers with a platform and the necessary tools to deploy and manage web and mobile applications.
Consider AWS for building large, complex applications where you need the flexibility to choose between many different services and database technologies. Also, keep in mind that you will need the skills on your team to deploy and manage all the different services that AWS offers.
Consider Firebase for creating real-time applications with a NoSQL database. Firebase takes care of a lot of the backend complexity, allowing frontend developers to easily create and maintain their own backend.