The demand for cloud platforms is growing every day since they provide numerous benefits for both individuals and enterprises at relatively low prices. There are dozens of cloud computing services, and many of them deserve dedicated articles and thorough comparisons. However, this time we will review Heroku and AWS, describe their similarities and differences, and compare their attractiveness for various business areas.
Contents:
What is AWS?
It’s hard to find a person who hasn’t heard anything about Amazon Web Services. This enormous suite already includes over 160 services for IT infrastructure, and this number is growing steadily. Nevertheless, for the sake of comparison, let’s take a brief look at AWS in general and on some of its most popular components in particular.
Over the last 14 years, Amazon has created a reliable and effective IT infrastructure-as-a-service (IaaS) to provide cloud solutions on a global scale. To ensure global coverage and high performance in any of its numerous Availability Zones and Local Zones, Amazon has built a network of well-protected data centers the exact geographical locations of which are kept secret. One of the key features of AWS is elasticity, which is the ability to scale according to the needs of every client.
5 most popular implementations of AWS
Amazon Web Services offer solutions for various user needs. Here are the most popular components and use scenarios of AWS:
- Web application hosting. Many software developers prefer using AWS as part of web development tech stacks since the services handle every required aspect, from computation and security to data storage and distribution in a scalable manner. As one illustrative example, Amazon Elastic Cloud Computing, or Amazon EC2, provides scalable cloud computation for complex web applications and websites.
- Website hosting. There are numerous services that handle all types of requirements related to website hosting. Amazon Lightsail is an easy solution that offers a set of powerful features to start and manage a web server. As another example, Amazon Simple Storage Service, or Amazon S3, is perfect for static websites without the server-side application code.
- Disk space for data storage and backup. In addition to the abovementioned Amazon S3, Amazon Elastic File System and S3 Glacier provide necessary functions to store, backup, and archive data.
- Database hosting. Currently, Amazon offers 14 database engines so the users may select the most fitting one for each case. For instance, Amazon RDS is among the most popular solutions as it allows setting up and managing a relational database in an easy and partially automatic manner.
- Content delivery. For example, Amazon Cloudfront is a content delivery network service that ensures a secure and fast transfer of various data types. It is used by such IT and media giants as Amazon Prime Video, Slack, Hulu, Spotify, and many others.
4 core advantages of AWS
AWS advertises the following benefits for its clients in 190 countries and territories:
- Flexible pricing with relatively low costs. Due to the effective business approach and its wide scale, Amazon manages to lower prices for its web services from time to time. Moreover, AWS offers sizeable discounts depending on the volume of used services with its policy “Pay less by using more.” This pricing strategy allows Amazon to attract an immense amount of customers with different needs, paying capacities, business types, etc. In particular, when comparing Heroku vs AWS, pricing is one of the deciding criteria that attract many users to Amazon’s services.
- Easy adaptability and scalability. Amazon constantly adds more services to its web infrastructure, and this enhancement allows it to satisfy more needs of its clients. This way, whenever a particular client needs to add a new service to their web infrastructure, AWS instantly provides such a possibility. Whenever a client’s business expands or shrinks, AWS allows scaling up and down effortlessly, as well as allows reserving computational and storage power.
- Combinability with various technology stacks. Amazon Web Services can be used in combination with many different programming languages and operating systems. This is an invaluable benefit for software developers and business owners who have a wide selection of development technologies to choose those that suit them best. This approach allows focusing on the infrastructure and business needs instead of the selected set of technologies.
- Compliance with modern security standards. AWS pays special attention to the physical security of its data centers, as well as the protection of information stored on its servers. Amazon does not disclose the addresses of its data centers and takes all kinds of preventive measures to ensure the safe operation of its servers and all user infrastructures.
What is Heroku?
Heroku is a cloud Platform-as-a-Service (PaaS) that offers a relatively limited number of services, especially when compared to AWS. This platform provides an effective, convenient, and highly customizable environment that uses smart containers called dynos to run applications. Heroku has only 3 integrated data services: Heroku Postgres – the world-first database-as-a-service solution, Heroku Redis – the enhanced version of the popular key-value database, and Apache Kafka on Heroku – another optimized version of the famous stream-processing solution.
However, the ecosystem of Heroku is not limited to those three services, as it has several products that are mostly focused on improving the management of development teams (Heroku Teams), and processes (Heroku Flow), management of large companies (Heroku Enterprises) or providing other functions. The combination of all products creates an effective infrastructure for end-users of the platform that nevertheless fails to match the scale of AWS. For this reason, it is more illustrative to perform the comparison of Heroku and AWS using two respective platforms-as-a-service: the Heroku Platform and Amazon Elastic Beanstalk.3 Types of Heroku Elements
The true gem of the whole Heroku platform is Heroku Elements – an ecosystem of small third-party solutions that are mostly developer-oriented. There are three types of such solutions, all of which are available on the Heroku Element Marketplace – a dedicated hub that resembles the Chrome Web Store or similar stores.
- Heroku Add-ons. This category provides a number of additional functions that greatly extend the capabilities of the platform. The primary focus of add-ons is to facilitate the development of apps, improve their operation, and provide better control over them. Currently, there are over 175 addons, and their number keeps growing.
- Heroku Buttons. This type of third-party solutions is a combination of source code and a short set of commands designed to deploy code to Heroku from a repository in one click from a web browser window and in an automatic mode. The creation of such code packages is rather easy, so developers can make a required button or select a suitable one from about 1400 stored on the Marketplace to simplify actions of their choice.
- Heroku Buildpacks. These elements are custom scripts created to provide the required dependencies for app compilation on Heroku. The main benefit of buildpacks is that developers are free to use any language or framework that suits their needs. Heroku officially supports 8 programming languages and provides a separate buildpack for each of them. If a developer has to use another language, it is very easy to create a custom buildpack or choose one of over 2000 built by the community and available on the Marketplace.
All types of Elements in the Heroku Marketplace facilitate, one way or another, the software development and operation processes by extending the capabilities of the Heroku platform. The total amount of elements in the Market is staggering – over 3500 items! However, only a tiny fraction of them are created by Heroku, while the rest is provided by the numerous community, from development companies to individuals. While Elements are not the full equivalents of Amazon’s services, they nevertheless offer impressive flexibility to the software developers making it very easy to create, deploy, and maintain an application on the Heroku platform.
Heroku vs Amazon Web Services
Though Heroku is one of the oldest cloud platforms, the mere fact that it is hosted on Amazon servers makes the comparison somehow biased. The evident disparity in scale and number of services puts AWS and Heroku in completely different weight categories. However, it might be a classic “David vs Goliath” situation, so it is too early to jump to conclusions. Let’s compare these two platforms with their flagship services side by side and see what cloud service provider, Heroku or AWS, is better according to the selected criteria.
Geographic availability
Heroku: The whole infrastructure of Heroku is hosted on AWS, namely – on Amazon Elastic Compute Cloud (EC2) platform. Currently, Heroku has 2 regions available for apps in the Common Runtime: Europe and USA, and 6 small regions for Private Spaces: Virginia, Oregon, Dublin, Frankfurt, Sydney, and Tokyo.
AWS: To no one’s surprise, Amazon uses proprietary servers to host all its web services. Due to a large number of data centers located around the world, Amazon Web Services are available on a global scale in 190 countries and territories.
Number of services
Heroku: Heroku Platform has 3 integrated data services but over 3500 elements that enable additional features or facilitate application deployment and management processes. There are also tools for team management and collaboration.
AWS: Amazon provides over 160 distinct services that form an extensive infrastructure and cover the majority of user needs, from virtual servers (EC2) and database management (RDS) to testing applications on mobile devices (Device Farm) or training machine learning models (SageMaker). Enterprises, startups, and individuals may find the appropriate set of services and pricing that suit each case.
Pricing
Heroku: Heroku offers its core features for free, with severe limitations. Startups or small projects that require minimum resources may enjoy Heroku hosting for free or for $7 per dyno/month in a “Hobby” plan. The monthly charge in professional plans varies from 25 to 500 dollars per dyno, which is rather steep in comparison with AWS, especially if an app requires large computational power.
AWS: Amazon offers a very flexible pricing policy that is even more advantageous if a consumer needs more services. This approach is defined as “pay less by using more.” Another pricing principle is called “pay-as-you-go” and allows paying only for utilized resources and services without long-term contracts. For example, prices for the EC2 service start from $0.10 per hour. In addition, Amazon provides a so-called “free tier” that involves certain limitations but renders some services completely free forever or for the first 12 months of use. Currently, there are also short-term free trials for 14 of its services.
Convenience
Heroku: Deploying an app on Heroku Platform is rather easy, and in some cases, it is possible to deploy in in one click using a Heroku button. Heroku Command Line Interface can be enhanced with the Autocomplete plugin and is very convenient. The deployment process is made easy by using Git, and many DevOps routines are handled in an automatic manner.
AWS: The deployment process on Amazon’s EC2 and S3 can be facilitated, to some extent, by AWS Elastic Beanstalk that provides automatic configuration and management. Nevertheless, it is rather complicated and not straightforward.
Language support
Heroku: Node.js, Ruby, Java, PHP, Python, Go, Scala, and Clojure are officially supported. Heroku is considered a “polyglot” platform where most programming languages or frameworks may be used via buildpacks.
AWS: Amazon allows building applications on AWS using C++, Go, Java, Javascript, .NET, Node.js, PHP, Python, and Ruby by providing software development kits, integrated development environments, and other useful tools.
Scaling capabilities
Heroku: Allows manual scaling using the respective slider in the management dashboard interface or using a command line interface. It also offers autoscaling for Private Space dynos and for Common Runtime dynos of a Performance type.
AWS: Supports the AutoScale feature and has dedicated services for scaling and reserving computational capacities automatically.
Other features
Heroku: Backups and rollbacks of applications and databases; integration with GitHub; one-click app deployment.
AWS: Several types of load balancers; automatic performance and cost optimization; GPU graphics and compute instances; cloud file storage with shared access; optimized CPU configuration.
Target audience
Heroku: Startups, medium and large enterprises, individuals.
AWS: Startups, small, medium, and large enterprises, individuals.
Notable users
Heroku: Unsplash, Toyota Motor Europe, Macy’s.
AWS: Netflix, Spotify, Airbnb, LG Electronics, Siemens.
Alternatives
Naturally, cloud computing solutions are not limited to Amazon Web Services and Heroku. The brief overview of the top two alternative cloud service providers is given below.
- Microsoft Azure is steadily gaining popularity due to its numerous advantages that include easy configuration of virtual machines, automatic scaling depending on the load, support of various web development technologies, steady operation under heavy loads, and others.
- Google Cloud is another highly popular provider of cloud services. End-users prefer it for its high performance and security, affordable pricing, ability to effectively handle Big Data, backup and restore capabilities, and many other beneficial features.
- Digital Ocean is a popular cloud interface provider with a special focus on development teams and businesses. It offers free 24/7 technical support, clear pricing policy, compliance with international security standards, and other advantages.
These alternatives deserve comprehensive reviews and will be described and compared to other cloud service providers in further articles.
Conclusions
The fair comparison of AWS vs Heroku is impossible due to the vast differences in type and scale. AWS is the global infrastructure adapted to satisfy as many needs of end-users as possible. Heroku is a platform that provides a place to deploy and run websites and applications with several extra features. Overall, the whole functionality of Heroku equals the functionality of a couple of Amazon’s Web Services, primarily – Elastic Compute Cloud EC2 and Elastic Beanstalk.
Amazon Web Services offer far more possibilities for users, but they are also more difficult to learn and use, not least because of their sheer number. On the other hand, Heroku is rather straightforward and easy to use if its capabilities meet your demands. So, if you require the quick and intuitive deployment of a small-scale application and you are able to stay within the limitations of the free tier, Heroku would be a reasonable choice. If your application implies scale changing, reserving computational power for future periods of peak use, wide availability, and may eventually require other additional functionality, Amazon Web Services provide better solutions and pricing policy.
In Light IT, we make the most of all possibilities provided by various cloud services. Over the years of using all popular types of cloud solutions, our specialists still prefer Amazon Web Services due to the widest range of possibilities and availability throughout the world. Contact us to get an effective software solution empowered by cloud services
Leave your comment