Deployment
The platform runs on a single GCP Compute Engine VM. Deployments pull the latest code from main and restart the Dagster services.
How to Deploy
From your local machine, run:
make deploy
This executes over an IAP-tunneled SSH connection and runs the following steps on the VM:
git pull— pulls the latest code from themainbranch.uv sync— installs any new or updated dependencies.systemctl restart dagster-code— restarts the gRPC code server.systemctl restart dagster— restarts the Dagster daemon.
Both git pull and uv sync run as the dagster user. The service restarts run as root via sudo.
Prerequisites
- Google Cloud SDK installed and authenticated (
gcloud auth login). - IAP permissions — your Google account needs the
IAP-secured Tunnel Userrole on the project. - Changes must be merged to
mainbefore deploying. The VM always tracks themainbranch.
SSH Access
To open an interactive shell on the VM:
make ssh
This tunnels through IAP. The VM has no external IP, so direct SSH is not possible.
Rollback
There is no automated rollback. To revert a deployment:
- SSH into the VM:
make ssh - Switch to the dagster user:
sudo -u dagster bash -
Revert to the previous commit:
bash cd /home/dagster/data-platform git log --oneline -5 # find the commit to revert to git checkout <commit-sha> -
Restart services:
bash sudo systemctl restart dagster-code sudo systemctl restart dagster -
Verify services are running:
bash sudo systemctl status dagster-code dagster
Once the fix is merged to main, run make deploy again to move back to tracking HEAD.
What Gets Deployed
The deploy target only updates application code and Python dependencies. It does not update:
- Infrastructure — Terraform changes require
terraform apply(see Infrastructure). - Systemd unit files — changes to service definitions in
infra/files/require manually copying them to/etc/systemd/system/and runningsystemctl daemon-reload. - Dagster configuration — changes to
dagster.yamlrequire copying to/var/dagster/home/and restarting services.