Introducing the Microsoft Web Farm Framework

Last month we released a beta of the Microsoft Web Farm Framework. The Microsoft Web Farm Framework is a free product we are shipping that enables you to easily provision and mange a farm of web servers.  It enables you to automate the installation and configuration of platform components across the server farm, and enables you to automatically synchronize and deploy ASP.NET applications across them.  It also supports integration with load balancers - and enables you to automate updates across your servers so that your site/application is never down or unavailable to customers (it can automatically pull servers one-at-a-time out of the load balancer rotation, update them, and then inject them back into rotation).

The Microsoft Web Farm Framework is a 1 MB download, and can be installed on IIS 7 and above. It is available for free. You can download the first preview of this beta here: x86 / x64.

Why Is the Web Farm Framework Useful?

Running a web farm requires you to provision and manage multiple servers.  Running a web farm involves (among other things):

  1. Installing IIS, ASP.NET and all of the core platform components on the servers
  2. Installing and configuring custom IIS modules (UrlRewite, Media Services, etc)
  3. Configuring IIS Application Pools and Sites
  4. Setting up SSL certificates for things like HTTPs endpoints
  5. Copying and synchronizing the appropriate sites/applications/content across the various boxes
  6. Coordinating the various web servers with a HTTP load balancer to distribute load

Administrators and developers managing a web farm today often perform a lot of manual steps to do the above (which is error prone and dangerous), or write a lot of custom scripts to automate it (which is time consuming and hard).  Adding new servers or making configuring or application changes can often be painful and time-consuming.

The Microsoft Web Farm Framework makes this process much easier, and enables you to manage web farms in a completely automated way. Best of all, it is really easy to setup and use.

Using Web Farm Framework to Provision and Scale a Web Farm

The Microsoft Web Farm Framework enables you to easily define a “Server Farm” that you can add any number of servers into.  Servers participating in the “Server Farm” will then be automatically updated, provisioned and managed by the Web Farm Framework. 

What this means is that you can install IIS (including modules like UrlRewrite, Media Services, etc), ASP.NET, and custom SSL certificates once on a primary server – and then the Web Farm Framework will automatically replicate and provision the exact same configuration across all of the other web servers in the farm (no manual or additional steps required). 

You can then create and configure an IIS Application Pool and a new Site and Application once on a primary server – and the Web Farm Framework will automatically replicate and provision the settings to all of the other web servers in the farm.  You can then copy/deploy an ASP.NET application once on the primary server – and the Web Farm Framework will automatically replicate and provision the changes to all of the web servers in the farm (no manual or additional steps required).

The Web Farm Framework eliminates the need to manually install/manage things across a cluster of machines.  It handles all of the provisioning and deployment for you in a completely automated way.

Load Balancer Integration

In addition to making it easy to provision/deploy servers and applications, the Web Farm Framework also includes load balancer integration. Specifically, the Web Farm Framework can integrate with an HTTP load balancer so that as web servers in the farm are updated with changes, they can be automatically pulled out of a load balancer rotation, updated, and then added back in.  The Web Farm Framework can also optionally update the machines one at a time – so that you always have servers available to handle heavily load.  This enables you to keep your site always available during updates – without you having to write any manual scripts to control or manage the update roll-out.

The current beta of the Web Farm Framework includes built-in support for the IIS Application Request Routing (ARR) service (which supports automatic load balancing of HTTP requests across multiple machines in a web-farm).  The Web Farm Framework makes it really easy to integrate your web farm of servers with ARR for load-balancing, and includes the support to automatically pull a server out of rotation as it is being updated, and then have it added back into rotation once the update is done.

The final Web Farm Framework release will enable extensibility with other load-balancing technologies as well – enabling the same ability to automatically pull/inject servers from a load balancing rotation as they are updated.

Scenario Walkthrough: Setting up and Provisioning a Web Farm

Let’s walkthrough a simple scenario where we want to setup and manage a server farm made up of two web servers.  We’ll call these two web-servers the “DemoPrimary” and “DemoSeconday” servers.  We’ll use a third “DemoController” machine to coordinate and manage the web farm.  DemoController doesn’t technically need to be a separate machine – but makes it easier to understand the various roles in the walkthrough.

