Sponsored Ad

My Review of Free Cloud Hosting with Heroku

I recently had an opportunity to try out the Heroku platform that I had cheated on a few years ago 一 when Facebook initially started out working out with Facebook apps, I created an account with Heroku platform, and didn't get a chance to try them out.

The Heroku platform deserved a try out, and so I did. For those who don't know, Heroku platform is a cloud hosting platform, owned by Salesforce now.

Overview of the review

I was initially impressed by the overall service they provide. Heroku is one of the cloud platforms, that I have tried and enjoyed working with. But it comes with its own flaws, and I understand all of them too. The basic app that I had created to try and test on the platform was known as Friend Knower, it is a simple app written in Node.js runtime with SQLite databases to support the development practices and to ensure things go quite well. 

I will not be talking about the development patterns, or practices, because for that I have a separate article coming on CodeProject. Here, I only want to talk and discuss the pros and cons of Heroku platform. Note, I used the Free offering of Heroku to see what it is like to start 一 one can pay $1000 to get a smoother experience, but that is not an experience in most cases; especially if you are a developer.

Good side of Heroku

I don't want to make you run away, there are a lot of good sides of Heroku, Heroku in itself, was one of the initials in cloud hosting solutions. I remember, Heroku was mentioned and talked about when Amazon Web Services or Microsoft Azure was merely an idea. 

Heroku supports all sort of web development needs, ranging from, 
  1. Web development runtimes
    1. Node.js
    2. Python
    3. PHP
    4. Java
  2. Databases
    1. SQLite, PostgreSQL etc. are supported
  3. Continuous deployment chains
    1. The deployment models support DevOps practices.
  4. Extensions
    1. Other extensions are available, such as logging.
  5. Accounts management
The platforms and runtime support on Heroku is quite impressive. 

The platform supports all the major community-type runtimes, that should be considered for the web development standards. What I like the most in this is, that Heroku can automatically determine the type of project your application is. I used multiple project types, from Python to Node.js and it figured it out. Which is not that much impressive to most, but to some it is handy. You do not need to configure the backends of your dynos
Dynos are the processes running on Heroku for your app.
That said, Heroku also manages the starting and shutting down of your dynos. So, you are only charged for the time your app is running. For the free tier you can get 1000 hours of dynos (which is more than 1 month for a single app), you need to verify your identity with a credit card only. 

Moving onwards, another thing that was impressive to me was the deployment model for the apps. Heroku supports multiple methods of deployment of apps. Heroku has a CLI toolkit, GitHub integration, Dropbox account control and others that you can see over there, such as Containers etc. I have to criticize the overall deployment model, a lot. For that consider reading the cons section below. 

The service itself, and the runtime support is good. The app, we used was running properly and the basic logging system provides a solid support to understand what is not working. You can access the default logging streams from the app itself. Then as you upgrade your package, you receive more services for free, such as the Metrics tab for the application is only accessible if your plan is Hobbyist or more. 

For this price, it is also good to know that Heroku supports accounts control for multiple owners. You can add contributors to the apps. The contributors can contribute code, and other resources to the application without having to request default credentials. 

Lastly, Heroku supports Git-like repositories for your applications. This means, that your applications are version controlled. Every change that you made gets registered. You can then review who made what change, to understand how app is working. Each time your app goes live, or a build succeeds, or you fail a build, there is a log entry that you can review to understand the workflow. 
Sponsored Ad

Sides Heroku needs to work on

In all of the sections above, I had a stiff upper lip to not say what I wanted to share with the Heroku users, and especially Heroku developers 一 provided the fact that Salesforce owns Heroku, and they quite have the resources to manage this. So, this section is primarily for Heroku engineers and executives

First of all, why not .NET Core guys? .NET Core is a cross-platform and lightweight framework of development. You can support ASP.NET Core, and other stack for .NET Core, such as the Entity Framework Core etc. In most cases, integrating and setting up ASP.NET Core won't take much and provided the fact that ASP.NET Core is a well documented framework you won't need to worry a bit about the support. 

The problem of databases and ORMs would get solved as well, Entity Framework Core is a powerful ORM for almost-every-database, thus enabling every database provider to use ORMs. I have a few apps running, they all use Entity Framework Core, and I would have loved to have Entity Framework Core available here as well. Note: As mentioned in the article (which yet has to come live), the problem with database development nowadays is, that it is time consuming. An ORM can make it a lot easier. Developing apps for Heroku platform would be butter, if you support this... Totally. 

Next, the deployment model was quite confusing for me. 

The page states a support for three models, 
  • GitHub
  • Dropbox
  • Heroku CLI
On the first view, it seems to be 3 different buckets, for the app. Where we have the ability to host the application, anywhere we want. Only a bit later we discover that this is not true. The thing is, Heroku CLI is actually a Heroku-way of managing the Dropbox folder for our application. 

I am not saying that I do not like it. I 💖 it. But, making me aware of this would have been perfect, don't you think? 

Final Words

These were the opinions that I had for the platform. I understand that Heroku is not as big and giant as Azure, or that to expect services like Microsoft Azure would be too much to ask for. My average review is that Heroku is a great platform, with services and features quite impressive. 

Also, with the power of Salesforce platform you can integrate your business apps with the Salesforce platform to better understand your business and enterprise needs. In next few blogs I might also cover the Salesforce services that I have tested and how to integrate Heroku and Salesforce to make the best possible use of the platform. 

Until then, consider creating an account at Heroku and try out running a sample application at Heroku. Also, consider visiting and trying out the application I mentioned above. 


Sponsored Ad

Popular posts from this blog

PyCharm vs Visual Studio Code for Python Development

Understanding the Azure Cosmos Db

Setting Up a MongoDB Server on Alibaba Cloud