Farm / NLB Topologies
The following section discusses the deployment of K2 components in a Farm/NLB topology. Due to the nature of a farm environment and its extensibility, the following is just an example of a basic farm set up. When implementing a farm topology, configuration of Network Load balancing is required.
Farm/NLB environment with a separate SQL Server
Farm Install | |
---|---|
User Machine | N/A |
NLB Web and Application Server(s) |
Internet Information Server (IIS):
|
SQL |
|
Considerations for a Farm Install
- The K2 Workspace (Deskop) and Web Services, K2 Management, K2 Designer and SmartForms Runtime sites are hosted on a common IIS server. An option is to install K2 Workspace (Deskop) and the K2 Web Services on a separate web server farm. This will lessen the impact of client requests through Workspace on the K2 Application Server. K2 strongly recommends the preferred method of keeping the K2 websites on the same physical server as the K2 application server.
- Network connection speed between the Application Server and the SQL server must be as fast as possible with as little latency as possible (physical servers should preferably be on the same Gigabit-backbone.)
- K2 recommends you do not geographically separate the SQL Server from the application servers since this can introduce performance issues due to low bandwidth or latency between the K2 application servers and the SQL server.
- The SQL Server can share physical resources with other SQL databases or SQL Server Instances on the same SQL server, or be located on a dedicated SQL server/instance, or be located on an Azure SQL DB.
- K2 recommends that SQL administrators track performance of the SQL server and address performance issues through standard Microsoft SQL Server scaling approaches.
- K2 Pass-Through Authentication (PTA) or Kerberos is required to pass user credentials between physical or logical servers.
- NLB can be configured by using either the operating system or specific hardware. In either case, NLB configuration should be completed before installing K2 smartforms. When installing components that will be load balanced, the installation must be performed on each machine independently.
Load Balancing
Network Load Balancing vs Clustering
NLB clusters dynamically distribute the flow of incoming TCP and UDP traffic among the clustered nodes according to a set of traffic-handling rules. NLB clusters provide a highly available and scalable platform for applications such as Internet Information Services (IIS), on which all K2 sites run. NLB is used for stateless applications (those that do not rely on any state of a request).
NLB and server clusters complement each other in complex architectures: NLB is used for load balancing requests between front-end Web servers while server clusters provide high availability for backend database access.
A server cluster is a collection of servers that provide a single, highly available platform for hosting applications. Applications, such as SQL, fail 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 high availability and disaster tolerance for mission-critical database management, file sharing, intranet data sharing, messaging, and general business applications. Failover clustering allows flexibility for adding and removing hardware in a geographically dispersed cluster environment, as well as providing improved scaling options for applications. You can deploy server clusters in a variety of different configurations, in particular:
- Single cluster configurations with dedicated storage.
- Multiple clusters on a storage area network (SAN), potentially with other Windows servers or operating systems.
Physical Network Environment and broadcast domains
Since a large installation typically uses more than one server in a load-balanced configuration, setting up the local network infrastructure can be more complex compared to a single server. This is because the Windows NLB technology causes multiple physical servers to appear as a single, logical server.
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 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. You must create a separate logical or physical network, such as a VLAN, so the larger amount of incoming traffic is not flooded to the network ports of other servers, 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 server involves a considerable amount of communication from the servers to the SQL database. Good connectivity to SQL is required. It is recommended that Web servers be dual-homed:
- One network adapter handling the incoming 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.
Installing or Upgrading Components
When installing or upgrading for load balancing, you must install K2 on each machine independently.
The NLB cluster is configured using the operating system and should be configured prior to installing and configuring the K2 environment.
Additional Resources for NLB
NLB FAQ: http://technet.microsoft.com/en-us/library/cc725691(v=WS.10).aspx