Concepts

From ControlTier

Jump to: navigation, search

Several fundamental concepts underly and drive the development of the ControlTier system. If you are a new user, knowing about them will help you use and integrate ControlTier into your environment.

Contents

Abstracted administration

In a nutshell, the idea behind abstracted administration is to separate environment detail from the procedures supporting deployment management. We consider deployment in a broad sense encompassing application systems, their supporting infrastructure and their environments. Through abstracted administration you ultimately manage deployments via a logical view giving you a means to contend with scale and complexity. Management procedures can be gradually abstracted at different levels.

Controltier-concepts-prism.png

Administrative framework

The vision of the ControlTier open source project is the development of an administrative framework where all activity needed for application deployment and administration can be supported. The framework supports activities like:

The framework is designed as a system of components providing features such as:

The framework provides a vital role in supporting the abstracted administration paradigm by acting as a common infrastructure to conduct service management activities.

Command dispatching

ControlTier supports a notion called Command dispatching wherein a user can specify an action (called a command) to be executed in the context of resource on any node where that resource has been associated. Internally, a mechanism called the command dispatcher does a lookup to find the nodes where the resource has been deployed and performs distributed command execution. The command executes in a data context that contains information about the target resource.

Command dispatch supports the abstracted administration paradigm by

The command dispatcher supports two methods of command execution

Resource model

The command dispatcher works in conjunction with a resource model. A resource model is a representation of the application in its environment. The resource model represents applications from several aspects:

The resource model plays a key role in supporting abstracted administration through helping abstract the environment and service configuration. The resource model lets you describe your application both logically, as a pattern of deployment, as well as physically, in the context of physical nodes and packages. Resource models are maintained in a project.

The resource model uses a Type modeling system to allow users to create a data model to represent their business services. The ControlTier project defines a set of core types that represent generic concepts needed to describe application systems. The Core Type Guide lists these types and pointers to reference and usage. The type modeling page describes the type system in greater detail.

Processes

When one thinks about the kinds of processes used to manage deployments, they will recognize various patterns of actions that will be performed. For example, packages need to be created, staged to a repository, distributed to hosts, extracted to installation directories, have steps applied pre and post installation. Likewise, long running processes need to be started and shutdown, have configuration prepared and applied. Later on, it may be desirable to coordinate the actions just described into a single step that can execute across a set of hosts.

ControlTier embodies and encapsulates these life cycles as process workflows. For example, activities supporting package management fall into workflows: creation and installation. Activities supporting service management fall into startup and shutdown. Life cycle workflows can build on other workflows providing a method to simplify procedures into larger but simpler steps. For example, the deployment life cycle for a service coordinates package installation with configuration management and startup and shutdown.

In ControlTier each life cycle is defined as a workflow command. A workflow command is a command definition that specifies a set of steps to run. Each step is defined as a command, too. Since a workflow is itself a command, workflows can call other workflows.

Representing procedures as life cycles is another key aspect supporting the abstracted administration paradigm. Life cycle workflows help abstract the process by defining consistent interfaces to routine activities. See the Module Development Guide for information about developing your own processes as a workflow.

Personal tools
Namespaces
Variants
Actions
Navigation
Communication
Development
Toolbox
Print/export