October 27, 2020
Saying that Internet-based technologies are everywhere would be quite the understatement. They have indeed permeated almost all aspects of our lives, arguably changing things for the better, and continue to lead and support innovation.
At this point, those who decide to run a web project find themselves virtually overwhelmed by the plethora of solutions at their disposal to make housing and publishing their work a mere formality. Cloud computing services are one such option and host applications online, giving them a ‘home’ to operate from. This could be a simple answer to the question ‘What is Heroku’ or ‘What is AWS’. In practical terms, however, cloud computing services do have their own sets of characteristics which make them more appropriate for certain tasks.
Heroku is a cloud-based PaaS (Platform As A Service), customers can use to build, scale and deploy their own web applications. As a cloud service provider and software development platform, it offers a fast and effective solution that comes complete with over 175 add-ons. These cover a variety of needs ranging from security alerts to monitoring tools, caching, mailing, networking, etc. It is considered a user-friendly container-based platform. What is Heroku’s greater strength? Probably the fact that it is not as open-ended as certain options, though there is also, as we will see, a downside to this fact. This is why API developing solutions – such as Strapi – choose to provide programmers with other alternatives. Heroku is perfect if you wish to migrate and start your apps quickly and easily, but you will not be given access to the PaaS’s underlying infrastructure. Though, admittedly, those who seek a ready-made environment to deploy their apps typically have no use for such access.
Amazon Web Service – also known as AWS – offers a wide array of cloud computing services. It provides a powerful solution for developers and combines databases, analytics, storage, deployment, management, delivery, and more. It is a full-fledged Infrastructure As A Service (IaaS) platform that supplies an entire infrastructure consisting of virtual machines, virtual networks, and many more features users can access for their own needs. Several PaaS components are available including Amazon Container Service (AWS ECS), Fargate, Beanstalk, etc. These options are so advanced that even tech giants like Ubisoft or Airbnb turn to Amazon Web Services. What is Heroku truly comparable to in this context? There are in fact some key differences between Amazon’s IaaS platform and Heroku’s PaaS solution.
Choosing between PaaS (Heroku) and IaaS (AWS) is rarely a question of personal preference, as these two solutions do not really address the same needs. With PaaS, you can benefit from a suite of ready-made tools that are very convenient to use, though you cannot manage or modify any aspects of them. For small businesses and start-ups looking to launch their own app without getting into a level of detail their project does not require, PaaS is perfect.
IaaS, on the other hand, is suitable for large-scale app launches as it gives developers access to high-quality app dev services and allows users to tweak every aspect of their project, including its very building blocks.
Both services are also priced differently. Heroku costs $0.05 per hour, whereas AWS offers a starting plan for as little as $0.013 per hour. It is worth keeping in mind, however, that though both operate on a pay-as-you-go basis, Heroku does have the most powerful offering, with its most powerful dyno type providing 14GM of memory for €500 per month.
What is Heroku’s most compelling advantage? Simplicity … and speed! Using Heroku Command Line, you can create a new server in just 10 seconds and use Git Push for deployment. The service also provides many add-ons you can utilize even if you do not know the basics of Unix administration. Perfect for beginners, Heroku constitutes an excellent alternative for those businesses who do not have a DevOps engineer on their team but still want to build an MVP app, deploy it, and test it. For any project where huge computing power is not essential, Heroku is a wonderful solution, especially if you want the ability to make quick changes and fixes based on customer reviews, for instance.
Though it is ideal for beginners, Heroku may be limiting if you ever find yourself requiring automated scalability. AWS is for those who need to do everything on a larger scale and to have full control over the infrastructure they use. If you do not mind – or even prefer to – dedicate ample time to the creation and development of your app and every new version of it going forward, the immense computing power AWS offers may be worth taking advantage of.
Both Heroku and AWS are excellent cloud-based solutions, but they do differ in some key respects. With a little foresight, you should be able to pick the right service for your organization. Look at the skill sets (DevOps) available to you and consider your short- and long-term business goals to decide where your priorities lie.
With so many different types of content to track, having a good CMS is more important than ever and is why frontend developers should use a headless CMS.
Daniel Madalitso Phiri
May 14, 2020
Sign up for the Strapi newsletter to keep up with the latest from the Strapi community!