The Best Heroku Add-Ons for Software Development
These add-ons will make your life easier
The way we deliver software today has improved dramatically compared to a few years ago. Until 6-10 years ago, we had to physically buy the hardware component — namely a server on which to install the operating system — and then talk to the internet provider to give us a static IP to be able to place a site on the internet and make it public and accessible.
Today, we have cloud solutions. We have platforms such as DO and AWS, which are IaaS because they offer virtual private servers that represent virtual machines you can have access to and control everything on up to the operating system. At the same time, there are also cloud services such as Heroku. This represents a PaaS, meaning services completely preconfigured to deliver a certain type of application.
The advantages of such a platform are that it offers you all the things already prepared and the additional tools come in the form of add-ons or plug-ins that are ready to use with a single click.
From these options presented above, a PaaS is by far the best choice for a new developer or a developer who — even if they have experience — does not have skills related to Linux and server configuration. Such a service allows you to deliver your software fast.
But a PaaS’s advantages are at the same time an impediment for beginners. The multitude of tools available can lead you into a state of confusion without knowing which ones to choose. So I decided to put together a list of the best plug-ins you can install on a platform like Heroku and use in your applications.
Best Plug-Ins to Use
1. mLab
mLab is a database-as-a-service that hosts MongoDB databases. Because it’s based on MongoDB, mLab offers a NoSQL database. Thus, the data is not stored in the form of rows in a table but rather as documents in a collection.
Benefits of using this service:
- Provides a sandbox for free and forever with up to 0.5GB of storage space. With 0.5GB, you can store up to 250 million Unicode characters, so that’s a lot of space to use.
- Dashboard to configure users, collections, and indexes as well as manage your entire data.
- Easy to set up one-time or recurrent backups with no prior skills in database administration.
- Several data centers from which to choose so that the database is as physically close as possible to the application server in order to obtain high performance.
2. Fastly
If you have a website or web application in production, there are several steps you can follow to improve their performance in terms of load speed. One of these is to use a content delivery platform like Fastly.
One benefit of this service is the ability to move your data and applications closer to your users with the help of a managed CDN so websites and apps perform better — even on a global scale.
It also offers solutions for e-commerce companies where speed is the key. You can purge rapidly changing content like inventory or pricing within 150 milliseconds. That way, shoppers always have access to the most updated content.
A drawback of this service is that it does not offer a free plan (the lowest price starts at $25).
3. Redis Cloud
A common scenario is when a web application has many entries in a short time, which will generate a very large number of write and read operations on the database.
This will lead to low performance in terms of response time for each request. As a solution to such situations, we have in-memory databases, which are exactly what the name says: databases that save in RAM.
One of these tools is Redis, which also comes in a free tier with 30MB as an add-on for Heroku. This is best illustrated in the user chat scenario. Without Redis, you have to do a write operation on the database each time a new message is sent through the application. This is a total no-go for high-performance software.
WhatsApp sends around 483,000 messages per second in its network, and even if you are not WhatsApp and you only send 100 or 50 messages per second, there would still be a very large number of operations that you should perform on a database.
The solution is to use a service like Redis, which is very fast, to store the messages in memory and then do a bulk save in the database when the web socket closes between the chat users. This way, you would do only one database operation.
4. CloudAMQP
In addition to the fact that they allow quick integration, another advantage of these PaaS platforms is that they also allow use by those who do not have such a great experience in this field.
CloudAMQP is great for embedded developers and projects when they want to quickly put something together in order to show the data collected by different instruments in a web GUI.
This tool is a RabbitMQ messaging broker. It comes with a free tier that includes the following:
- Up to 1M messages and 20 open connections.
- MQTT & AMQP protocol enabled in the free tier.
- All functionalities from RabbitMQ.
The only drawbacks are features missing from the free tier (they are included in the paid plan):
- STOMP is not available in the free tier.
- Only the default exchanges are available.
Conclusion
While a PaaS offers a rich ecosystem of plug-ins to choose from, not all of them are right for your application. The ones mentioned here are some of the most popular and high-performing in their fields.
Most likely, there will be times when you will need other tools from other categories than those discussed in this article. If so, try to choose the tool that is based on a technology that you know is widely used and appreciated by developers in that category.
In other words, here it is safe to go with the popular kids on the block, but only if they have passed the test of time.