<%@ page isELIgnored="true" %> <%@ taglib uri="cms" prefix="cms" %> Distributed Servers

Distributed Servers

Distributed Servers is a complimentary product to AnthillPro designed to reduce the reliance on WAN connections by performing all the heavy lifting (builds, etc.) on local networks. There are three main components to Distributed Servers:

  • Distributed Web Interface. The interface mirrors the AnthillPro server, providing the same information and functionality as the main server, for AnthillPro users.

  • Codestation 2.0. Allows off-site instances of the AnthillPro Distributed Server to locally store artifacts and other large data files. Codestation is included as part of the Distributed Web Interface installation.

  • Agent Relay (optional). The new communication relay acts as a proxy for agents (which perform work on behalf of the AnthillPro server) that are located behind a firewall or in another network location. Available under separate download.

When using Distributed Servers, the main AnthillPro server is first installed at the central location; the Distributed Web UI is installed at the off-site locations (i.e., if the main server is installed in New York, the Distributed Web UI could be installed in Boston, etc.); and then the Agent Relay (if being used) is installed at off-site locations. Finally, agents are installed. See Installing Distributed Servers.

Once installed, Distributed Servers are managed from within the AnthillPro UI on the System page. See Managing Distributed Servers.

While there are numerous ways to use Distributed Servers, there are a few recommended best practices. See Best Practices for using Distributed Servers.

Upgrading Distributed Servers

Beginning with version 3.6.3, AnthillPro provides an upgrade path for Distributed Servers. If you are using an older version (i.e., 3.6.2 or older), you will need to install version 3.6.3 in order to perform future upgrades.

Upgrade Distributed Web Interface

  1. Before performing the upgrade, stop the Distributed Servers and backup the Distributed Servers directory.

  2. Run the install script in the Distributed Servers installation package.

  3. When asked for the directory, give the directory the old version is installed in.

  4. The installer will ask you if you want to upgrade. Answer Y.

  5. Follow the instructions for an installation.

Upgrade Agent Relay

  1. Before performing the upgrade, stop the Agent Relay and backup the Agent Relay directory.

  2. Run the install script in the Agent Relay installation package.

  3. When asked for the directory, give the directory the old version is installed in.

  4. The installer will ask you if you want to upgrade. Answer Y.

  5. Follow the instructions for an installation.

Managing Distributed Servers

Management of Distributed Servers is performed on the System > Distributed Servers link under the Server menu.

On the Distributed Servers List page, the main AnthillPro server and any Distributed Servers are listed. The Active column indicates what servers are active. To activate an instance of Distributed Servers, or to edit settings, select the Edit under the Operations column. See Activate Distributed Servers and Edit Distributed Servers Settings.

Prerequisites: Managing Distributed Servers

  • The AnthillPro server, Distributed Web Interface, and Agent Relay (if in use) must already be installed. See Installing AnthillPro and Installing Distributed Servers.

  • You must have access to the main AnthillPro server, including permissions to manage Distributed Servers.

Activate Distributed Servers

Once the Distributed Web Interface has been installed (see Installing Distributed Servers), it will appear on the Distributed Server List page (go to System > Distributed Servers to view). If you can't access the System page, that means you do not have the appropriate permissions. Please contact your AnthillPro administration if you need to activate a Distributed Server.

By default, only the user with System Administration role may activate a Distributed Web Interface.

To activate an instance of Distributed Servers:

  1. Go to the main AnthillPro server.

  2. On the System page, select the Distributed Servers link under the Server menu.

  3. Select the Edit icon under the Operations menu of the Distributed Server to be activated. Inactive Distributed Servers are indicated by a brown icon under the Active menu.

  4. When the Edit dialog opens, check the Active box. If you are unable to check the box, that means you do not have the appropriate permissions to activate the Distributed Server. Please contact your AnthillPro administrator.

  5. By default, the Accessible by All box is checked. This allows all AnthillPro users to log into the distributed server, regardless of the access permissions (see Edit Distributed Server Settings).

  6. Click Save if not setting permissions. Otherwise, see Edit Distributed Servers Settings.

Edit Distributed Servers Settings

  1. Go to the main AnthillPro server.

  2. On the System page, select the Distributed Servers link under the Server menu.

  3. Select the edit icon under the Operations menu of the Distributed Server that permissions are being set for.

    If the Distributed Server is inactive, see Activate Distributed Servers.

  4. When the Edit dialog opens, assign permission to the appropriate Roles (see Distributed Servers: Best Practices for Setting Up Users).

    Note that the Accessible by All option overrides any permissions set below. See Activate Distributed Servers.

    • Manage. Determine which roles are able to manage this Distributed Server instance and set security.

    • View. Select the roles than can view this Distributed Server instance on the list page.

    • Access. Determine which roles can log into this Distributed Server instance.

  5. Click Save.

Best Practices for Using Distributed Servers

While Distributed Servers can be used in a number of ways, the following best practices will help guide you when setting up and using AnthillPro in a distributed environment:

Distributed Servers: Best Practices for Installation

