Question

I am a beginner trying to understand why do I or others need heroku or other cloud services for application development. I want to know for what sort of applications or scenarios, do we need heroku or similar services?

For example, if I am an application developer, I can write my application (windows or linux) on my machine, run and test it on my machine and then share it publicly on sourceforge.net or some other website for free or for some money. I mean all of us download and run applications and programs from all over the web e.g., notepad++ or skype. They come as binaries and we can install them on our machines easily. I want to know where Heroku or cloud comes into the picture and do I/we need it? and why?

Please let me know if you need more explanation.

Was it helpful?

Solution

Heroku and Other PaaS providers helps you in application deployment and gives hosting of your application and some other features like High availability, scaling, load balancing, monitoring and ready made environment to run your apps.

Now why they cost? PaaS providers runs your application on virtual instance and use some management and deployment tool in front of it to manage and monitor your application that taken care for you. Manging a server is not easy now a day for big application, you need a high level of expertise and enough time to monitor periodically(may be hours). If you go for free hosting, you will not get all these feature of PaaS. Again it's your choice. If you can't bear down time and any data lose, you should prefer PaaS else you can go for Free hosting.

OTHER TIPS

First of all notepad++ is not an application users of which need to interact or share. So it is not a good choice for to give an example. Heroku and other cloud providers host cloud applications. Generally, these applications, as part of their nature, need scaling. And scaling requires more hardware. Setting up hardware to scale your application requires time, money and expertise, so it is expensive. Buying these as a service is more appropriate for most people. I would offer you to read about IAAS, PAAS, SAAS concepts to start.

For a beginner or an individual hobbyist, the charm of Heroku or a similar PaaS lies in the fact that Heroku (and others) do away with the complexity of building and deploying cloud/web/saas software.

A typical app developer just knows/needs to know about his/her app. That is it. Why should you have to worry about how many machines you need to run your app on or get charged for machine time when you are sipping coffee and your app isn't doing anything or you are just trying out new things and don't know if it works. You can just write code and push your app to Heroku (or other platforms like it) and let them worry about things like servers, availability and reliability of your app. Yes, you will need to make some simple choices but those are much simpler choices than planning for scalability or database backup. And like any software platform, you will learn with time as to what suits your needs best. You adjust your app and things work fine. And remember you pay only for what you use and that can go up or down when you do more or less with the platform.

Also, if your app turns out to be a really popular app and you need to scale the app to support your newly founded fame :), you can ramp up your infrastructure on the fly for some affordable price.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top