Generic Use Cases of Heroku
Consider you have an E-commerce application written in Java which may require access to all the Product information present in your Salesforce organization. Based on the number of likes that a product receives through your application, there may be a need to update this data back to your Salesforce Org. In that case Heroku is something that you need to run your application.
Heroku is a Platform Service that allows you to manage, run and deploy your code written in Java, Ruby, Node.js, Python, PHP, Scala, Go, Closure. Heroku supports eight different languages and hence is commonly referred as Ploygot for its versatility.
Heroku allows you to go beyond Force.com but stay connected with all your data in Salesforce. If you have an application with client interface built in any of the above languages and all your data stored in Force.com, you need not worry, Heroku Enterprise is all that you need.
Considering Salesforce as a perfect example of Software as a service(SaaS) and AWS as Infrastructure as Service(IaaS), Heroku is a fully managed Platform as a Service(PaaS). Heroku provides you with the operating system, compilers, software’s, infrastructure that you would need to develop and manage your application. Salesforce takes care of responding to failures, vulnerabilities, planning for scaling and in actual scaling your PaaS. With Heroku you just need to take care of developing your application.
Git, GitHub and Dropbox are the used to deploy your Heroku applications.
AWS (Amazon Web Service) and Heroku are the most common cloud services that are in demand. How do you decide which one to use to build your application?
Amazon Web Service vs Heroku
AWS is an Infrastructure as a service(IaaS) provided by Amazon.com. With AWS, you need to care of setting up your own load balancers, installing the right software stack on your EC2 instance, configuring your own database instance. Whereas with Heroku you need not worry about installing, maintaining or monitoring the software. Scaling the performance is just equivalent to increasing the number of dynos.
Heroku is costlier as compared to AWS because in AWS you pay only for the infrastructure. With Heroku you’re already paying for the platform as a service but then you also need to consider situations where you may need to increase your infrastructure. Working on Heroku is much faster as compared to AWS as you need not waste time setting up your infrastructure.
On Heroku all the underlying capabilities are completely managed by Salesforce and you need not worry about managing failures, security and scalability. Hence situations wherein you need complete control over infrastructure you can choose AWS but then Heroku is always the best option for faster development. Heroku runs on AWS instance.Consider your developing a simple web application using Ruby for a client where not much processing is required, in that case you can anytime opt for Heroku as you need not waste your time and effort on setting up your AWS instance.
Why should one choose Heroku?
Heroku provides an awesome user Interface: Consider you have a client facing application where you would want to provide an impressive interface to your customers like an E-Commerce application.Top brand companies would always want to provide their customers with an impressive user interface. With the vast range of programming languages that Heroku supports you can choose any language that best suits your need and application.
Easy Development: Salesforce provides multi-tenant architecture. So, while working in Salesforce environment you always have a drawback of governor limits but with Heroku applications you can work with data in billions and millions without worrying about integrity and security. You can easily scale up your applications to reach vast audience.
Reliability and Security : Heroku is built on AWS and backed by Salesforce which makes it more reliable and secure as it is taken care by Amazon and Salesforce.
Use Cases for Heroku Enterprise
Customer Engagement Website: Heroku supports a vast range of programming languages. Hence for customer facing applications this provides an added advantage of offering your customers with an interface that they would expect from top brand companies. Consider an E-commerce app that you would want to develop for large number of customers. In that case you may wish to work on the data stored in Salesforce. You can use any of the languages offered by Heroku and built your application without having to worry about the integrity of the data present in Salesforce. You can also integrate your existing application with your new app on Heroku. Hence you can expand your capabilities beyond the classic and lighting view offered by Salesforce.
Mobile and IoT via API Services: All RESTful API are web based and most of the mobile and IoT devices use reusable and expandable API. Once you have your API you can have your mobile apps and IoT devices on top of it. You can also build new mobile and IoT applications to interact with the REST API. You can easily develop application for mobile apps that will send and receive HTTP requests. Your requests will be easily handled by the dynos working in the background and send responses without much delay. Below is an example of an API in Node.js.
Data Manipulation: With Heroku Enterprise you can have all your Salesforce data tightly integrated with client based apps. You need not worry about the integrity of data. You can build data warehousing, data archiving and processing applications. With all your data in Salesforce you can have business intelligence tools associated with your applications that will expand the capabilities of Force.com. Consider an use case where you want to upload an image in Salesforce after processing. So you initially process the image using your Heroku application and then upload the processed image in your Salesforce Org.
Proof of Concepts or Labs: Heroku is quite elastic in the sense you just need few minutes to get ready with your application environment and you have your code running. Once your done you can delete your application and start writing a new one. Proof of concepts are those apps build for understanding the new possibilities and then expanded to reach vast audience. You need not worrying about scaling resources as that will be handled by the Heroku Enterprise for you. It’s just a matter of increasing the number of dynos.
With the enormous capabilities provided by Heroku you can anytime consider Heroku as the best choice for developing applications. So next time you have a requirement that is similar to any of the above cases, you can just start developing your application using Heroku.