I'm about to study about NLB on Windows Server 2003. It archives both of my interests now: scalability and high-availability. But I don't know about its power in production environment.
Is NLB a efficient solution?
How does it implement in real-world? Is it popular?
What are its limit?
Thank you so much for answering my questions. :)
NLB is a decently efficient solution but it has it's limits, too. IT works single data center only, so you better make sure you dont have an issue there - or multiple NLB'd clusters. NLB scalability limits are in the documentation - I thin it is around 32 computers. It is a good solution if you dont have a front end load balancer (like in the router in front). It is definitely bettter than DNS round robin which on one side is ignorant to computer utilization and on the other hand of computers down for maintenace.
NLB will NOT solve inherent scalability issues, but it will try (and do a decent job) to balance incoming connections to the different computers.
Is it popular? Not SO much. The main reason being that many high end routers have load balancing functionality already in there, and somehow people go for hardware. Is it unpopular? No. Is it a shame it is not more widely used? Yes.It is really a decent technology.
Btw., upgrade to 2008 R2 - your license covers that anyway (unless you PURCHASED licenses, then you are - in for waste as they are not usable for service providers AND more expensive than the monthly SPLA rental agreeement with Microsoft.... a web server for around 15 USD per month processor license, btw.).
There are many many ways to achive NLB, it's not a one size fits all and really depends on what service and application your working with.
Scaling is key to many large internet applications. You may find this talk from the facebook engineers interesting. http://fosdem.org/2010/schedule/events/scalingfacebook
It's sometimes more cost effective to use open source tools for clustering, per server licence fee's can cripple a startup. Don't even ask what a 2 million user client access licence will cost you ;-).
If you can identify where your bottlenecks are, you can concentrate on attacking these first for the greatest gains. No good scaling your front end http services, if all connections goto a overloaded and i/o bound mysql instance for example.