image

Installing the Web Farm Framework

We’ll begin by installing the current beta of the Microsoft Web Farm Framework using the Microsoft Web Platform Installer on our “DemoController” machine. It works with any machine that has IIS 7 (and above) installed.

Creating and Provisioning a Web Farm

Once the Microsoft Web Farm Framework is installed, you’ll find a new “Server Farm” node listed within the left-hand tree view of the IIS Admin Tool on the “DemoController” machine.  If you right-click on this “Server Farm” node you’ll see an option to “Create Server Farm…”

image

Selecting this option will bring up a “Create Server Farm” dialog – and allow us to configure and setup a farm of machines that we want to manage together.

We’ll name the new server farm we want to create “DemoFarm”, and indicate that we want to automatically provision all of the servers in the farm (by checking the “Provision Server Farm” option in the dialog).  We’ll also indicate that we want to make it available for load-balancing with the IIS Application Request Routing (ARR) load-balancer:

image

When we click the “Next” button the wizard will bring up an “Add Servers” dialog that allows us to specify the servers we want to have in the web farm. We can add any number of servers at the time of first setup.  We can also come back and add more servers to the server farm later.  When you add more servers to the farm later, the Web Farm Framework will automatically provision and update them to have the latest changes (allowing us to easily add additional capacity at any time).

For this walkthrough we’ll add our two servers – “DemoPrimary” and “DemoSeconday” to our server farm.  We’ll start by adding the “DemoPrimary” machine.  We’ll select the “Primary Server” checkbox in the dialog – which will indicate that its role is to act as the primary server that the other servers in the farm will replicate:

image

Once we add the “DemoPrimary” server we’ll also add the “DemoSecondary” server to the farm.  

image

When we click the “Finish” button the Web Farm Framework will connect to the servers we’ve added to the farm and automatically provision the appropriate management software on them for us (no need for us to install anything manually – the web farm framework will automatically install its management service on the target machines).  Clicking the “servers” tab in the “Server Farm” node in the IIS Admin tool always provides an up-to-date view of the provisioning and deployment operations happening across all the farm (you can also filter it by individual server if you want):

image

At this point we are completely done configuring our web farm.  We now have a working, automated, web farm enabled. 

We have setup our web farm for automated provisioning and synchronization/replication.  If we were to create sites or application pools on the “DemoPrimary” web server, or install or update applications on it, they would be automatically replicated/synchronized on the “DemoSeconday” server.  This is also true for any web platform components we install. We do not need to manually install or configure anything on any additional secondary servers we add to the farm. The Web Farm Framework will automate keeping them synchronized with our Primary Server – and enable us to manage the entire farm of servers as a group.

Managing a Web Farm

Clicking on the “DemoFarm” sub-node within the IIS Admin Tool enables us to manage, track and configure our server farm:

image

The view above combines the settings of both the Web Farm Framework, as well as the Application Request Routing capability of IIS (which adds load-balancing and cache management support). 

You can click on the “Servers” sub-node of “DemoFarm” to see how the servers within the web farm are doing, if they are currently performing any deployment/provisioning operations, and if any errors have occurred on them.  If any provisioning/deployment errors have occurred anywhere in the farm, you can drill down to detailed tracing to see what they were.

Platform Provisioning using the Web Farm Framework

The Web Farm Framework enables you to easily add more platform components to your server-farm machines at anytime by using the “Platform Provisioning” icon above.  This integrates our Microsoft Web Platform Installer technology, and enables you to easily install platform components on all of your web farm machines.  It also allows you to easily check for any version differences in platform components between your primary and secondary machines in the farm.

Below we can add “ASP.NET MVC 2” to the server farm configuration:

image

Notice that the “Enable Platform Provisioning” checkbox is selected – this will ensure that products we add to the list are automatically provisioned across all of the servers in the farm.  By default the Web Farm Framework will update each server in the farm one-by-one, and take it out of the load-balancer rotation while it does it, and then automatically add it back into the load balancer rotation once it is complete (ensuring your site never goes down).  The Web Farm Framework will even handle scenarios where a server reboot is necessary – and complete the provisioning step and re-add the server back to rotation once the reboot is done.

