acc-create-deploy-strategy
1
总安装量
1
周安装量
#52040
全站排名
安装命令
npx skills add https://github.com/dykyi-roman/awesome-claude-code --skill acc-create-deploy-strategy
Agent 安装分布
opencode
1
claude-code
1
Skill 文档
Deployment Strategy Generator
Generates deployment configurations for zero-downtime deployments.
Blue-Green Deployment
GitHub Actions
# .github/workflows/deploy-blue-green.yml
name: Blue-Green Deploy
on:
push:
tags: ['v*']
workflow_dispatch:
inputs:
environment:
description: 'Target environment'
required: true
type: choice
options: [staging, production]
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build:
runs-on: ubuntu-latest
outputs:
image_tag: ${{ steps.meta.outputs.tags }}
steps:
- uses: actions/checkout@v4
- name: Build and push image
uses: docker/build-push-action@v5
with:
push: true
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: ${{ github.event.inputs.environment || 'production' }}
url: ${{ steps.deploy.outputs.url }}
steps:
- uses: actions/checkout@v4
- name: Determine target environment
id: env
run: |
ACTIVE=$(curl -s https://api.example.com/active-env)
if [ "$ACTIVE" = "blue" ]; then
echo "target=green" >> $GITHUB_OUTPUT
echo "url=https://green.example.com" >> $GITHUB_OUTPUT
else
echo "target=blue" >> $GITHUB_OUTPUT
echo "url=https://blue.example.com" >> $GITHUB_OUTPUT
fi
- name: Deploy to inactive environment
id: deploy
env:
TARGET: ${{ steps.env.outputs.target }}
IMAGE: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
run: |
# Deploy to target environment
ssh deploy@${{ secrets.DEPLOY_HOST }} << EOF
docker pull $IMAGE
docker-compose -f docker-compose.$TARGET.yml up -d
EOF
echo "url=${{ steps.env.outputs.url }}" >> $GITHUB_OUTPUT
- name: Health check
run: |
for i in {1..30}; do
if curl -sf "${{ steps.env.outputs.url }}/health"; then
echo "Health check passed"
exit 0
fi
sleep 10
done
echo "Health check failed"
exit 1
- name: Run smoke tests
run: |
npm run test:smoke -- --base-url="${{ steps.env.outputs.url }}"
- name: Switch traffic
if: success()
run: |
curl -X POST https://api.example.com/switch-traffic \
-H "Authorization: Bearer ${{ secrets.DEPLOY_TOKEN }}" \
-d '{"target": "${{ steps.env.outputs.target }}"}'
- name: Rollback on failure
if: failure()
run: |
echo "Deployment failed, keeping traffic on current environment"
curl -X POST https://api.example.com/rollback \
-H "Authorization: Bearer ${{ secrets.DEPLOY_TOKEN }}"
See references/templates.md for: Blue-Green GitLab CI, Canary GitHub Actions, Canary GitLab CI, Rolling Kubernetes, Rolling Docker Swarm configurations.
Health Check Endpoints
<?php
// src/Api/Action/HealthAction.php
declare(strict_types=1);
namespace App\Api\Action;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
final readonly class HealthAction
{
public function __construct(
private DatabaseHealthChecker $database,
private CacheHealthChecker $cache,
private QueueHealthChecker $queue,
) {}
public function ready(ServerRequestInterface $request): ResponseInterface
{
$checks = [
'database' => $this->database->check(),
'cache' => $this->cache->check(),
'queue' => $this->queue->check(),
];
$healthy = !in_array(false, $checks, true);
return new JsonResponse(
[
'status' => $healthy ? 'healthy' : 'unhealthy',
'checks' => $checks,
'timestamp' => (new DateTimeImmutable())->format('c'),
],
$healthy ? 200 : 503
);
}
public function live(ServerRequestInterface $request): ResponseInterface
{
return new JsonResponse([
'status' => 'alive',
'timestamp' => (new DateTimeImmutable())->format('c'),
]);
}
}
Generation Instructions
-
Identify deployment target:
- Kubernetes / Docker Swarm / VMs
- Cloud provider (AWS, GCP, Azure)
- CI platform (GitHub, GitLab)
-
Select strategy:
- Blue-Green: Instant switch, 2x resources
- Canary: Gradual rollout, metrics-based
- Rolling: Gradual replace, minimal resources
-
Configure health checks:
- Readiness probe (can accept traffic)
- Liveness probe (is alive)
- Startup probe (is ready to be probed)
-
Set up monitoring:
- Error rate thresholds
- Latency thresholds
- Custom metrics
-
Define rollback triggers:
- Automatic on health check failure
- Manual option always available
Usage
Provide:
- Deployment target (K8s, Swarm, VMs)
- Strategy (blue-green, canary, rolling)
- CI platform (GitHub, GitLab)
- Health check endpoints
- Rollback criteria
The generator will:
- Create deployment workflow
- Configure health checks
- Set up traffic management
- Add monitoring hooks
- Implement rollback procedures