Deployment Guide
Note: Production infrastructure (VPC, ECS, Aurora, S3, IAM, Prefect API, etc.) is defined and deployed from this repository via Terraform (see
infra/platform/infra/envs/prod). This document focuses on the application-side pieces forblog_data.
How deployment works
Application deployment for blog_data is now handled entirely by CircleCI and
a Prefect deployer ECS task defined in Terraform in this repository:
- You push to
main,pipeline, orecsinrlhatcher/rocket-club. - CircleCI builds the
blog_dataDocker image and pushes it to theblog-dataECR repository tagged with the git commit SHA. - CircleCI runs the
deploy-to-prefectjob, which:- Assumes an AWS IAM role using STS.
- Starts a one-off Prefect deployer ECS task (defined in Terraform).
- That task clones
blog_data, installs it, and runsprefect deploy --allagainst the self-hosted Prefect API athttps://pipelines.rocketclub.online.
- The Prefect deployer script ensures the
blog-data-poolECS work pool exists with the correct base job template and updates all deployments using the new image tag.
Infrastructure (VPC, ECS services, ALB/CloudFront, Aurora, etc.) is provisioned and updated via Terraform in this repo; see the infrastructure docs for details.
Visual overview
For a high-level view of how the Prefect worker pool and CI/CD fit together,
see the generated diagrams (served from /diagrams/):
-
Prefect runtime:

-
CI & Prefect deployer:

These diagrams are generated from code using data/platform/generate_architecture_diagram.py.
See Pipelines Architecture for generation instructions.
Day-to-day deployment
For practical deployment tasks, use the following documents:
- CircleCI Setup Guide
- CircleCI Deployment Guide
- Quick Start Deployment
- Deployment Checklist
- Prefect Work Pool Configuration
This page is intentionally high-level – treat code and
data/platform/prefect.yaml as the source of truth for deployments.