There is a massive difference between migrating some code to the cloud and migrating an entire application to the cloud. Yes, the heart of any application is indeed its codebase, but code can’t execute without data and there lies the biggest challenge of any cloud migration. “No problem,” you say. “We can just move our database to the cloud and our code will be able to access it.” Sounds great, apart from most storage services in the cloud tend to run on cheap disk which is often virtualized and shared across several tenants. It’s no secret that databases store and access data from disk; the problem these days is that disks have got bigger and cheaper, but they haven’t exactly got much faster. The assumption that Cloud will offer your application a better Quality of Service (QoS) at a cheaper price is therefore not always true when you include application tiers that manage data. Your code might run faster with cheaper and elastic computing power, but it can only go as fast as the data which it retrieves and processes.
Why is Data Migration important?
It’s no secret data access and management is often the holy grail to making your applications scale and perform. If you want proof of this, just look at the current CPU utilization of your web and application servers in your data center. I spoke to a large insurance company a few months back, and their server CPU utilization across their Apache and Weblogic farm of over 2,000 servers was less than 30%. From hearing information like this, it’s crystal clear why virtualization and cloud computing is so relevant today. Most organizations can’t fit anymore servers in their data center; the cost of building a new data center is tens of millions, and the whole promise that Cloud can deliver everything on demand has become too tempting to ignore. The same insurance company then told me their database servers were running consistently above 80% with many servers running close to capacity. They effectively had a few thousands servers with hundreds of applications firing requests to a bunch of shared databases and backend servers, which were becoming a giant bottleneck. And again, here lies another problem with data and cloud migration – many databases are shared across multiple applications. You simply can’t compromise on the hardware and storage that underpins these application tiers.
Iaas is just one building block
I tend to LOL when I read blogs that claim all you need is a IaaS or PaaS provider and you can successfully migrate your existing applications to the cloud. The truth is that many applications that run in the cloud today were developed or re-architected for the cloud using technology (like NoSQL) that lets an application become elastic with its data so it can scale horizontally when needed. There is a flux of PaaS companies right now that simply act as the middleman when it comes to deploying your application to the cloud. They’ll simply take your application code, provide you with a management interface, and then chuck your app on a few EC2 instances–and Scooby Doo, your application is migrated to the cloud. Except, well, it’s actually not–because the only things that exists and runs in the cloud is your code. Good luck with your data.
Cloud Migration is about your Application
It’s not often I congratulate Microsoft, but I’ve been mighty impressed lately with their Cloud and Windows Azure strategy. In fact, I’m almost shocked that I’m writing this. You need somewhere to run your app? No problem. You need a database? No problem. You need an ESB or storage? No problem. They seem to be the first vendor that is “application” focused rather than “infrastructure” focused. In fact, their message is “Focus on your application, not the infrastructure.” And I think that is spot on, because they don’t just see your app as code, but rather it’s about everything your application needs or touches including the data layer.
I really see IaaS becoming a commodity real soon. These vendors need an application and PaaS story fast if they are going to compete with the like of Microsoft, Google, VMWare and Force.com–companies that are focusing on what actually matters, the application. Cloud migration won’t happen overnight, Cloud Providers must provide ALL the building blocks for an application to truly run in the cloud, Iaas is a start but PaaS must follow if organizations are to truly leverage the Cloud.
Today, you can provision IT resource quickly in the cloud. That’s the easy bit. The hard bit is getting your application code and tiers to work in the cloud without investing significant time, effort, and cost.
So when will you migrate your applications to the cloud?