BitzOrcas does not copy its local orchestration directly into one mandatory production topology. AppHost is for development. Production deploys API, JobHost, and optional Gateway independently, while the platform supplies databases, messaging, cache, secrets, and OTLP.
Host boundaries
| Host | Responsibility | Production use |
|---|---|---|
BitzOrcas.Api | HTTP, authentication, authorization, endpoints, lightweight fallback scheduling | Independent deployment |
BitzOrcas.JobHost | Quartz, workflow, audit retention, background work | Independent deployment |
BitzOrcas.Gateway | Optional edge entry point | Profile/topology dependent |
BitzOrcas.AppHost | Local Aspire orchestration | Not a production artifact |
ServiceDefaults | OTel, health checks, service defaults | Referenced by Hosts; not a process |
Typical production dependencies
Ingress / Gateway → API → SQL Server → RabbitMQ / CAP Outbox → Redis → S3-compatible object storage → OTLP Collector
JobHost → SQL Server / RabbitMQ / Redis / S3-compatible object storage / OTLP CollectorProfiles and enabled modules determine the actual dependencies. The repository does not declare Kubernetes or one cloud template as the only production deployment method; infrastructure code needs review and rehearsal in the target environment.
Release sequence
- Prepare secrets, connection strings, License public keys, and persistent DeploymentId.
- Back up the database and apply unapplied migrations in order.
- Deploy API/JobHost without production traffic.
- Verify liveness, readiness, License state, and OTLP.
- Run Commercial GA for packaged delivery or the relevant CI/acceptance for source delivery.
- Shift traffic gradually and watch errors, latency, queue backlog, and database signals.
- Roll back at stop conditions; remove the old version only after observation.
See also
- Deployment methods
- Local Aspire
- 1Panel Linux development preview
- 1Panel OpenResty blue-green
- Database initialization and migrations
- Production configuration
- Monitoring and alerting
- CI/CD
- Commercial GA gate
- Production security checklist
Minimum release evidence
Retain source commit, image or package digest, configuration version, migration list, SBOM/provenance, gate reports, approvers, start/end time, and rollback version for every release. Keep secret values out of the packet; record only their controlled version or reference.
# ① Verify public health semantics before traffic; never promote when ready fails.curl -fsS "$CANDIDATE_URL/health/live"curl -fsS "$CANDIDATE_URL/health/ready"
# ② Record an immutable image digest rather than a movable tag.docker inspect --format='{{index .RepoDigests 0}}' "$IMAGE"API and JobHost should reference one release batch while scaling and rolling back independently. Database migrations do not automatically roll back with an application image; every destructive change needs a forward fix or explicit recovery procedure.
Chapter Navigation
- 01/12
Deployment Method Selection
Choose between systemd single-host, docker-compose, and Kubernetes release paths, and understand migration, startup, and rollback ordering across the three Hosts.
- 02/12
Local Aspire Orchestration
Use BitzOrcas.AppHost to orchestrate SQL Server, RabbitMQ, Redis, MinIO, schema initializers, LicenseSigner, API, JobHost, and the Vite frontend.
- 03/12
Database Initialization and Migrations
How lock-safe --init-schema, /host/schema review scripts, and Host-Admin drift notifications work together.
- 04/12
CI/CD and Quality Gates
Understand the current GitHub Actions pipeline, test layers, Consumer contracts, and commercial GA gate in BitzOrcas.
- 05/12
AWS deployment design (Terraform not shipped)
Map BitzOrcas runtime dependencies to AWS and define acceptance criteria without implying that a supported Terraform module ships today.
- 06/12
Backup, restore, and disaster rehearsal
Define RPO/RTO, recovery order, and rehearsals for databases, objects, messaging, Redis key rings, configuration, and artifacts.
- 07/12
Production configuration and startup guards
Organize non-secret configuration, secrets, provider selection, cache warmup, validation, and rolling-release evidence for API and JobHost.
- 08/12
Monitoring, alerting, and runbooks
Turn OpenTelemetry signals, SLIs/SLOs, and dependency backlogs into actionable alerts with an attached recovery runbook.
- 09/12
GA cutover runbook
The operator runbook for promoting a BitzOrcas release to GA — pre-cutover gate, configuration and secrets, migration sequences, health checks, Operations verification, Webhook drill, traffic cutover, rollback, and the post-cutover record.
- 10/12
Alert runbook
Concrete alert thresholds, per-signal diagnostic runbooks, and the monitoring-system integration matrix. The template defines thresholds; an external monitoring system scrapes OTel and fires the alerts.
- 11/12
1Panel Linux Development Preview
Deploy a BitzOrcas Development preview on Linux with 1Panel, OpenResty, SQL Server, Redis, RabbitMQ, MinIO, and AgileConfig—including pack, deploy, seed flags, and login troubleshooting.
- 12/12
Single-host blue-green on 1Panel OpenResty
Switch a single-host BitzOrcas pair through a named OpenResty upstream so 1Panel reverse-proxy sites do not pin port 8082 or reject upstream blocks.