Application Provisioning using the Web Farm Framework

The Web Farm Framework enables you to easily deploy and replicate/synchronize Sites, Applications, Content and Settings across a Web Farm.  It uses the Microsoft Web Deploy technology to enable application deployment in an automated fashion (no manual steps required for both adding new applications and updating existing ones).

By default, the Web Farm Framework will automatically synchronize the Sites, Applications, Content and Settings we’ve configured on our “DemoPrimary” server to our “DemoSeconday” server (and any other web-servers we later add to the server farm).  We can use any application deployment mechanism we want to create and copy the application up onto the “DemoPrimary” machine.  This means we could use FTP/SFTP or the Microsoft Web Deploy framework to deploy the sites/content to “DemoPrimary”.  It also means any web applications that use a custom MSI installer or custom batch-file/powershell script to deploy applications onto our “DemoPrimary” will also work.

The benefit of supporting any deployment mechanism is that you can leverage any of the existing application/site/app-pool deployment approaches you already use with IIS to update your primary server – and then use the Web Farm Framework to automatically have the installed application/site/content automatically replicated across the other machines in the web-farm.  This makes it easier to integrate the Microsoft Web Farm Framework into your existing deployment workflows.

If you click the “Application Provisioning” icon in the IIS admin tool you can specify the synchronization frequency with which you want the servers in the web-farm to check for application/site/content updates (by default it happens every 30 seconds). 

You can also optionally specify any additional Microsoft Web Deploy providers you want to use to copy custom settings across machines in the web-farm.  For example, if you want a custom registry setting copied – you can enable that.  If you want to set a custom NTFS security ACL – you can enable that.  If you want to copy/register a COM object – you can enable that.  If you’ve built your own custom “FooProvider” to do some custom stuff – you can enable that too.

image

When you make changes or updates to applications on your primary server, the Web Farm Framework will automatically synchronize and copy them to the other servers in the server-farm for you.  No manual steps required.

Running Operations and Managing the Server Farm

The Web Farm Framework includes some built-in management infrastructure that allows you to check on the health of a server, and track its status.  You can also use a product like Microsoft System Center (or any custom monitoring software or scripts you have) to monitor the server status within the farm.  If you are using ARR for load-balancing, it also supports a bunch of monitoring and load-balancing settings that allow you to dynamically shift loads across the farm based on server performance and available utilization.

The Web Farm Framework also supports a “Server Farm Operations” task link within the IIS Admin Tool (on the right-hand side of the tool) that you can use to easily run commands across the server farm.  For example, we could flash a command to all the servers in the web farm to ensure that a “MyCustomWindowsService” is started and running using the screen below:

image

You can also fully automate tasks using PowerShell scripts.

Summary

You can take advantage of the Microsoft Web Farm Framework to simplify the provisioning and deployment of your web server infrastructure – both the servers themselves, as well as the web applications and sites you run on top of them.  It enables a smoother continuous deployment workflow.  It also makes it easy to seamlessly scale your infrastructure by adding servers to it without additional management overhead.  Best of all it is available at no extra cost and works with all editions of Windows Server.

Click here to learn more about the Microsoft Web Farm Framework. You can download a beta of the Microsoft Web Farm Framework here.

Hope this helps,

Scott

P.S. In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu

Published Wednesday, September 8, 2010 12:12 AM by ScottGu

Comments

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 3:23 AM by Jeje

Scott your command did a greate job!

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 3:23 AM by Osama Al Sallal

Wow the first comment is for me

Hi scott

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 3:24 AM by shadowcodes

Nice :) things are getting easy :P

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 3:24 AM by shadowcodes

Nice :) things are getting easy :P

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 3:38 AM by Matt

Scott, can you run through the automation via Powershell?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 3:50 AM by Marc

It's very important for me and my corporation aply this solution.

Thanks!!!!

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 3:56 AM by dario-g

Great :) What about HTTP Session and load balancing?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 4:16 AM by Alex Sloat

