Analyzing the PaaS Landscape - Force.com
Tuesday January 31, 2012 , 4 min Read
I am helping one of my customers choose the right development and deployment platform. They are building an extremely data-centric and process-driven application. In the process of choosing the right development and deployment platforms, I evaluated existing Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) offerings.
Deploying an application on IaaS will involve building everything from the scratch. Since the application requires functionality that is already available in the form of 3rd party components, we may have to deal with the licensing and compatibility issues of these components. So, it becomes the responsibility of the developer to write the core business logic that includes the integration of multiple 3rd party components. Since we are dealing with IaaS, we also need a solid DevOps strategy to deploy and manage the application. Once the application goes live, we need to define the scaling policy and monitor the infrastructure needs regularly. This requires investment not just in the Cloud infrastructure but also in highly skilled developers and administrators to develop and deploy the application that my customer is not ready to invest. The plan is to have a lean and mean team that is highly efficient.
My next step was looking at the PaaS world. Because it was clear that the app would be built on the open source stack, I evaluated Heroku, CloudFoundry followed by Google App Engine and Microsoft Windows Azure. While Heroku, CloudFoundry and App Engine offer similar capabilities (This is only when you compare the framework support and completeness of the stack),Google App Engine’s new pricing makes it unaffordable. My customer is not confident of running a non-Microsoft, open source application on Windows Azure. Based on a few parameters, I do respect that sentiment. Though PaaS makes it easy to develop and deploy, I realized the need to write a lot of code to achieve the functionality. The strategy is to borrow as much as possible than to build it ourselves. I bet this is the same case with many startups.
Hiring the right developer talent is the biggest challenge for many startups in India. Developers with decent coding skills prefer to work for well-known brands than upcoming startups. Given the complexity of the application, I am skeptical about getting the best programmers and retaining them till we stabilize the application.
Finally, I evaluated force.com from Salesforce.com. Though I was familiar with force.com, I never got a chance to look at the platform with a specific scenario in mind. I spent quite a bit of time looking at the stack. As I explored more, it became clear that force.com would fit the bill.
Here are some of the factors that made me suggest this platform –
- Proven commercial platform – The best proof of force.com becomes evident through the success of Salesforce.com.
- Build vs. borrow – Force.com has many components that are available either natively or via the REST API. These components will save us from building complex functionality from the ground up.
- Multi-tenancy - Force.com makes it easy is to build multi-tenant applications. The kernel of Force.com is designed to be multi-tenant which relieves the developers from the burden of building isolated, multi-tenant aware applications.
- Chatter–This was the biggest factor for us. Since majority of the application needs publish/subscribe and broadcasting capabilities, we can easily leverage the Chatter engine for many collaboration features of our application.
- Data abstraction–Force.com is a data-driven business application platform. It makes modeling data very easy. It also handles the structured and unstructured data efficiently.
- Force.com sites and APEX integration–APEX (a proprietary Java-like programming language for the Force.com platform) code can be used along with standard HTML, JavaScript and CSS for integrating the business logic. This let us build our website hosted within Force.com while natively talking to the underlying components through APEX.
- AppExchange- AppExchange is the market place for applications and components built on Force.com.This provides an opportunity for ISVs to get additional exposure.
- Mobility - Force.com offers native SDK for iOS and Android. The APIs also make it easy to develop hybrid HTML5 applications for mobile devices.
I wanted to share my experience of evaluating Force.com for building a social enterprise application. Hope this helps some of you explore the platform for your business scenarios.
- Janakiram MSV, Chief Editor, CloudStory.in