Network Load Balancing
Network Load Balancing (NLB) is the approach used to install a farm of physical K2 application/web servers that are presented to the network as one logical resource. This farm-based topology that utilizes NLB makes it possible to scale out your K2 environment merely by adding additional physical machines to the NLB node.
Network Load Balancing vs Clustering
NLB dynamically distribute the flow of incoming TCP and UDP traffic among the cluster nodes according to a set of traffic-handling rules. NLB clusters provide a highly available and scalable platform for applications such as IIS. NLB is used for stateless applications; i.e. those that do not rely on any state as a result of a request.
A server cluster is a collection of servers that together provides a single, highly available platform for hosting applications. Applications can be failed-over to ensure high availability in the event of planned downtime due to maintenance or unplanned downtime due to hardware, Operating System or application failures. Server clusters provide a highly available platform for applications such as SQL Servers. Server clusters are used for stateful applications that rely on some state context from one request to the next. Server clusters provide high availability and disaster tolerance for mission-critical database management, file sharing, intranet data sharing, messaging, and general business applications.
With Windows Server 2008 R2 with SP1 and onwards, failover clustering allows flexibility for adding and removing hardware in a geographically dispersed cluster environment, as well as providing improved scaling options for applications.
NLB and server clusters complement each other in complex architectures: NLB is used for load balancing requests between front-end or application servers, while server clusters provide high availability for back-end database access.

Since a large installation typically uses more than one Web server in a load-balanced configuration, setting up the local network infrastructure can be more complex than setting up a normal Web application system. This is because the Windows NLB technology causes multiple Web servers to appear as a single server. As a result, the network infrastructure must support the creation of multiple broadcast domains (virtual local area network, or VLAN) to segment incoming Web requests from the main production network.
NLB broadcasts incoming traffic destined for the servers in an NLB group to all ports within their network collision domain (in this case, VLAN). In normal Web server deployment scenarios, the incoming traffic typically consists of a small number of HTTP GET requests and this may not be an issue. However, K2 blackpearl and SharePoint network traffic may consist of large documents moving between servers.
As a result, it is imperative that the NLB adapters for the Web servers are not connected to the normal server network. A separate logical or physical network, such as a VLAN, must be created so the larger amount of incoming traffic is not flooded to the network ports of other servers, thereby causing performance degradation on all servers within the network, not just the Web servers.
Furthermore, traffic to and from a SharePoint site or the K2 Workspace involves a considerable amount of communication from the Web servers to the back-end servers running SQL Server; good connectivity between them is required. It is therefore recommended that Web servers be dual-homed:
- One network adapter handling the incoming Web requests by using NLB.
- One network adapter acting as a normal server adapter to communicate to the server running SQL Server along with the other servers within the infrastructure, such as domain controllers for authentication purposes.

When installing K2 in a NLB environment, the installation must be performed on each physical machine independently, using the Farm installation option. When installing additional components in a load-balanced environment, those components should be pointed to the K2 Server NLB cluster. IN other words, component is pointed at the NLB name and not the individual machines within the NLB cluster.

- NLB FAQ: http://technet.microsoft.com/en-us/library/cc725691(v=WS.10).aspx
- For performance considerations regarding K2 and NLB environments see Performance Considerations.