Let’s us examine here the two key components of App Cloud – aka Salesforce Platform – Force.com & Heroku.
Salesforce Platform Overview
Salesforce Platform is the technology foundation for Salesforce applications. Using these tools you can also create your own custom applications.
There are two key parts of the Salesforce Cloud Platform – Force.com and Heroku.
Force.com
Force.com is the set of tools with which you can customize Salesforce applications. You can also use Force.com to create your own applications, just as you would use Java or .NET to create applications. However, unlike Java/.NET, Force.com provides point and click tools – wizards, WYSIWYG framework & more – to create applications very quickly. In addition to the point and click tools, Force.com also provides an OOP language called APEX, and user interface design language called Visual Force.
The strength of Force.com lies not in the easy development tools, but in the integrated nature of the platform. Database, user directory, security access controls and application logic are tightly integrated in an enterprise grade framework. The applications you create can exchange data with any external system – ERP apps, databases and more – through a variety of ways including APIs, CSV files, ODBC connections.
Heroku
Heroku is another part of Salesforce Platform which lets you use your own open source technology – Postgress DB, Java, Node.JS & more – to create applications.
In a Nutshell
The applications you create, either in Force.com or Heroku, are hosted in the cloud. All the back-end work- Infrastructure, Storage Design, Networking, Dev-ops, Security, DR, Performance Tuning, Capacity Planning – is taken care of by Salesforce. Force.com applications are hosted in Salesforce data centers, while Heroku apps are managed by Salesforce and hosted on AWS.
Use Cases for Force.com & Heroku
There are two key parts of the Salesforce Cloud Platform – Force.com and Heroku.
The differences in the the technology foundation – & the licensing model – of these two parts of the Salesforce Platform, invite you to design an architecture which leverages their unique strengths best.
Force.com is very suitable for complex, enterprise intranet applications. Enterprise applications are marked by high complexity and small scale. They are limited to the employees of the company, but require complex logic – user collaboration, workflow rules, validations, approvals, security access controls. Force.com framework excels at user entitlements and modeling enterprise processes.
However since Force.com is based on a multi-tenant architecture, you are governed by the “limits’ of the platform. Just as on a traditional hardware you would have so much capacity (CPU, Memory) available, on Force.com the capacity available to you is in the form of “limits”. Limits in Force.com platform relate to data storage, file storage, number of page views, number of API transactions etc. So while the Force.com framework dramatically speeds up development, you would typically not create applications like Data Warehouse, Video Streaming sites and corporate websites on Force.com.
On the other hand, Heroku is very suitable for external, internet applications – corporate websites, mobile loyalty apps, eCommerce apps, data archivals & others – which are marked by large scale but comparatively less complexity.
Heroku does not impose limits on your application in the same way as as Force.com – you license Heroku Dynos. You can think of a Heroku Dyno as a unit of processing power – CPU/Memory. Once you have licensed a number of Dynos, you can do whatever you like with them, serve as many users as you want and run as many transactions as you would like.
You would of course, need to do capacity planning so that your users experience good performance. You can test your applications to gauge how many Dynos you would need just as you would load test your planned application on a traditional piece of hardware. However, in an elastic cloud like Heroku, load testing is not as important as on traditional hardware. When load increases, you can scale up the Dynos, and scale them back later. You pay by second so you have little to fear about over-sizing.
For storage on Heroku, you would license a specific amount of database storage on Heroku and/or file storage from AWS. Capacity planning for storage is relatively easier and is based on a projection of your current storage growth trends.
In a nutshell
For an architecturally optimized design, a study of your business use and leveraging the most appropriate component of the platform for those use case is crucial. In addition to the use cases explained above, there are areas of overlap. Many customers have used a component of Force.com called Site.com to create corporate websites. Communities which allow you to create interactive websites with customers and partners extend the boundaries of Force.com beyond the intranet. And of course there are various license models apart from user based which make Force.com feasible for diverse business use cases. At the same time, with open source technologies on Heroku, there is no limit to what you can create.
The true advantage of Salesforce Cloud Platform comes from exploiting the best of the both worlds of Heroku and Force.com.