Taken a few years for you guys to release something like this, it has been massively needed. Any chance for encrypted web.configs to be viewable in IIS 7 like they were in IIS 6?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 4:24 AM by John Ashman

Scott looks great. One thing though, what are the licensing and redistribution constraints going to be? We’ll need to know before we can commit to incorporating any technology into our solutions.

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 4:25 AM by vik20000in

wow great stuff.

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 4:49 AM by patelsan

This is a great addition to growing arsenal of web platform tools.

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 5:04 AM by Amit

Very nice! Glad I stayed up late to see what blog you were working on.

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 5:43 AM by lbaker

Does this support different web.config files per server in the farm?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 6:00 AM by ADEBISI Foluso A.

This is GREATNESS!

You said "the Web Farm Framework will connect to the servers we’ve added to the farm and automatically provision the appropriate management software on them for us (no need for us to install anything manually – the web farm framework will automatically install its management service on the target machines)."  

How big are this management services?  Are they the same with the Web Farm Framework bits? And so, can the automatic installation be avoided by MANUALLY installing the WFF on my secondary servers?

You guys REALLY rock?  Keep the pace up.

YOU'RE GREAT!

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 7:39 AM by Dave

Would it work in a workgroup configuration without any Active Directory?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 7:45 AM by tiendq

If primary server fails can I make a secondary server become primary?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 9:05 AM by svarogg

This looks very good.

I wonder, however, will it somehow help synchronize the Databases as well?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 9:32 AM by David Scheidt

Can this be used to manage machines that 1) already have a site on them, and 2) the backup sites are not 'live' or have different IPs?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 9:48 AM by Adrian

Is this moving closer to the SharePoint Foundation space ?  

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 9:50 AM by Alexandre Jobin

i have the same question as lbaker. Does it support different web.config files? Because if i want to syncronize an internal web app with the DMZ server, i will need a different web.config file!

how can we do that?

alex

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 10:22 AM by Rob

One question I would have, is does this tool require you to do all the provisioning of the sites AFTER the install on the Controller?  If I already have 4 web servers, and 4 sites that are the same content/installs (though, due to how we set them up, the names on each web server are slightly different in the 'site name' to make identification easier - we prefix the site's www name with the IP the site is hosted on).

I guess a follow-up:  can the 'Primary' host be the controller?

Thanks,

Rob

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 11:33 AM by jclark434175

Scott,

This looks really impressive. Keep up the good work!

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 1:17 PM by herry

What can I say, simply awesome!!

This is web deployment dream come true.

Since ASP.NET MVC you guys really rock!

Now, database schema migration is next on the pipeline I hope.

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 7:24 PM by yaftab

@Sen - You can use the primary server as the deployment server depending on the topology and needs. It will make a lot of sense if the server needs to be upgraded\removed. You would still be able to administer changes on the secondary server.

@Foulsa A - You are right. All the installation of management modules is automatic so no need to update\automate things further.

@Dave - Yes! Web Farm Framework will work without Active Directory in a workgroup environment.

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 7:30 PM by yaftab

@David Scheidt - Yes you can use to manage sites that are on a backup server.

@tiendq - You can designate a different server to serve as Primary Server (if the original primary server is not available\online for any reason).

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 8:00 PM by Pure Krome

Awesomesauce Guru Gu + ASP.NET Team + IIS Team :)

Could we (pretty please) get a 2x tutorial's about

1) How we get our ASP.NET MVC website on my localhost in VS2010 published up to our production server / server-farm, hosted elsewhere, miles away by another company (dedicated hosting or shared hosting, i'm not bothered which scenario).

2) How we can get our ASP.NET MVC website, which we check in all our code to TFS2010 .. and then publish a successful build from TFS2010 up to our production server / server-farm, which of course is hosted miles and miles away with another hosting company.

That will be the full cycle finally covered :)

Please Guru Gu?

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 8:01 PM by Sunny Nagi

Excellent stuff Scott!

Just love how everything works so seamlessly with IIS interface now.

Great job by your team once again :)

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 8, 2010 10:58 PM by mike

