Architecture
From ControlTier
The ControlTier administrative framework is comprised of a server and a client. The server can run standalone to execute distributed commands. In this mode a user runs ad hoc commands via ctl-exec or Jobs via Ctlcenter running on a central host.
Alternatively, a user might install the client on remote hosts to run defined commands in CTL Modules. This administration host houses the module software and becomes a single point of control. Distributed command execution is invoked using SSH while artifacts and information needed by executing commands on the clients are retrieved via HTTP. Except for SSH and Java, ControlTier installers include all the needed components and provide a means to distribute and set up the server and client. Both the server and client software is based on Java and should work on most flavors of Unix (eg, Linux, Solaris, BSD) and NT-based Windows (eg, XP, Windows Server, Vista, etc). See System requirements.
The diagram above provides an overview to the ContolTier server and client components, their relationships and the network protocols they use. The rest of this document describes the system components for both the ControlTier server and client software.
Contents |
Server
The ControlTier server hosts a variety of services to support the automation activity running across the ControlTier managed hosts. The server components are implemented in web applications running in a Java servlet container. The server also includes stores to maintain files and resource model data. These services can configured to write the data to the file system on the server or optionally, to a relational database. As of 3.6.0, the server installation includes Jetty 6.1.21, Apache Jackrabbit, and two ControlTier webapps: Ctlcenter and Workbench, as well as, a variety of supporting open source frameworks and libraries.
The following sections describe each server component covering their role and function.
Central Command Dispatcher
The Central Command Dispatcher provides a centralized interface to the ControlTier command dispatcher. The Central Command Dispatcher acts as a network service that can trigger command execution in the distributed environment. These commands can be shell scripts or ControlTier workflows. These commands can be triggered to run just once, triggered by a schedule, or they can be named and become part of a central dashboard where they can run at a time of a user's choosing.
The Jobcenter webapp provides a graphical interface to the Central Command Dispatcher.
Modules
Formalized procedures can be defined in a command inside a Module. Multi-step processes can be defined as ControlTier workflows. ControlTier commands are defined in types and can encompass sequences of actions, across local or distributed resources. After their definition, commands are compiled into executable modules that can be distributed to the ControlTier client. Once installed, the commands in the module can be invoked via the command dispatcher.
Resource model
In ControlTier, one can describe their application as a set of interrelated resources. A resource model represents the structure and configuration of an application in its environment. Classes of resources are defined in types and their management procedures can also be described as workflows.
The Graphical resource editor and Graphical type editor are useful for defining and maintaining the resource model. ControlTier also supports the use of defining and managing the resource model as a set XML-based definition files. These XML files along with scriptable utilities, become a command line based method to managing the resource model.
Transforms
Transforms generate different representational views of the resource model. Transforms are defined in terms of template file, output path and a resource model scope. The transform service can run a transform on the fly, or they can be saved as "transform documents" that can be executed by ControlTier workflows. Representational views expose the resource model in a variety of formats useful to workflows or for sharing resource model information to other tools.
Transforms can be defined via the Graphical resource editor, where they can be developed and previewed. Transforms can also be defined as part of the resource model.
Application build artifacts, workflows and resource model data are made available via a file share service. These artifacts reside in a physical store exposed via WebDAV. Clients can access the files in the store via HTTP GET methods, while automated processes (such as builds) can load or remove items via WebDAV PUT and DELETE.
Apache Jackrabbit is included as part of the standard installation.
Event Logger
Activity conducted through ControlTier is logged to a centralized log facility. Each log message includes a variety of metadata describing the context of the event. This event context includes information like host, user and message as one might expect but also includes resource model context. Resource model context make correlating events possible and are part of how auditing can be made more relevant to by tying events to higher level concepts like processes and the affected business service. The logging system is built on Log4J and the ControlTier server exposes a Log4J socket appender that accepts report messages from ControlTier components.
Client
Any host targeted for automation activity has the ControlTier client software installed. Once the host is registered as a node on the ControlTier server, it becomes accessible to the command dispatching framework. The software components that comprise the client are described below.
Local Command Dispatcher
The client software provides a command and control dispatching framework that includes features such as script and workflow command dispatching, network abstracted distributed control, and a multitude of pre-built utilities needed for managing large scale environments.
- The ControlTier client is NOT a long running process. Once the executed command completes, the process exits. There is no idle process consuming system resources if a command is not running.
Resources
The client provides a local repository for resources that are managed on the client. This repository organizes the resources by their type and is structured to provide an operational workspace that can be used by workflows.
Modules
The command dispatcher supports a plug-in style architecture that allows additional functionality to be added. A ControlTier extension adds features to the dispatcher framework to access the resources in the server and exposes the Workbench web services as Ant tasks.
User interface
The ControlTier architecture supports two user interfaces: HTML and command line.
HTML
Workbench, Jobcenter and Reportcenter employ a DHTML/AJAX style graphical interface and assume an AJAX capable browser such as Firefox (See Supported browsers). The WebDAV webapp also makes it possible to directly explore repository via HTML and most any web client.
Command Line
The ControlTier client's are all accessible via a set of shell commands. These shell commands allow users to execute commands defined in automation modules and administrate the framework. See Category:Command-line_utilities
Network Protocols
The ControlTier platform employs standard network protocols to invoke commands and access resources on the server.
HTTP
HTTP(S): [target host] — connects-to → [admin host]
Client access to the server's webapps and resources is via HTTP. The default port is 8080.
If desirable, the server and client can be set up to use SSL.
SSH
SSH: [admin host] — connects-to → [target host]
Actions from the administration host are dispatched via outbound SSH commands to the target hosts. The default port is 22.
Part of the installation and setup of the client software is preparing the SSH key configuration to allow remote commands from the central host.
Log4J
LOG4J: [target host] — connects-to → [admin host]
Commands can record their activity over log4j. A log4j listener runs from the Reportcenter webapp. The default port is 1055.
Optional: LDAP Authorization
To simplify getting started with the server and client, the default configuration uses simple file-based authentication and authorization. For organizations that have an existing LDAP server and wish to manage user and role definitions there, the server and client software can be configured to use LDAP-based security. Both client and server use JNDI methods to access the LDAP server.
See: Category:Configuration section in the Installation Guide.
Installer
Because there are several pieces of software that must be installed and configured together correctly, the standard distribution employs an installer. This installer includes all the ControlTier software components and is driven by a single configuration file.
See Installation for details about the installer.
| ||||||||||||||
