Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 39 additions & 2 deletions migrate/from-flightcontrol.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -132,9 +132,46 @@ Your organization has a module catalog that has our standard library of modules
| **S3 bucket**<br />`s3` | `rvn-s3` | Buckets with policies, encryption, versioning, and lifecycle rules. |
| **Job Scheduler**<br />`scheduler` or `fargate-scheduler` | Not available yet | Job scheduler support is still coming. |

## Migrating services
## Step-by-step migration

There is no one-click or automatic migration from Flightcontrol to Ravion. You recreate your config in `ravion.yaml`, provision or import each module in Ravion, and cut traffic over yourself. Migration is piecemeal. You move one service at a time and both platforms keep running side by side until you're done.

<Steps>
<Step title="Complete the human setup in Ravion">
Sign in to [Ravion](https://app.ravion.com) with your Flightcontrol credentials, then connect your AWS account and Git repository. Full checklist in [Start here](/start-here#human-setup).

Ravion and Flightcontrol share the same organization and memberships, but all other data is separate.
</Step>

<Step title="Draft your ravion.yaml with an AI agent">
Give your agent the [Docs MCP server](/mcp/overview), then paste your existing Flightcontrol config (for example `flightcontrol.json`) into the chat and ask the agent to produce a `ravion.yaml` draft.

Point the agent at [Start here (human + agent)](/start-here) and this page so it has the mapping table above and the [project config file workflow](/config-as-code/project-config-file#agent-tips).

Verify the draft against the mapping table before applying anything. `rvn-ecs-web` and `rvn-ecs-worker` both require an `rvn-ecs-cluster`, and `rvn-cloudfront` is now opt-in per service instead of always-on.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove this line

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

</Step>

Log into [Ravion](https://app.ravion.com) with your Flightcontrol credentials.
<Step title="Decide provision vs. import for each service">
- **Provision new in Ravion** for ECS services and static sites. It's easier to cut traffic over by updating DNS than to import running load balancers and CloudFront distributions.
- **Import existing** stateful resources like RDS, ElastiCache, S3, and CloudFront distributions you want to keep. Follow [Import into a standard module](/migrate/import-into-standard-module) or [Import into a Terraform Stack](/migrate/import-into-terraform-stack) — both include agent prompts.
</Step>

<Step title="Apply the config and set up pipelines">
Apply `ravion.yaml` with a dry run first, then for real. Ravion provisions the new infrastructure alongside your Flightcontrol resources in the same AWS account. Add pipeline config so builds and deploys run on push. See [Project config file](/config-as-code/project-config-file) and [Pipelines](/pipelines/overview).
</Step>

<Step title="Cut traffic over one service at a time">
Deploy the service in Ravion, verify it's healthy, then update DNS to point at the Ravion load balancer or CloudFront distribution. Leave the Flightcontrol service running until you've confirmed the cutover.

**Do not redeploy in Flightcontrol during migration.** New deploys go through Ravion from this point on. The Flightcontrol service keeps serving old traffic until DNS moves and you delete it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change this to only be for things that are imported. other like ecs can continue to be deployed via FC, no problem.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scoped it to imported resources only; provisioned-new services (ECS, static sites) can keep deploying via Flightcontrol until DNS moves.

</Step>

<Step title="Delete the migrated Flightcontrol services">

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we need a big warning here to not delete an imported service from FC, contact support to have us remove it from your account, we are working on self serve delete from FC without destroy

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a Warning in that step: never delete an imported service in Flightcontrol (it destroys the AWS resources Ravion now manages) — contact support to have it removed without destroy, self-serve coming.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but remove the stop deploying anything, that not accurate

Once each service is fully cut over, remove it from Flightcontrol so you're not paying for duplicate infrastructure. Stateful resources you imported into Ravion are already shared and don't need to be recreated.
</Step>
</Steps>

## Migrating services

**Ravion can be used alongside Flightcontrol at the same time**. They both use the same Organization and memberships, but all other data is separate. So you can migrate piecemeal, service by service, instead of all at once.

Expand Down
Loading