does this support sticky connections so i can keep a user pinned to a webserver?

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 12:58 AM by ScottGu

@Matt,

>>>>>>>> Scott, can you run through the automation via Powershell?

Yes - everything can be automated with PowerShell.  Here is a pointer to the PowerShell cmdlets for the Microsoft Web Farm Framework: learn.iis.net/.../web-farm-framework-20-for-iis-7-cmdlets-for-windows-powershell

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:02 AM by ScottGu

@dario-g,

>>>>>>> Great :) What about HTTP Session and load balancing?

The Web Farm Framework focuses on replication and synchronization of the servers and apps across the web farm.

ARR (the Application Request Routing) service of IIS handles load balancing.  It includes support for HTTP Session affinity - so that repeat requests from the same browser client always go back to the same server.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:02 AM by ScottGu

@Alex,

>>>>>> Any chance for encrypted web.configs to be viewable in IIS 7 like they were in IIS 6?

You should be able to see this today.  Can you send me email (scottgu@microsoft.com) with more details of the issue you are having?

Thanks,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:03 AM by ScottGu

@John,

>>>>>>>>> Scott looks great. One thing though, what are the licensing and redistribution constraints going to be? We’ll need to know before we can commit to incorporating any technology into our solutions.

You'll be able to use it for free.  Send me email (scottgu@microsoft.com) if you have specific questions around the licensing and I'd be happy to follow up.

Thanks,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:05 AM by ScottGu

@Sen,

>>>>>>>> So would an ideal setup be to use the Primary server as strictly a deployment server rather than a live web server? I ask because if for some reason the primary server fails and the extra traffic gets load balanced to the secondary, would you still be able to administer changes easily on the secondary server? Is it a matter of replication in the sense that I would see the exact same setup on the secondary server's IIS? Or is their a low level underlying link between the primary and secondary server - is their a dependancy?

You can use the primary server as simply the deployment server depending on the topology and needs. It will make a lot of sense if the server needs to be upgraded\removed. You would still be able to administer changes on the secondary server.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:25 AM by ScottGu

@lbaker,

>>>>>>>> Does this support different web.config files per server in the farm?

Your applications would have the same web.config files - but you can have per machine customizations if you wanted to.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:29 AM by ScottGu

@ADEBISI Foluso A.

>>>>>>>> How big are this management services?  Are they the same with the Web Farm Framework bits? And so, can the automatic installation be avoided by MANUALLY installing the WFF on my secondary servers?

The entire Web Farm Framework is about 1Mb - so not too big at all.  I think you probably could install them manually - although not sure why you would want to do this. I'd probably recommend just letting the framework keep these up to date.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:33 AM by ScottGu

@Dave,

>>>>>> Would it work in a workgroup configuration without any Active Directory?

Yes - the machines don't need to be part of an active directory configuration.  It also supports a workgroup configuration where there is no domain.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:35 AM by ScottGu

@tiendq

>>>>>>>> If primary server fails can I make a secondary server become primary?

Yes - You can designate a different server to serve as Primary Server (if the original primary server is not available\online for any reason).

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:38 AM by ScottGu

@svarogg,

>>>>>>>> I wonder, however, will it somehow help synchronize the Databases as well?

The Web Farm Framework focuses on the servers in your web farm, and so doesn't try and replicate production data within a database.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:41 AM by ScottGu

@David,

>>>>>>> Can this be used to manage machines that 1) already have a site on them, and 2) the backup sites are not 'live' or have different IPs?

Yes - you can use it to manage sites that are on a backup server.  If you already have a site on the primary server then it will be replicated.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:51 AM by ScottGu

@Alexandre,

>>>>>>>> Does it support different web.config files? Because if i want to syncronize an internal web app with the DMZ server, i will need a different web.config file!

Can you send me email (scottgu@microsoft.com) with more details about the specific scenario?  I can loop some folks from the team with recommendations on how best to handle this.

Thanks,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 2:05 AM by ScottGu

@Ben,

>>>>>>>>> When it comes to deployment, the majority of our downtime comes from making database changes.  Will the Web Farm Framework be able to coordinate schema changes along with taking servers in and out of rotation? The obvious problems being around new application code talking to old schema, and vice-versa.

