ControlTier Inc. > Open.ControlTier
 
Font size:      

Repository: Packaged Artifacts

Overview

Workbench's repository also supports the storage of packaged artifacts. These artifacts may be the product of an internally developed software build or orignate from a 3rd-party vendor. Workbench provides a graphical and scriptable interface to browsing the content of the repository. The repository is based on Apache Jackrabbit an implementation of standard web technology, called WebDAV, and is combined with Workbench's configuration metadata features. All package artifacts are accessible via HTTP and all storage operations can be done via a WebDAV client (eg, GET, PUT, DELETE, MKCOL).

Workbench: package repository

Built into the Workbench user interface is a tool called the Package Manager, which lets you search and browse all the uploaded package artifacts. The screenshot below shows a listing of matching packages that resulted from a repository search.

Workbench: package view

Packages are registered as an object in Workbench's configuration data repository. One of items listed above is expanded to show off the standard metadata for any package. Of course, you can extend this model to include your own attributes. Beyond attributes, you can also declare package relationships. An obvious package relationship is one that shows package-to-package dependencies. Relationships can also be used to group a set of packages based on a application service.

Example uses

Software Library

Workbench's Package Manager is a convenient tool to use as a package library for software, or any packaged artifact. You can populate the package repository by directly uploading 3rd-party packages or connect your build process to the package import utilities provided in ControlTier.

Workbench: package library

Each uploaded packaged artifact is also registered with a set of common metadata that describes version, owner, location, dependencies and installation information.

Package deployment

Combined with CTL, you can deploy packages using Workbench's package repository as a distributed store. Any kind of package can be stored and distributed from the repository. There's already built in suppport for common archive formats like RPM, PKG, JAR, WAR and even Zip and Tar/Gz. You can define your own kinds of package types when the need arises.

Workbench: package deployment

Workbench provides all the package metadata to CTL package life cycle commands to prepare, get, extract and finish. You can hook in your existing prepare and finish scripts, as well. A chief benefit to using CTL to deploy packages is large scale release management. CTL enables you deploy packages logically, letting you target just the machines where your integrated software system components are distributed.

Of course, any HTTP client can also access packages in the repository. For environments where the CTL software cannot be installed on target machines, you can use wget, curl or any other HTTP client to download files. You can also use the Workbench scripting interfaces to lookup packages and read their metadata.

See the Tutorials pages for information on how to use ControlTier for package deployment.

Tracking

Workbench can also be used to track packages. Tracking can be done at a couple of levels. You can use the metadata that describes each package in the repository to define its lifecycle state (eg. it's tested, deployed). You can also use the configuration data store to register where the package is currently deployed and for what component. This gives you convenient roll up views that tell you on what nodes and for which applications a given package is used.

Workbench: package tracking

Repository Interfaces

Input

Form-based GUI Workbench's Package Manager view lets you add new packages to the repository, letting you upload files, and define important metadata describiing the package file.
Workbench: form gui
Scripted You can script the bulk import of your existing packages into the repository.
Workbench: Scripted input
From build tools As the final step of any build, call the Workbench package import procedure to publish your release artifacts for later deployment.

Output

HTTP The backend store of the package repository is WebDAV enabling any HTTP client to download packaged artifacts.
Scripted Use CTL to script deployment of uploaded package artifacts.