Skip to main content

Introduction

Overview

Runtime is the deployment manager in StackSpot. It is responsible for provisioning Cloud Application Infrastructure resources.

The Runtime Engine manages Application and Infrastructure configurations dynamically, reducing cognitive load during software development and delivery. This enables your organization to:

  • Avoid static configurations.
  • Establish standardization by design.
  • Abstract complexity for the developer, without disrupting workflow.

StackSpot Runtime Engine allows you:

  • Connect Cloud Provider to StackSpot.
  • Cloud resources provisioning using Terraform through Infra Plugins.
  • Make infrastructure available.
  • Deploy and rollback Applications and Shared Infrastructure.

Architecture

  • A. To use Stackspot in a CI/CD pipeline, you must install the STK CLI and configure a user (through the stk login command) and a Workspace (stk use workspace).

  • B. In Runtime, you can deploy an Application and Shared Infrastructure through STK CLI. Run the stk deploy app or stk deploy infra commands.

  • C. Runtime brings the data related to the Plugins, creating Applications, and Shared Infrastructure (where the Plugins were published through the STK CLI stk publish plugin command ).

  • D. To generate the IaCs, Runtime searches the Workspace for the client inputs data. This happens because the shared values in the context are configured in the Workspace.

  • E. Runtime checks the user repository to access the source code of the Application and the shared Infrastructure.

  • F. Runtime provisions the Infrastructure resources based on the IaC. This happens in the cloud account configured in the environment.

  • G. Runtime updates the Workspace context with the Connection Interfaces. These are resources provisioned in the deployment process.

Deployment

The Application and Shared Infrastructure deployment happens through Runtime Engine via STK CLI. It follows the Infrastructure as Code (IaC) concept.

Infrastructure as Code is the infrastructure provisioning and management through code instead of manual processes.

On StackSpot, the configuration files have the infrastructure specification. They are generated using Infra Plugins.

IaC files are generated when deploying Applications or Shared Infrastructure. The metadata, like .yamls, are sent to Runtime during deployment. After that, Runtime uses the STK CLI to generate the IaC files.

IaC files are generated for each deployed Plugin.

Key concepts

Runtime

A Runtime represents all the infrastructure resources (Cloud computing, storage, network and security) required to run an Application on a Cloud.

Aplicattion

A software developed to solve a business problem, materialized as source code in a repository. The app's settings are stored in the file stk.yaml.

You can create Applications with App or Infra Plugins.

Connection Interface

A Connection Interface represents a set of attributes required for connection to Cloud resources, provisioned through Plugin deployment. The Connection Interface can be an RDS instance host or an S3 bucket path.

Each Connection Interface references a type (Connection Interface Type), which specifies a contract with a list of attributes.

The attributes of Connection Interfaces can be used as inputs to other Plugins.

Connection Interface Type

It represents an output contract the provisioned Connection Interface through an Infra Plugin must follow.

The implementation of the Infra Plugin needs to respect this contract to share the Infrastructure resources provisioning via the Application (or Shared Infra) deployment.

Cloud Account and Provider

A cloud account represents a public cloud account, identified by a provider. This account is just a record used to identify where to deploy Apps or Infra projects.

You can connect or disconnect Cloud accounts from StackSpot accounts. You can also add or remove one or more environments in Workspaces.

Currently, the provider supported by StackSpot is: aws.

Run and Tasks

A run represents any operation performed at Runtime, such as deploy, destroy, or rollback.

The run happens nonparallel and returns an ID used to check the status later. A run has a set of tasks.

The types of run are:

  • Deploy
  • Rollback
  • Destroy

The statuses are:

  • Running
  • Succeeded
  • User error
  • Runtime error

A run task represents a specific operation related to a run. A run task is linked to the Plugins deployments.

The types of run task are:

  • IAC: creates an IaC for a Plugin.
  • Deploy: deploys a Plugin.
  • Destroy

The run task status are:

  • Pending
  • Ready to run
  • Running
  • Succeeded
  • Failed
  • Internal Error
  • Aborted

Deploy

  • The process to make an Application available.
  • Provisioning: Setting up infrastructure and making resources for a Shared Infra in a specific environment.

Rollback

Rollback works like a deployment but with a specific ID.

Rollback works like a deployment. When executing a Rollback, state a version to deploy again with the same IaCs generated in the version.

Destroy

It represents the "destruction" of a Shared Application or Infrastructure.

Next steps

Was this page helpful?