You can perform database deployments with web deploy - so that is possible.

For cases where you are trying to keep the site always up and have multiple web servers, you typically want to stage your updates so that you update the database in a backwards compatible way, then roll out the web app changes.  The exact specifics of doing that depends often on exactly how much data and what types of changes you are looking to make with it - so we don't have an automatic way to handle it.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 2:12 AM by ScottGu

@Rob,

>>>>>>> One question I would have, is does this tool require you to do all the provisioning of the sites AFTER the install on the Controller?  If I already have 4 web servers, and 4 sites that are the same content/installs (though, due to how we set them up, the names on each web server are slightly different in the 'site name' to make identification easier - we prefix the site's www name with the IP the site is hosted on).

I believe you can do this.  Send me email (scottgu@microsoft.com) and I can connect you with some folks on the team to confirm how best to do this.

>>>>>>>> I guess a follow-up:  can the 'Primary' host be the controller?

Yes - you can do this.  The only downside is if you ever install software that requires a machine reboot on the primary/controller then your integration with the load balancer won't be seamless.  One benefit of having a separate controller is that the load balancer can direct traffic to the secondaries while the primary is being updated, then direct traffic to the primary while the secondary is updated.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 2:14 AM by ScottGu

@herry,

>>>>>> Now, database schema migration is next on the pipeline I hope.

Yes - that is on the way too.

Thanks,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 2:16 AM by ScottGu

@Pure,

>>>>>>> Could we (pretty please) get a 2x tutorial's about

>>>>>>> 1) How we get our ASP.NET MVC website on my localhost in VS2010 published up to our production server / server-farm, hosted elsewhere, miles away by another company (dedicated hosting or shared hosting, i'm not bothered which scenario).

>>>>>>>> 2) How we can get our ASP.NET MVC website, which we check in all our code to TFS2010 .. and then publish a successful build from TFS2010 up to our production server / server-farm, which of course is hosted miles and miles away with another hosting company.

Yes - I have both of those tutorials coming.  #1 should hopefully happen in a few days (it is next on my list).

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 2:20 AM by ScottGu

@mike,

>>>>>>>> does this support sticky connections so i can keep a user pinned to a webserver?

ARR (Application Request Routing) support session affinity - which means you can pin browsers so that their requests always go back to the same server.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 2:29 AM by ScottGu

@John,

>>>>>>>>> Scott, what about storage? Should I think of a web farm and a SAN as two different things? Does this thing manage both? Does everything in every file system get replicated? Or can I do a virtual span of server hard drives to make one mondo virtual file system with a lot of space?

Best to think of Web Farms and SANs as two separate things. You can use a SAN with a web farm - but the web farm framework doesn't require this. You can just have a normal drive in them.  They also don't need to be the same server hardware - so can have differences in disk size, etc.

Hope this helps,

Scott

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 4:33 AM by andras zoltan

I'm always amazed at how manage to get the time to respond to your comments Scott.

We're currently using web deploy to sync a farm from a staging box. It works fantastically well except there is one deficiency: adding bindings to a site.

On the staging box we bind the site to a single ip:port combination and then, via a package parameterised over the destination binding, change the binding on each of the servers in the farm.

These sites sit behind a load balanced ip and therefore require different ip bindings when sent live. We want to use host header matching but this is where you get an issue. A website is typically available on at least two hosts: www.name.tld and name.tld, but on the staging box we only have one binding and one parameter.

This framework looks like something we could really use: but how would it help us solve that problem? We like the staging step as it provides a final sanity check before actual release. Would we be able to deploy from staging to the primary, keeping the bindings that are configured and not replacing them with the staging ones, and then configure each of the other servers in the farm to have different  bindings?

Sorry if this really obvious!

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 7:32 AM by Paul

Hi Scott, thanks for posting this information, I'm very keen to use this asap. We have recently migrated to IIS7 and are in the process of eveloving our web farm. My questions are:

