Skip to main content

Introduction

In this section, you will find more details about Deploy Engine.


Overview

At StackSpot, there are two ways to deploy:

Below, you will find information about the StackSpot EDP Deploy Engine:

caution

The Deploy configuration flow and addition of Cloud accounts in StackSpot in this way is only available for:

  1. Enterprise accounts created before 2024.
  2. Accounts of type Personal.

Enterprise accounts created from January 2024 onwards must deploy via Self-hosted Runtimes.

The Deploy Engine in StackSpot is the deployment manager responsible for provisioning Cloud Application Infrastructure resources.

It dynamically manages Application and Infrastructure configurations, simplifying software development and delivery. It empowers your organization to:

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

StackSpot Deploy Engine allows you to:

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

Deploy Engine is available for Personal accounts, but with the following limitations:

  • Deployment of a maximum of 10 Plugins per Application or Infrastructure.
  • Limit of 10 executions per hour.

Architecture

An architecture diagram showing the process of using StackSpot in a CI/CD pipeline. It includes the installation of the STK CLI, user and Workspace configuration, Application and Infrastructure deployment, data retrieval from Plugins, IaC generation, repository checkout, Cloud resource provisioning, and Workspace context update.

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

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

  • 3. Deploy manages data related to Plugins, creating Applications, and Infrastructure (publish Plugins through the STK CLI stk publish plugin command ).

  • 4. To generate the IaCs, Deploy searches the Workspace for the client inputs data. You configure the shared values context in the Workspace.

  • 5. Deploy checks the user repository to access the application's source code and the Infrastructure.

  • 6. Deploy provisions the Infrastructure resources based on the IaC in the cloud account configured in the environment.

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

Deployment

Application and Infrastructure deployment occur through Deploy Engine via STK CLI, following 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 generated using Infra Plugins.

When you deploy Applications or Infrastructure, it generates IaC files. The metadata, like .yamls, are sent to Deploy during deployment. After that, Deploy uses the STK CLI to generate the IaC files.

IaC files are generated for each deployed Plugin.

Key concepts

See below some main concepts related to StackSpot's Deploy:

Runtime

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

Application

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) specifying a contract with a list of attributes.

You can use the attributes of Connection Interfaces 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.

Deploy

Deploy means making an application available for use or putting it online. For example, uploading files from your machine to a server, which can be a staging or production environment.

In the case of StackSpot, the deployment done on the platform makes the Application's infrastructure resources available in the desired environment. You need to deploy the Application itself through your Pipeline.

You can do two types of deployment on the StackSpot Platform:

  • Deploy via StackSpot: The StackSpot Platform orchestrate all the steps to provide your cloud resources.

  • Deploy via Self-Hosted: The Self-Hosted adds to your Workflow the steps to provide cloud resources using the Engine orchestration with your organization's runners. It only supports the GitHub Actions service. After deploying on StackSpot, you can track it on the platform through the Activities screen of the Application or Infrastructure. This way, you can see logs, identify errors, fix them, and even perform a rollback if necessary.

Cloud Account and Provider

A cloud account represents a public cloud account identified by a provider. This account is a record used to determine 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, such as deployment, destruction, 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
  • Aborted. Currently, this status is exclusive to Self-Hosted runner.

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.

Next steps

Now that you have an overview of Deployment in StackSpot, proceed to the initial setup, provisioning, and operation of Applications in the Cloud.