While there is no particular order to installing Distributed Servers, the following sequence is typically followed:

  1. Install the AnthillPro main server. See Installing AnthillPro.

  2. Install the Distributed Web Interface. The interface is typically installed on a different LAN than the server. This enables administrative personnel to isolate the work performed by teams using the Distributed Web Interface, and restrict the actions users perform (such as builds, deployments, etc.) to the LAN they are assigned to.

    The interface may be installed on either a Windows or Linux/Unix machine, regardless of the OS used when installing the main server (e.g., the AnthillPro server may be installed on a Windows machine and the Distributed Web Interface may be installed on a Linux/Unix machine and vice versa). See either Install Distributed Web Interface (Windows) or Install Distributed Web Interface (Linux/Unix).

  3. Install the Agent Relay. The relay is typically used when agents are to be installed behind a firewall or in another network location. If an instance of the Distributed Web Interface requires special hardware or software housed outside of the LAN, the relay allows agents to connect to the main server using a single port. So, any agent installed anywhere in the AnthillPro system (no matter of location) will use a single port (the relay) when contacting the central server. This makes it easier when dealing with firewalls and connecting between networks.

    The Relay may be installed on either a Windows or Linux/Unix machine, regardless of the OS used when installing the main server and Distributed Web Interface (e.g., the AnthillPro server may be installed on a Windows machine; the Distributed Web Interface may be installed on a Linux/Unix machine; and the Relay may be installed on a Windows machine, etc.). See either Install Agent Relay (Windows) or Install Agent Relay (Linux/Unix).

  4. Install Agents. Typically, install the Agents on the same network as the Distributed Web Interface, and configure them to receive work only from that server. This will result in AnthillPro running builds, etc., within the same LAN. Any number of agents may be installed along with the Distributed Web Interface, creating a "virtual" server that works "independently" from the main server. However, depending on your organizations distributed network, some agents on other networks may be necessary to complete a process (e.g., to build a project that requires special hardware, etc.). See Distributed Servers: Best Practices for Project Set Up.

    The Agent(s) may be installed on either a Windows or Linux/Unix machine, regardless of the OS used when installing the main server; Distributed Web Interface, or Agent Relay (e.g., the AnthillPro server may be installed on a Windows machine; the Distributed Web Interface may be installed on a Linux/Unix machine; the Relay may be installed on a Windows machine; and the Agent may be installed on a Unix machine, etc.).

    Once an agent is installed, it must be configured with the appropriate Distributed Server, which is a simple process. See Distributed Servers and Agent Configuration.

Distributed Servers: Best Practices for Project Set Up

With Distributed Servers, AnthillPro projects are set up in the same way as before; however, to maximize the use of Distributed Servers, there are some helpful tips to keep in mind:

  • Source Code. Whenever possible, create a project that pulls source code from a repository located on the same LAN as the Distributed Web Interface. See Distributed Servers: Best Practices for Source Management.

  • Builders and other tools. As with Source Code, install all the builders, testing tools, and other software used to build, test and deploy a project within the same LAN as the Distributed Web Interface. This will help isolate the project within one LAN.

  • Users. Restrict users to use an instance of the Distributed Web Interface installed on the LAN they are a part of. This will ensure that users can only perform actions within their LAN, and reduce reliance on WAN connections. See Distributed Servers: Best Practices for Setting Up Users.

  • Agent Selection. When setting up a project to use agents, select agents that are installed on the same LAN as the Distributed Web Interface, and then ensure that users that can access the agent are also on the same LAN. However, if there is a situation where an agent outside of the local network is necessary (e.g., if special hardware is needed) to perform the process), try decomposing the job so that as few steps as possible are run on the remote agent. This will minimize WAN usage.

  • Agent Relay. For projects that must be built on an agent located behind a firewall or on a different LAN, use the Agent Relay. With the relay, only one port is used for all communication between agents and the central server.

Distributed Servers: Best Practices for Source Management

It is recommended that the source code used for builds be stored in the same LAN as the Distributed Web Interface. When this is done, builds will be isolated to the LAN in which the Distributed Web Interface is installed. All work will then be performed within the same LAN, without having to open a WAN connection to the central server.

In order to accomplish this, it may be necessary to install another version of your SCM at the off-site location (i.e., within the same LAN as the Distributed Web Interface) that contains the appropriate source. The source stored at the off-site location should mirror the projects that team members use when accessing the Distributed Web Interface. For example, if a team in Boston works on Project A, set up a repository in Boston that contains Project A. When team members call for a build, the source will be taken from the local repository and work will be performed using LAN connections.

Dependency management is automated when using Distributed Servers, so if a dependency is required -- say a project located in a different LAN -- AnthillPro will automatically open a WAN connection to resolve the dependency as part of the build, etc. Once the dependency is satisfied, the build, etc., will take place within the LAN that the request originated. For example, if a build of Project A, with its source in Boston, is dependent on a project with source located in New York, AnthillPro will automatically open a WAN connection to the New York server to resolve the dependency. Then, the build will be performed on the Boston instance of AnthillPro.

Distributed Servers: Best Practices for Setting Up Users

Once the roles have been assigned for the Distributed Server (see Edit Distributed Servers Settings), assign users to roles using the AnthillPro security system (see Add Users). As a best practice, restrict users to perform work within the same LAN as the Distributed Web Interface they use.

This may be accomplished by either creating a specific role for users (see Define Roles), based on their geographic location, or my determining permissions on the Distributed Servers list page (see Edit Distributed Servers Settings).