Overview

At its base, software deployment is a simple concept that sometimes gets obscured by jargon. A deployment is the process of moving software (broadly defined) through various preproduction stages to final production. Typically, each stage represents a step of higher criticality, such as quality assurance to production. Complexity arises from the sheer volume of things deployed, the number and variety of deployment targets, constantly-decreasing deployment cycles, and the ever-increasing rate of technological change. While virtualization provides some relief to the process, it also—perhaps paradoxically—increases the challenge with its exponential growth of deployment targets.

Serena Release Automation helps you meet the challenge by providing tools that improve deployment speeds while simultaneously improving their reliability. Serena Release Automation's release automation tools provide complete visibility into n-tiered deployments, enabling you to model processes that orchestrate complex deployments across every environment and approval gate. Serena Release Automation's drag-and-drop design tools decrease design-time by making it easy to visualize the end-to-end deployment process and develop the big picture—the What, How, and Where of the deployment workflow:

Deployment Process

In Serena Release Automation, deployable items are combined into logical groupings called components. Components are deployed by component processes which consist of user-configured steps, many taken from integrations with third-party tools called plug-ins. Multi-component deployments are handled by user-assembled applications.

Serena Release Automation represents deployment targets by what it calls resources. Resources—databases, servers, and so on—reside on hosts. Complex deployments can contain numerous components that target multiple hosts. Deployments are managed by agents residing on the hosts. Components can also remain independent of one another, which enables incremental or targeted deployments. Of course, you can model your components as you see fit—Serena Release Automation is flexible and works the way you work.

Server

The Serena Release Automation server is a standalone server that provides Serena Release Automation's core services such as the user interface, component and application configuration tools, workflow engine, and security services, among others. Many services are REST-based.

Serena Release Automation supports cross-network deployments with relay servers. Relay servers enable network-to-network communications.

Agents

An agent is a lightweight process that runs on a host and communicates with the Serena Release Automation server. Agents manage the resources that are the actual deployment targets. Each machine participating in a deployment usually has an agent installed on it. When not performing deployments, agents run in the background with minimal overhead (see Resources).

Repository

The Serena Release Automation-supplied artifact repository, CodeStation, provides secure and tamper-proof storage. It tracks artifact versions as they change and maintains an archive for each artifact. Associations between repository files and components are built-in and automatic.

Security

In Serena Release Automation’s role-based security system, users are assigned roles, and role-permissions are assigned to things such as projects, build configurations, and other resources. For example, a developer may be permitted to build a project, but only view non-project related material.