Applications and Processes

3 minute readReferenceAutomation

Applications are modeled by providing information about their components and defining the processes that orchestrate the deployment of those components. CloudBees CD/RO supports both microservice applications and traditional applications with tiers.

Microservice applications

The diagram below depicts a microservice application.

In a microservice application, you can:

  • Deploy a microservice, using Helm charts, to Kubernetes clusters in different cloud providers.

  • Manage environment inventory visibility for microservice deployments to Kubernetes clusters.

  • Capture service definitions via Helm chart or YAML files.

    • Reference a helm chart via URL.

    • Reference a packaged Helm chart.

    • Ability to provide override values to Helm chart.

  • Deploy a microservice to a pre-provisioned Kubernetes cluster.

    • Support deployment strategies.

    • Support rollback of deployed resources.

  • Collect microservice deployment details and update inventory in CloudBees CD/RO:

    • The deployed container identity: name, URL and version.

    • Helm chart version.

  • Define process steps based on commands or scripts using the CloudBees CD/RO DSL, CloudBees CD/RO REST API, CloudBees CD/RO Perl API, Groovy, or JRuby. See CloudBees CD/RO Perl API Commands Overview for the commands and code samples.

Traditional applications

The diagram below depicts a three-tiered traditional application with web, application and database server (DB server) tiers.

In a traditional application, you can:

  • Define process steps based on commands or scripts using the CloudBees CD/RO DSL, CloudBees CD/RO REST API, CloudBees CD/RO Perl API, Groovy, or JRuby. See CloudBees CD/RO 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.

Application tiers

An application tier is a logical grouping of components, component processes, and application processes: * 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. * A component process is a set of actions to be taken on a specific component when the application is deployed. The set of steps in a process can be defined as: Direct commands. Calls to CloudBees CD/RO plugins, procedures, or utility functions. Component operations based on the component definition. Manual steps.

  • An application process is at the application (parent) level and 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 CD/RO 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

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 CD/RO 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 CD/RO 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.