Public vs Private Cloud
In 2010, Salesforce.com acquired the Heroku Platform as a Service for approximately $212 million in cash. In my opinion, this was a wise investment, as although Salesforce.com already manage their own native platform (Force.com), Heroku is a very different proposition.
Heroku redefined the developer experience, brought container technology to the mainstream (longer before Docker) and helped establish modern application architecture design patterns (e.g. Twelve-Factor App). This type of thought leadership should not be overlooked as it established Heroku as the first “go-to” for cloud native developers.
However, over the past few years Platform as a Service has been gaining momentum.
We’ve seen Pivotal Cloud Foundry achieve the fastest first-year sales growth for an open source product. At the same time, Docker is rapidly becoming the de facto standard for Linux container technology, allowing companies like RedHat to rapidly evolve their Platform as a Service offering.
One “advantage” of Pivotal Cloud Foundry and RedHat OpenShift, is the ability to deploy their services on different infrastructure, for example, on-premise (e.g. Private Cloud).
This is a clear differentiator from Heroku, which is exclusively built on Amazon Web Services (e.g. Public Cloud). This capability is an interesting proposition, especially for enterprise customers, who are notoriously conservative and slow to embrace new technology trends. Therefore being able to build your own Platform as a Service and run it on-premise feels comfortable and a logical step away from a server-centric architecture.
However, I personally believe this advantage is misleading. In my opinion the real advantage of Platform as a Service is the ability to get closer to the business value, by abstracting the lower levels of the technology stack. Generally speaking, businesses care about their applications, services and data, not managing the network, servers and operating systems.
As a result, I feel that deploying and managing your own Platform as a Service on-premise is short-sighted, focused on the journey, instead of the destination. The destination being an ultra-scalable, highly-secure, compliant environment that just works, allowing the business to focus on building great customer-centric applications and services.
With this in mind, Heroku starts to look very interesting, as it is a very mature Platform as a Service, which focuses on making the technology stack a commodity, in the same way you would think about utilities, like gas and electric.
One area where Private Cloud is often described as a positive is security and compliance. However, I feel this is another red herring, as I am not aware of any enterprise that can invest as much time, money or resources into securing and scaling their own infrastructure, when compared against Salesforce.com, Amazon, Microsoft, Google, etc. These companies have also invested millions ensuring they support the latest and greatest compliance standards, such as HIPAA and PCI.
In conclusion, if you’re investigating Platform as a Service, please ensure you recognise the true value. I would also recommend you evaluate Heroku, as they inherently drive you towards making the right decisions, by abstracting the lower levels of the technology stack.
With that said, being able to deploy a Platform as a Service on different infrastructure can still be very useful. For example, the concept of “multi-cloud” which proactively promotes the idea that infrastructure is a commodity. For example, being able to easily switch infrastructure providers to ensure you always get the best deal, just like you would with your gas and electric. In this scenario I would certainly not ignore Pivotal Cloud Foundry, as their platform portability (thanks to BOSH) is a real unique selling point.