You've been driving a perfectly suitable family sedan for the last 10 years. It's highly rated by all the gurus who rate such things; it's safe, reliable and gets acceptable gas mileage. You've never loved it in any way, although you did have a moment of pure capitalist joy when you drove it off the lot. And you've never disliked it in any way. Then one day, you woke up and, out of the blue, you were bored and needed a change--a big change.
You drove yourself down to a dealer you’ve never been to (neglecting to mention any of this to the spouse), and you bought yourself a beautiful, fast European import. You drove it off the lot with pride, some unknown void now filled and a giant smile on your face. Your friends are jealous, your spouse is ticked, and you're just plain happy.
Fast forward a week, and there you are in rush-hour traffic sitting in your new car, stuck in the same old traffic jam. After a late day at work, you’re in the middle lane, barely creeping over the speed-limit, when a kid in an 10-year-old rust bucket with chrome hubcaps and an annoyingly loud muffler tip blows by you in the left lane. The kid wonders why anyone would buy a car like yours to drive like that. The problem is you haven’t changed your thinking--that new car isn’t doing you any good if you’re driving it like the family sedan.
In terms of performance and business agility, private cloud is the foreign import compared to your family sedan data center of today. And when you migrate to that cloud, if you bring along your old ways of thinking and silo application development mindset, you’ll miss out on the benefits the platform provides. You need to ensure your services and applications are developed in a way that harnesses the full potential of the architecture.
The cloud model is focused on providing business agility through rapid service provisioning. This is accomplished through virtualization, resource pooling, automation and orchestration. Development teams have traditionally worked on siloed, hardware-specific infrastructures, which have bred siloed design that lacks scalability. Additionally, the siloed application design model relies on hardware for availability rather than having resiliency built into the service. This model will not work in the cloud--public or private.
Application/service development teams need to be trained on the new infrastructure, ensuring they understand the architecture and advantages it brings. They then need to begin harnessing the flexibility of that infrastructure in the way they deploy new services. Additionally, they should strive to build availability into the application itself, rather than relying on the underlying infrastructure for uptime. Occurrences such as virtual or physical server failure should be sustainable as long as the infrastructure is able to reprovision sufficient resources. This will not only enable the full advantages of the private cloud infrastructure but also position them to deploy robust public cloud services if the application can benefit from it.
Don’t drive an imported sports car like a domestic sedan. Match your thinking and deployment model to the infrastructure in order to gain the advantages of the investment and better enable business process.