Applications and Processes

2 minute read
Applications are modeled by providing information about their components and defining the processes that orchestrate the deployment of those components. An application object in CloudBees Flow consists of one or more application tiers. For example, MyApp is a three-tiered application with the Web, Application and database server (DB server) tiers.

An application tier is a logical grouping of components. Each tier contains components. A component is based on an artifact and contains a reference to that artifact. This can be through the file system or an artifact repository. The application tier also contains component processes. A component process is a set of actions to be taken on that specific component when the application is deployed. The set of steps in a component process can be defined as

  • Direct commands

  • Calls to CloudBees Flow plugins, procedures, or utility functions

  • Component operations based on the component definition

  • Manual steps

Application processes are at the application (parent) level. These processes are invoked to orchestrate operations against the application. The steps in an application process can be defined as:

  • Calls to component processes

  • Direct commands

  • Calls to a CloudBees Flow plugin, procedure, or utility function

  • Manual steps

  • A rollback step to roll back to a previous state or to a specific snapshot

Properties and parameters allow the same application to be deployed to many environments in a repeatable, reliable, and scalable way. They are used extensively throughout CloudBees Flow and can be dynamically passed to all operations, including application deployments.

  • Properties provide a flexible and powerful mechanism to manage data during all operations. They can be attached to any CloudBees Flow object, such as applications, processes, tiers, components, and credentials. See Properties for more information.

  • Parameters provide a way to get input from users at runtime to deploy the application to a variety of environments. Parameters can be attached to processes, process steps, components in the application. See Deployment Examples and Parameters for more information.

See Deployment Examples for examples of how to author and deploy an application in the UI.

In an application, you can also :
  • Define process steps based on commands or scripts using the CloudBees Flow DSL, CloudBees Flow REST API, CloudBees Flow Perl API, Groovy, or JRuby. See CloudBees Flow Perl API Commands Overview for the commands and code samples.

  • Create a library of standardized reusable components to promote best practices across the enterprise and speed up application authoring with master components. See Master Components for more information.

  • Save snapshots of the application throughout the software release process. A snapshot is an immutable version of an application with specific artifact versions that can be used to optimize and troubleshoot the application. See Snapshots for more information.

  • Track changes for non-runtime objects such as projects, applications, environments, processes, components, artifacts, resources, and properties in the Change History. See Change Tracking for more information.