Hey everyone! I'm gearing up to create a 2-node IIS cluster for high availability on an upcoming project, and I'd love some insights from the community. What are the best practices you all are using these days?
I'm considering a couple of options:
1. **Windows NLB**: Is anyone still using this, or has it become outdated?
2. **External Load Balancer**: Thinking about options like HAProxy or maybe a hardware solution like Kemp or F5.
3. **Configuration Management**: Should I go for a Shared Configuration on a central file share, or manage each node independently with CI/CD or PowerShell DSC?
Ultimately, my goal is to ensure zero downtime during Windows Updates. Any tips or potential pitfalls, particularly related to session persistence or shared storage, would be super helpful!
5 Answers
We absolutely love our Kemp VLMs! They’ve been reliable and easy to manage. Definitely recommend it if you're looking for solid hardware.
I'm a fan of Barracuda ADC load balancers. Set up is super quick, just minutes, and they keep running smoothly without issues.
We’ve had a few IIS web clusters, and using Cloudflare for SSL and load balancing has worked well for us. For the IIS servers, you could use shared configuration to sync settings and DFS for the web root directories to keep everything in line.
An external load balancer is definitely the way to go. Whether you choose a hardware appliance or something like HAProxy or Nginx depends on your budget and feature needs. If your configuration is fairly simple and stable, you might just copy-paste it across nodes. For more complex setups, consider scripting the deployment within your software project. By the way, if you’re interested in CI/CD and high availability, why stick with IIS and Windows? Have you thought about using a native application server like Kestrel or Tomcat with the load balancer acting as a reverse proxy?
Got it! Sounds like you’re already integrated into that setup. Just looking to enhance reliability makes sense!
With over 20 years in the field, I've watched IIS clustering evolve a lot. For ensuring zero downtime by 2026, I’d advise steering clear of Windows NLB—it's pretty much considered legacy at this point. Instead, look at external load balancers like HAProxy or AWS ALB; they offer better health checks and session persistence. Also, I recommend using a CI/CD pipeline for deploying configurations to both nodes simultaneously instead of using file shares. Try moving your session state to Redis or SQL Server to avoid complications with shared storage. Just a heads up: make sure your load balancer's health checks target a real application endpoint rather than just checking for IIS static content; many healthy nodes can still fail to serve the application properly!

The company I just joined is using IIS for their web apps, so they have that environment set up already. I want to boost availability in case any server fails, which is why I'm exploring these options!