70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
|
|
# Canary Deploy Process
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
Deploy changes to the secondary server first (192.168.1.198), verify health, then deploy to the primary server (192.168.1.228). This reduces risk by catching issues before they affect the main system.
|
||
|
|
|
||
|
|
## Steps
|
||
|
|
|
||
|
|
### 1. Deploy to Secondary (Canary)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Deploy to secondary server only
|
||
|
|
TARGET_HOST=archipelago@192.168.1.198 ./scripts/deploy-to-target.sh --live
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Verify Health
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check health endpoint
|
||
|
|
curl -s http://192.168.1.198/health
|
||
|
|
|
||
|
|
# Check backend service
|
||
|
|
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.198 "sudo systemctl status archipelago"
|
||
|
|
|
||
|
|
# Spot-check the UI
|
||
|
|
# Open http://192.168.1.198 in browser, verify pages load
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Deploy to Primary
|
||
|
|
|
||
|
|
Once the secondary is healthy and verified:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./scripts/deploy-to-target.sh --live
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. Verify Primary
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -s http://192.168.1.228/health
|
||
|
|
```
|
||
|
|
|
||
|
|
## Quick Deploy to Both (Non-Canary)
|
||
|
|
|
||
|
|
If you're confident and want to deploy to both at once:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./scripts/deploy-to-target.sh --both
|
||
|
|
```
|
||
|
|
|
||
|
|
This deploys to 228 first, then copies the built artifacts to 198. Not a true canary — use the step-by-step process above for safer rollouts.
|
||
|
|
|
||
|
|
## Rollback
|
||
|
|
|
||
|
|
If the canary (198) shows issues, do NOT deploy to primary. Fix the issue first.
|
||
|
|
|
||
|
|
If primary (228) shows issues after deploy:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check logs
|
||
|
|
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 "sudo journalctl -u archipelago -n 50"
|
||
|
|
|
||
|
|
# Restart services
|
||
|
|
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 "sudo systemctl restart archipelago && sudo systemctl restart nginx"
|
||
|
|
```
|
||
|
|
|
||
|
|
## Post-Deploy Health Check
|
||
|
|
|
||
|
|
The deploy script automatically waits up to 60 seconds for the health endpoint to return 200 after deploying. If it fails, check the backend logs for errors.
|