Do I need another CI/CD for my infrastructure?
Tags: devops, cloud, beginners, tutorial
Published: 2022-02-07 04:19:06

Yes, we believe it's a good idea. While in an ideal world one CI system would be enough to cover all use cases, we don't live in an ideal world. Regular CI tools can get you started easily, but Terraform has a rather unusual execution model and a highly stateful nature. Also mind the massive blast radius when things go wrong. We believe Spacelift offers a perfect blend of regular CI's versatility and methodological rigor of a specialized, security-conscious infrastructure tool - enough to give it a shot even if you're currently happy with your infra-as-code CI/CD setup.

There are many challenges of running Terraform in a general purpose CI system. At the end of the day, it's mostly about two things - [collaboration](https://docs.spacelift.io/#collaboration) and [security](https://docs.spacelift.io/#security).

## Can I into my existing CICD process or system?

The short answer is Yes.

We can integrate with most of those tools. Although, your mileage may vary.

We realize that you may live and work in a world where you have to use existing tools and can't start from scratch. Or you may be forced to integrate with an existing CICD process or system. 

### Option 1
You can use the [spacectl command line tool](https://github.com/spacelift-io/spacectl) to easily call out to Spacelift from other CI/CD systems.

### Option 2
In a similar way, you can call out to other CI/CD systems from Spacelift in a Stack's [after_apply hooks](https://docs.spacelift.io/concepts/configuration/runtime-configuration#before_-and-after_-hooks).

### Option 3
Spacelift can optionally be set to send [webhooks](https://docs.spacelift.io/integrations/webhooks) - POST requests about run state changes - to an HTTP endpoint of your choice. 

You can find documentation on how to access the #graphql API [here](https://docs.spacelift.io/integrations/api).

You can see the details of available queries and mutations with their detailed documentation by using a client with native graphql support.

## Hello, Spacelift!

Take your infra-as-code to the next level!

Spacelift is a specialized, Terraform-compatible continuous integration and deployment (CI/CD) platform for infra-as-code. It's designed and implemented by long-time DevOps practitioners based on previous experience with large-scale installations - dozens of teams, hundreds of engineers and tens of thousands of cloud resources.

At the same time, Spacelift is super easy to get started with - you can go from zero to fully managing your cloud resources within less than a minute, with no pre-requisites. It integrates nicely with the large players in the field - notably [GitHub](https://docs.spacelift.io/integrations/source-control/github) and [AWS](https://docs.spacelift.io/integrations/cloud-providers/aws).

## Introduction to Main Concepts

We will briefly introduce some key concepts that you need to know to work with Spacelift. These concepts will be followed by [detailed instructions](https://docs.spacelift.io/getting-started#step-by-step) to help you create and configure your first run with Spacelift.

### Stacks
A stack is a central entity in Spacelift. It connects with your source control repository and manages the state of infrastructure. It facilitates integration with cloud providers (AWS, Azure, Google Cloud) and other important Spacelift components. You can learn more about Stacks in Spacelift [detailed documentation](https://docs.spacelift.io/concepts/stack).

### State Management
State can be managed by your backend or can be imported into Spacelift for Terraform projects. It is not required to let Spacelift manage your infrastructure state.

### Worker Pools
Spacelift provides public and private worker pools that execute Spacelift workflows. Public worker pools are managed by Spacelift whereas private pools are hosted by you. Due to security and compliance requirements, several of our customers choose private pools to manage their infrastructure. You can learn more about worker pools [here](https://docs.spacelift.io/concepts/worker-pools).

### Policies

Spacelift policies provide a way to express rules as code, rules that manage your Infrastructure as Code (IaC) environment, and help make common decisions such as login, access, and execution. Policies are based on the Open Policy Agent project and can be defined using its rule language Rego. You can learn more about policies [here](https://docs.spacelift.io/concepts/policy).

### Cloud Integration

Spacelift provides native integration with AWS, Azure and Google Cloud (GCP). Integration with other cloud providers is also possible via programmatic connection with their identity services. You can learn more about [cloud provider integration](https://docs.spacelift.io/integrations/cloud-providers) in Spacelift detailed documentation.

### Change Workflow

Spacelift deeply integrates with your Version Control System (VCS). Pull requests are evaluated by Spacelift to provide a preview of the changes being made to infrastructure; these changes are deployed automatically when PRs are merged. You can learn more about [VCS integration](https://docs.spacelift.io/integrations/source-control) here.

## Step-by-step
This section provides step-by-step instructions to help you set up and get the most out of Spacelift. If you want to learn about core concepts, please have a look at the [main concepts](https://docs.spacelift.io/getting-started#introduction-to-main-concepts) section.

You can get started with either forking our Terraform Starter repository and testing all Spacelift capabilities in under 15 minutes or you can explore Spacelift on your own by adding your own repository and going from zero to fully managing your cloud resources.

- [Use our starter repository to play with Spacelift (guide)](https://github.com/spacelift-io/terraform-starter)
- [Use your own repository (guide)](https://docs.spacelift.io/getting-started#first-stack-run)

## Free Trial

Our [free trial](https://spacelift.io/free-trial) provides 30 days of our enterprise tier if you want to kick the tires on Spacelift. If you get stuck or need advice, the Spacelift team is available to help.