1) This is beta - so I accept that it isn't necessarily ready for the production enviroment. Can you give me any indication how safe it would be to use in our live environment (on a scale of 1 -5. 5 being no(added) risk). I'm assuming that a fault in the module, wouldn't necessarily cause a problem in IIS just the deployment features?

2) We are currently using 3 x NLB'd instances of IIS7 and looking to roll out 2x NLB ARR in front of these.

a) Is it nessary to run ARR on a seperate machine - or just desirable? Can ARR actually be installed and used and on the same boxes as the current live webservers, or do they have to sit in front on seperate machines (like in examples typically shown).  

b) Does the Web farm software just hook into ARR if present, or does it actually add some of it's features onto a basic NLB web farm?

Thanks

Paul

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 8:21 AM by yaskil

hi scott,

great job. conguratulations.

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 8:39 AM by GrantRj

WOW. I think you have just given my weekends back as this will save me so much time!!

Each server in our farm requires a custom license file in the bin folder of each site that consumes the license. These license files are keyed on the server so must be different on each server. Any ideas on how this framework could handle that?

Cheers Grant

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 11:11 AM by Adriano Berocan

Nice article I will have to play with it and see how I can used that on SB customers.

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 11:49 AM by tvPrasad

Great stuff.

It is nice to have similar Framework for BizTalk Servers too.

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:06 PM by Srinivasan B

That's really a great stuff!

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 1:56 PM by Ginger

So when are you guys going to just rename IIS to Microsoft Application Server and get it over with? With the new server farm and deployment options plus AppFabric's ability to automatically start an application, it's not just about hosting web sites anymore. We're looking at hosting all of our Windows Services as Applications in IIS now with AppFabric.

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 5:27 PM by dkarantonis

Very nice work!

Keep up the good work Scott.

I think you are heading the right direction with all the latest technologies implemented the last years!

Dimitris

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 10:43 PM by Nairb

Does this work if the secondary servers are running just server core? I think that might be an ideal scenario where I could configure on a full Windows box and all settings/content get pushed to server-core machines.

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 9, 2010 11:33 PM by Rob Gibbens

Does this support Windows 7 (for dev/testing)?  I tried installing it on two Win7 machines and both get the same error when trying to add the first server...

"Unable to access server via SMB (UNC path '\\<server>\C$\'). Enable SMB access for the server"

# re: Introducing the Microsoft Web Farm Framework

Friday, September 10, 2010 2:09 AM by Cyriel

Hi Scott,

Does WFF also allow custom third party Web PI packages installed on the primary server to be synchronized across the secondary servers? (e.g. for shared components such as application frameworks)?

If so, that would be very cool :)

# re: Introducing the Microsoft Web Farm Framework

Friday, September 10, 2010 3:45 AM by Steve

hi, what will happen if controller (separate box) is down/offline? Any fail-over solution for the controller?

# re: Introducing the Microsoft Web Farm Framework

Friday, September 10, 2010 10:45 AM by Richard Hein

It seems unlikely from the descriptions, but is there any capabilities within this Framework that would help with managing SharePoint 2010 Server farms?  I'm just getting into SP farms, so anything that might help out would be good.  

# re: Introducing the Microsoft Web Farm Framework

Friday, September 10, 2010 4:43 PM by twh

This reminds me of Application Center.  Why wasn't that just maintained?  What's the lifespan of this one going to be?

# re: Introducing the Microsoft Web Farm Framework

Saturday, September 11, 2010 1:53 AM by Michael Fever

Well this is great, but it does not work well with legacy applications.  We had a similar setup using classic ASP.  We tried to pass the session cookie to an application based on a single server running oracle, and the load balancer would not work with it.  Sure this is great if you're running .NET only, but once you start mixing the load balancing with other applications Microsoft doesn't play nice.

# re: Introducing the Microsoft Web Farm Framework

Monday, September 13, 2010 1:56 AM by Ashish

This is great. Thanks for sharing.

# re: Introducing the Microsoft Web Farm Framework

Monday, September 13, 2010 5:20 PM by Igor

Hi Scott,

