Your First Project
On a high-level, the steps you'll need to follow in order to deploy a project for the first time are:
- Create an account at Flightcontrol
- Connect your AWS account to Flightcontrol (create one if you need)
- Connect your GitHub account
- Create a Flightcontrol project from our Dashboard
Concepts
It might be useful to understand the different terms and the architecture we use:
Project
: It's the top level element of our architecture. It contains the configuration for the different Environments
and it is associated with a Github repository. It can only be created in the Flightcontrol Dashboard.
Environment
: The model that contains 1 or more Service
. It can be configured as a regular (long-lived) environment or as a preview environment (short-lived, spinned off when a pull request is opened).
Services
: The AWS service that you want to be contained within a given Environment
.
Deployment
: Each deploy of an Environment
will generate a Deployment
that attempts to deploy all child Services
. In the very first deployment, Flightcontrol will also configure the required AWS environment resources, depending on what is required by each service.
Supported services
At the moment, we support the following services:
- Web server
- Workers
- Scheduler & cron jobs
- Database using RDS
- Static websites using S3 and Cloudfront
- Redis using ElastiCache
Read more about each type here.
Configuring a Project
When you create the project in the Flightcontrol Dashboard, you can choose to configure it using (a) our UI or (b) by providing a flightcontrol.json
file, which needs to exist in the codebase you want to deploy.
During the project creation in the Dashboard, you'll select which repository to use as well as which type of configuration you prefer.
In the configuration, among other things, you'll configure an Environment
and which Services
you want to deploy. This configuration also includes how you want your changes to sync with Flightcontrol, either manually or on changes pushed.
See the config page for more info.