Back in February, amidst the news about Microsoft's new Azure platform, I asked why the concept of Private Clouds seemed to be either dismissed or ignored as a viable Enterprise strategy (see also "PDC Reactions" and "Could Azure be self-hosted?").
Yesterday, I learned that there's hope, after all.
I happened to be in the office for one of our internal MS development "user group" meetings, and we were lucky enough to have Brian Prince stop in to talk to us about Azure. The talk was great - he demo'ed a super-simple sample app that really helped make some of the Azure concepts real, but one of the things that caught my attention was only mentioned in passing: Microsoft is bringing Azure technology to private data centers.
Point #1 -- boot from VHD. This is a cool little novelty item in Windows 7, but it turns out that its origin is really the Azure team. This is how they spin up instances for you, and it was a cool enough idea that the Windows team built it into Win 7.
Point #2 -- Yes, Microsoft is going to power private clouds. Mark my words: this is going to be big. In fact, why don't you leave yourself a reminder to come back here in about five years so I can say, "I told you so." This is absolutely one of those technical announcements that's completely underwhelming at introduction because it's so disruptive that people don't know how to deal with it.
When you read about MS's Private Cloud products, watch for the bit about chargebacks. You'll probably miss this the first time you read it. Again, this line-item doesn't mean too much until you consider that this technology is coming from Azure. You know -- Azure -- the platform where you can rent capacity and Microsoft sends you a bill at the end of the month. How'd you like to be able to do that for your internal customers? I thought so.
So what's an architect to do if this technology won't be fully appreciated for a number of years?
Simple. Learn the basics of the technology and start architecting for the cloud even if your app and the cloud aren't quite ready for one another. Specifically,
- Look at how cloud apps scale. The way storage and processing scale in the cloud is different than what you're used to. Figure out what that means, and design to be compatible with this.
- Revisit your storage assumptions. Azure is going to support SQL Server, but it's clear that SQL Server isn't the 100% brain-dead automatic end-all-be-all storage choice that it once was.
- Get comfortable with messaging and queuing. This is how cloud components are connected.
- Get comfortable with threads. This should be on your list anyway, because of the rise of multi-core processors, but if you understand thread management, you'll be more comfortable with processing threads distributed across the cloud.
- Think about chargebacks. If you're suddenly able to track processing and storage utilization with great ease and accuracy, what does that mean for your shared applications? How would you split up costs for services that are shared across departments?
There are some really powerful concepts here that are just starting to emerge, and now is the time to start wrapping your brain around them.
What can your enterprise do with private clouds?
Related articles by Zemanta
- SQL Services is now SQL Azure (blogs.msdn.com)
- Exploring Scalability, Performance And Deployment (slideshare.net)
- Talking about Microsoft's Windows Azure with Amitabh Srivastava (cloudofdata.com)
- Microsoft preps massive cloud expansion (theregister.co.uk)