will the framework support WCF hosted in IIS? What about net.TCP binding support, I mean how do you intend to integrate LB with Net.TCP? Right now my problem is, that I do not know hot to tell my LB if one of the services is down on one of the farm servers. In other words the LB (Cisco ACE) does not know if a WCF service stops working, so long the server by itself is up and port open the LB assumes that everything is fine and keeps redirecting requests to that server.

Never then less, really needed framework. What is the release schedule?

With regards,

Igor

# re: Introducing the Microsoft Web Farm Framework

Tuesday, September 14, 2010 7:22 AM by Tom Pester

Hello Scott,

Your blog is a tresaure and thanks for following up on the comments. You do an amazing job :)

I have a question about "absolute" uptime.

Using ARR and the WAF we can take a server out of the balance, deploy to it and bring it back in after checking that everything works as expected.

I presume that now the requests to the down server are now going to the other server in the balance so for the site visitor everything is working fine.

Once the down server is approved and send back in the balance I see a problem with the browsers that still go to the previous version of the website. µ

What happens now?

I am just thinking out loud now but should the previous server not be held up until all requests the the previous website are handled ? All new request are send to the updated server and the server containing the previous website just hangs around till all website visitors using the previous site are gone.

(with possibly a sliding timeout)

Thats about the last thing I see as a problem with all these new technlogies (big thanks!) being put forward to guarantee absolute uptime.

Kind Regards, Tom

# re: Introducing the Microsoft Web Farm Framework

Monday, September 20, 2010 8:40 AM by Zeeshan Umar

Hi Scott,

I am a regular visitor to your blog, and every time I see your blog I feel my self a better developer every time. Thanks for writing this wonderful article.

# re: Introducing the Microsoft Web Farm Framework

Wednesday, September 22, 2010 12:13 PM by Brian T

Hi There,

This toolset is a godsend (Still using Application center 2000) would appreciqate a pointer to syntax help and or examples for Various providers

e.g. what path does the GacAssembly provider need ? path to Gac or path to assembly elsewhere in file system?

Whats the difference between regKey and regValue in terms of the path they require ?

Thanks

# re: Introducing the Microsoft Web Farm Framework

Tuesday, September 28, 2010 2:55 PM by Jenny Quinn

Scott, I'm a big fan of yours!  I have an existing 'web farm' with two iis 7.0 web servers and I use wlbs (windows load balancing server).  Right now, to upgrade code to my servers I take one out of the cluster, manually copy over code from my staging server, test it, and bring it back into the cluster.  Then I take the other one out of the cluster, copy code, test it, and bring it back into the cluster.

Pros; I have control and can test before showing to public and it's really pretty easy to do this.

Cons; I have to remote to the machines, take them out of cluster manually, and manually copy code.  It is menial labor.

My questions...

Am I a good candidate?  If so, how much control would I have over the testing piece, as I like to always test a bit before putting back into the cluster.

Do I have to add ARR?  Could this work with wlbs?  What about the web.config issue brought up earlier?  I can have matching web.config on the live sites, but obviously these are going to be different from the staging server, which I think would be the logical 'control server', or would it be one of the live servers?

# re: Introducing the Microsoft Web Farm Framework

Thursday, September 30, 2010 11:44 AM by Steve Jobsless

Any word on a date for RTM?

# re: Introducing the Microsoft Web Farm Framework

Tuesday, October 5, 2010 11:18 AM by Imran S

This is amazing. Just tried it on my test bed IIS servers running behind a 3rd party load balancer and it just works! Amazing stuff.

I am using the Microsoft Web Deploy (also read from your blogs!) to deploy to my primary server from VS 2010. It just saves so much time and agony and no worries about servers being out of synch. My testbed application uses ASP.Net MVC 3 Razor and EF code first framework so all of it is based on beta technologies and so far everything is working perfectly even while using asp.net forms authentication over the farm.

This is really amazing stuff.

Imran

# re: Introducing the Microsoft Web Farm Framework

Monday, November 1, 2010 3:58 PM by bob pease

Scott,

This is fantastic. We are currently changing our web server to a cluster so this is exactly what we need.

I've noticed, however, that when I create a new virtual directory on my primary server, it seems to go through all the downloads again on the secondary server. Am I missing a configuration steP