帮助团队设计部署流程、CI/CD 管道、容器化方案与回滚检查清单。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "deployment-patterns" 技能: 1. 下载 https://raw.githubusercontent.com/affaan-m/ECC/main/docs/tr/skills/deployment-patterns/SKILL.md 2. 保存为 ~/.claude/skills/deployment-patterns/SKILL.md 3. 装好后重载技能,告诉我可以用了
请为一个基于 Node.js 和 React 的 Web 应用设计 CI/CD 流程,包含代码检查、自动化测试、Docker 镜像构建、分阶段部署和失败回滚策略。
一套清晰的 CI/CD 流程方案,说明各阶段任务、触发条件与回滚机制。
请为即将上线的 Web 应用制作生产发布检查清单,覆盖环境变量、数据库迁移、健康检查、监控告警、备份和回滚准备。
一份可执行的上线前检查清单,帮助团队降低发布风险。
请为一个需要高可用的 Web 服务规划 Docker 部署方案,包括容器化结构、健康检查、滚动更新策略和服务异常时的自动恢复建议。
一份 Docker 部署架构与运维策略建议,适合生产环境落地。
Üretim deployment iş akışları ve CI/CD en iyi uygulamaları.
Instance'ları kademeli olarak değiştir — rollout sırasında eski ve yeni versiyonlar birlikte çalışır.
Instance 1: v1 → v2 (önce güncelle)
Instance 2: v1 (hala v1 çalışıyor)
Instance 3: v1 (hala v1 çalışıyor)
Instance 1: v2
Instance 2: v1 → v2 (ikinci olarak güncelle)
Instance 3: v1
Instance 1: v2
Instance 2: v2
Instance 3: v1 → v2 (son olarak güncelle)
Artıları: Sıfır kesinti, kademeli rollout Eksileri: İki versiyon aynı anda çalışır — geriye uyumlu değişiklikler gerektirir Ne zaman kullanılır: Standart deployment'lar, geriye uyumlu değişiklikler
İki özdeş ortam çalıştır. Trafiği atomik olarak değiştir.
Blue (v1) ← trafik
Green (v2) boşta, yeni versiyon çalışıyor
# Doğrulamadan sonra:
Blue (v1) boşta (yedek haline gelir)
Green (v2) ← trafik
Artıları: Anında rollback (blue'ya geri dön), temiz geçiş Deployment sırasında 2x altyapı gerektirir Kritik servisler, sorunlara sıfır tolerans
Önce trafiğin küçük bir yüzdesini yeni versiyona yönlendir.
v1: %95 trafik
v2: %5 trafik (canary)
# Metrikler iyi görünüyorsa:
v1: %50 trafik
v2: %50 trafik
# Final:
v2: %100 trafik
Artıları: Tam rollout'tan önce gerçek trafikle sorunları yakalar Eksileri: Trafik bölme altyapısı, izleme gerektirir Ne zaman kullanılır: Yüksek trafikli servisler, riskli değişiklikler, feature flag'ler
# Stage 1: Bağımlılıkları yükle
FROM node:22-alpine AS deps
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --production=false
# Stage 2: Build
FROM node:22-alpine AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
RUN npm prune --production
# Stage 3: Production image
FROM node:22-alpine AS runner
WORKDIR /app
RUN addgroup -g 1001 -S appgroup && adduser -S appuser -u 1001
USER appuser
COPY --from=builder --chown=appuser:appgroup /app/node_modules ./node_modules
COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
COPY --from=builder --chown=appuser:appgroup /app/package.json ./
ENV NODE_ENV=production
EXPOSE 3000
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
CMD ["node", "dist/server.js"]
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server
FROM alpine:3.19 AS runner
RUN apk --no-cache add ca-certificates
RUN adduser -D -u 1001 appuser
USER appuser
COPY --from=builder /server /server
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:8080/health || exit 1
CMD ["/server"]
FROM python:3.12-slim AS builder
WORKDIR /app
RUN pip install --no-cache-dir uv
COPY requirements.txt .
RUN uv pip install --system --no-cache -r requirements.txt
FROM python:3.12-slim AS runner
WORKDIR /app
RUN useradd -r -u 1001 appuser
USER appuser
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin
COPY . .
ENV PYTHONUNBUFFERED=1
EXPOSE 8000
…
通过双评审智能体对结果进行对抗式校验,提升输出发布前的可靠性
提供多平台部署模式与发布策略建议,帮助实现零停机与稳定升级。