Full-Stack Dependency View

4 minute read

The full-stack dependency view helps you to visualize and manage dependencies in application models. In distributed environments, different teams can author applications and manage the infrastructure, which means that managing dependencies across the stack is crucial. This view shows the mapping between application tiers and environment tiers so that you can verify that the infrastructure capabilities can support the minimum application requirements.

Viewing Dependencies and the Stack Comparison

The full-stack dependency view shows the mapping of application tiers to environment tiers in an application model. This lets you compare application tier requirements to environment tier capabilities for a tier mapping. There are two ways to access this view:

  1. From the Applications list, click the tier maps button (tier maps) button for an application and then select a tier map:

    The tier map appears:

  2. Click either an application tier or an environment tier for each mapping pair. The stack comparison view appears. See Stack Definition for more information.

You can click on either tier in a tier mapping to see the currently set values for application requirements and environment capabilities. This provides a side-by-side comparison to see if any application requirements are out of compliance.

Stack Definition

When you are modeling an application, you have a target environment in mind. You might be modeling an application that is compute-intensive or data-intensive. For optimal performance, the application should run in an environment with 4 cores and 32 GB of RAM. If the application is deployed to an environment with one core and 8 GB of RAM, the application deployment might take a long time to run or might fail due to timeout errors.

You can define application requirements and environment capabilities such as:

  • Supported platforms

  • Hardware requirements

  • Database requirements

  • Disk usage

  • Memory usage

Modeling Application Requirements

  1. Click ( the tier menu) in an application tier, and then click Requirements:. The Tier Requirements dialog box opens.

  2. In the Tier Requirements dialog box, enter the requirements for the tier. For example:

  3. Click OK.

  4. Repeat these steps to define the requirements for the other application tiers.

Modeling Environment Capabilities

You define capabilities per environment tier.

  1. Open the Environment Editor for the environment that you want to model.

  2. Click (the tier menu) in an environment tier, and then select Capabilities. The Tier Capabilities dialog box opens.

  3. In the Tier Capabilities dialog box, enter the capabilities for the tier. For example:

  4. Click OK.

  5. Repeat these steps to define the capabilities for the other environment tiers.

Modeling Infrastructure and Middleware Capabilities

CloudBees Flow also allows the modeling of infrastructure and middleware capabilities for resource templates as well as environment tiers.

  1. Go to the Resource Templates list and then select any resource template. If no resource template exists, create one.

  2. Click for a resource template, and then select Capabilities. The Resource Template Capabilities dialog box opens. This dialog box lets you capture the infrastructure and middleware details.

  3. You can model many attributes for the resource template. Some examples of these attributes are:

    • Application Server:

      • Product

      • Vendor

      • Version

    • Database Server:

      • Product

      • Vendor

      • Version

    • Host:

      • Architecture

      • CPU

      • Disk size

      • Memory (RAM)

      • Number of CPUs

      • Public IP

      • Private IP

    • Operating System:

      • Operating System

      • Operating System Type

      • Vendor

      • Version

    • Virtual image:ROOT:

      • CPU

      • Virtual Image Name

      • Memory (RAM)

      • Public IP

      • Private Subnet Mask

      • Private IP

        This list is extensible and more modeling attributes can be added. These attributes let you model infrastructure and Middleware as well as hardware capabilities. These can then be used to compare with the requirements defined on the application tier level.

Stack Templates

A stack template defines the categories of resources (such as Application Server) that are available when you specify the requirements for an application tier. Within each category, the stack template specifies the available properties (such as Jetty).

The Default Stack Template

A property named ec-deploy under Administrator > Server > Properties contains a property sheet named ec_stack_templates, which contains several default categories: Application Server, Database Server, Host, Operating Systems, and Virtual Image, each of which contains several properties that you want to capture. For example, the Host category has properties such as memory and num_cpus for capturing a system’s memory and number of CPUs.

Modifying the Default Stack Template

You can add more properties. You can also create new categories. For example, you could create a category named Operating System and then beneath it, you could create a type that says whether it is a Linux or a Windows system.

A stack template does not contain values. It just determines the values that you want to capture from an application standpoint and from an environment standpoint. The values are stored as attributes.

You can specify two types of values: string or text values and a list of values. For example, to capture the operating system type, you could define a list of the following values: Linux, Windows, AIX, and Lattice.

To prevent a CloudBees Flow upgrade from overwriting customizations of the existing ec_defaultStackTemplate, you must copy that template into a new one. Then, you must set the ec_deploy/ec_defaultStackTemplate server property with your new template name.