There’s a new wave of applications being built… Apps built “of the cloud”, not for the cloud, or on the cloud, but “of the cloud”. They are born with cloud. They depend less on underlying service levels or preset capacity or frequent deployment of changes attributed to agile development. Not that these items are any less important, quite the opposite! Instead applications “of the cloud” see the world differently, taking control over these items and overcoming them – more specifically, the applications leverage the true benefit of cloud to overcome them.
The National Australia Bank said it well in a recent ZDnet article when they said they wanted to ensure that the apps they deploy to #cloud are “not just virtualised incarnations of apps from the old IT infrastructure“. Sure, there’s lower cost & better manageability benefits for deploying any app to the cloud, but the true benefits of cloud are found in the applications written of the cloud. The NAB went on the say that they want to “rethink how we run solutions to make sure that, in the future, they are designed and deployed for the cloud”.
What does this mean? How does an application “of the cloud” overcome these challenges?
- They leverage multiple availability zones. An application “of the cloud” is able to work across cloud availability zones. It is distributed. A disruption to a single availability zone does not affect the application, the application carries on serving traffic and performing critical business functions & calculations.
- They auto-scale. An application “of the cloud” is able to spin up more capacity when load demands it, and spin down capacity if no longer required. No intervention required. The application takes control of its own capacity, ensuring maximum efficiency and a reduction in risk caused by a lack of capacity.
- The cloud becomes code. One of the core definitions of cloud is self service, almost every cloud providing a self service portal for provisioning the cloud infrastructure. An application “of the cloud” however leverages the cloud’s API, it does not need a portal, and instead it imbeds cloud provisioning functions within the application itself, in the code. The application takes charge of provisioning its own cloud infrastructure using defined logic that makes sense to it as an application, there is no need for a person using a self service portal UI.
In short, when thinking about deploying to the cloud, think about two categories of applications: traditional workloads & new “of the cloud” workloads. Both are candidates for cloud, just in different ways and for different benefits. For the former, there are major cost and manageability benefits of deploying to the cloud. For the latter, the benefits of cloud become unique and disruptive – in essence, abstracting away the cloud infrastructure and ruling it via code.
Written for Ninefold on 07/12/2012: http://ninefold.com/blog/cloud-programming/apps-that-are-of-the-cloud/