Introduction
In this section, you will find more details about Deploy Engine.
Overview
At StackSpot, there are two ways to deploy:
- Using the StackSpot EDP Deploy Engine;
- Using Runtimes via Self-hosted.
Below, you will find information about the StackSpot EDP Deploy Engine:
The Deploy configuration flow and addition of Cloud accounts in StackSpot in this way is only available for:
- Enterprise accounts created before 2024.
- 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.
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
-
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
orstk 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.