Skip to main content

Key Concepts

Last updated on

This topic covers the fundamental concepts and terminology used in Harness Release Orchestration.

Release

A release represents a software delivery comprising different functions across teams, tools, and environments. Releases are modeled using processes that define the phases, activities, and dependencies required to complete the release.

Learn more: Releases Overview | Modeling Releases

Process

A process is a reusable blueprint that defines the structure of a release. It consists of phases, activities, dependencies, inputs, and variables. Processes can be created manually or using AI-based process creation.

Learn more: Processes Overview | Process Modeling | AI-Based Process Creation

Phases & Activities

A phase is a collection of activities which represents one logical group of functions. Phases are a logical grouping of activities within a release process. Phases represent major milestones or stages in the release lifecycle, such as "Planning and Coordination", "Testing and Validation", "Feature Flag Enablement", "Deployment", and "Monitoring". Phases can have dependencies on other phases.

An activity is a single unit of work within a phase. Activities can be of three types:

  • Automated Activity: An activity that encapsulates a pipeline. Th activity contains or references a Harness pipeline that executes automatically.

  • Manual Activity: An activity where users can create tasks, record their actions, and finalize their actions in a manual fashion. Used for approvals, sign-offs, and manual verification steps.

  • Subprocess Activity: An activity of process type, where a process can be referred within a process (called a subprocess).

Learn more: Phases Overview | Activities Overview | Automated Activities | Manual Activities | Subprocess Activities

Activity Store

The activity store contains a collection of reusable activities with inputs and outputs encapsulating the pipelines. Harness Release Orchestration provides activity stores where all the reusable activities pertaining to different processes can be modeled and selected. Activities can be reused across different processes, promoting consistency and reducing duplication.

Learn more: Activity Store | Reusable Activities

Input Store

The Input Store is a collection of inputs for every process. There can be different sets of inputs for the same process, allowing you to execute the release multiple times with different sets of inputs. The Input Store holds the concrete values for:

  • Process-level inputs
  • Phase-level inputs
  • Activity instance inputs within an execution
  • Each process can posses multiple inputs instances

Input Store is a centralized place to manage the configuration inputs required to run your processes. Each automated activity needs to have an input set.

Process Input Set: A collection of activity input sets that apply across the entire release process

Activity Input Set: Defines the inputs needed for a specific activity within a phase of the process. Each activity must be linked to one input set for the process to run successfully.

Learn more: Inputs and Variables Overview

Release Group & Release Calendar

A release group is a collection of releases created and executed in a certain cadence.

The release calendar provides a visual representation of all planned and scheduled releases. It helps teams coordinate releases and avoid conflicts.

Learn more: Modeling Releases

Variables

Inputs are parameters that are provided when creating or executing a process. Variables are values that can be used throughout the process and can be defined at different levels:

  • Global variables: Available across the entire process
  • Phase variables: Available within a specific phase
  • Activity variables: Available within a specific activity

Learn more: Inputs and Variables Overview | Global Variables | Phase Variables | Activity Variables

Process Execution

Process Execution refers to the actual running of a release. During execution, activities are executed according to their dependencies and configuration. The system tracks the status of each activity and the overall release progress.

Learn more: Executing a release | Activity Execution Flow | Parallel vs Sequential Execution