3

My developers are building an app that may eventually be hosted in Windows Azure. However, we want to host it internally first for a variety of reasons. They pointed me to the concept of a "private cloud". It sounds pretty cool, but almost too good to be true.

I have a Windows Server 2008 R2 server that will be used for the app internally. If the app works well, we'd like to flip a switch essentially and host the app in Azure. My question is, is there a way to do this? I saw this article.

Once they started talking about the System Virtual Machine Manager and the Self Service Portal, it almost seemed like we were getting too far away from Azure. If I do all of this, will I easily be able to promote this app to Windows Azure?

2 Answers 2

4

That damn Cloud Word

Keep in mind that a private cloud is really no different than most of your internal web servers and applications today. The article you provide takes it a step further by essentially allowing your dev team to create, scale, and control their own virtual machines. In the end though, with the information you have provided all you are really looking for is IIS to run whatever application you have.

Is There a Difference between Azure and IIS?

The primary different between an Azure web app and one that runs on IIS is pretty simple, one has the Azure application container added to the solution and the other does not. Azure's offering has expanded and you now have more control over the underlying VMs and even your own VMs but I'll approach this from the most basic viewpoint, using Azure as a PaaS or Platform as a Service model.

Visual Studio Configuration

It's pretty easy within Visual Studio to generate multiple build configurations, one specifically for IIS and the other for Azure. This simply defines to build mechanisms that either prepares the application by setting up an Azure deployment package or another which simply creates an IIS package.

Remember Azure is essentially IIS just with configuration and settings files that have to go along with the application.

IIS Configuration

There really isn't much above and beyond the standard web server setup required here. You may have additional requirements such as file storage and even caching (see Server and Azure AppFabric/Caching). You will have to work with your dev team to determine what the requirements are and setup any necessary systems to support those.

Solution Considerations

Your dev team also needs to understand something important here: design and build the application to run in any environment. What I mean by this is that regardless of the final deployment medium and path the application should work normally. So in your situation they most likely will want to use dependency injection for file storage so either the Azure Storage API can be called or it can revert to a standard System.IO file storage mechanism. Either way, just setting up the hardware to support the application isn't enough, it must be designed to support multiple environments as well.

3

This is a bunch of marketing trash. "The Cloud" isn't a single thing that can be easily defined. It's a pool of redundant, highly available storage and server hardware which is usually geographically disparate that provide people the ability to quickly and safely scale up or down their operation as needed.

A "private cloud" is just marketing bullshit for a virtualized server environment that is capable of being abstracted by a set of APIs and automated to scale like a "public cloud."

Azure is Microsoft's public cloud offering. A "private cloud" might come close to it, but it isn't the same.

What I would recommend for you is having two Azure instances. Get one for dev/testing and one for production if this is the service that you choose to use. That way, you know exactly what your application will do when you move it to production, since it's already on Azure.

1
  • Have to agree with this. "The Cloud" is what we describe it as to managers and other non-techincal people. Within the profession, doesn't matter who's hosting it where and what they call their product, you need a well defined set of requirements for your needs, a well defined spec for the product they're giving you and a set of procedures for deploying into / between those environments. Nothing magical happened just because someone said "cloud".
    – Rob Moir
    Oct 18, 2012 at 14:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .