The ControlTier includes a number of facilities, libraries, tools and webapps each of which might be useful to manage applications and their infrastructure within your organization. Because applications differ so much and range in scale and complexity there is no one-size-fits-all management solution. Beyond the application differences, there are also a range of approaches, existing tools, scripts and procedures that you currently use or prefer.
ControlTier is designed as a framework to accommodate these differences in application architectures and management approaches and preferences.
Despite the differences noted above there are several activities that are common to most implementations that use ControlTier.
- Execute Commands
- CTL, ControlTier's Command dispatcher offers two ways to execute procedures in a distributed environment. ctl-exec lets you execute any ad hoc procedure be it a command or script. ctl is used to execute defined commands. The Utility Type Guide describes a number of useful utilities as a library of defined commands. Use the Jobcenter webapp to define jobs to run these ad hoc commands and scripts, as well as, defined commands declared in types. See Creating jobs. The Scripters cookbook contains lots of helpful tips.
- Publish Artifacts
- The ControlTier server includes a WebDAV repository useful for staging artifacts that will later be distributed during application updates or routine management. See the WebDAV Guide for information on accessing and using the WebDAV repository.
- Manage Deployment Cycle
- Each application component that has runtime state has a similar sequence of steps undertaken during deployment. They all need to be installed, started, stopped, and configured.
- Extending ControlTier
- ControlTier provides a number of extension points where you can plug in your own logic to control management actions. See the Workflow Development Guide for information on creating new types and defining your own commands.
Approaches for building solutions
ControlTier supports two approaches for creating solutions. We refer to these approaches as "script-driven" and "model-driven". While it's easiest to begin with the script driven approach and later move on to the model-driven one, they are not mutually exclusive and we often see a blending.
The script-driven approach is one where your shell scripts drive the execution of the management process.
Most application deployment and management is automated via shell scripts. Often these scripts start simple and grow in size, number and complexity as new requirements arise. You can simplify, and scale up your management scripts by tapping into the ControlTier infrastructure and toolbox. This approach is appropriate for when the process is still being worked out since it is easy to change inside the script.
The model-driven approach is one where the ControlTier model as defined by its types drives the execution of the management process.
ControlTier includes a number of pre-defined processes that you can configure to implement your application life cycle management. These processes are formally defined in the ControlTier type model as command workflows. The type model contains core abstractions for managing collections of long running services, as well as, concrete implementations. You can extend the ControlTier type model through creating subtypes, overriding or adding commands. This approach is useful to manage a well defined process using an established structure.