Skip to content
返回部署

使用 Buildkite 部署

混合 CI/CD 平台,自托管 agent 配合云端编排。

CI/CD进阶

为什么

Buildkite 结合云端控制与自有算力 — 快速、安全且对大型构建性价比高。DORA 2024 DevOps 状态报告显示精英团队部署频率比低绩效团队高 973 倍。

带自动化测试的 CI/CD 管道将变更失败率降至 5-15%,而手动部署为 40-60%。

何时使用

需要在自有硬件上快速构建同时将流水线管理保留在云端的团队。贡献者少于 5 人的仓库避免复杂管道编排 — pre-commit 钩子 + GitHub Actions 足够。

除非需要 GPU 或 VPN 访问,否则跳过自托管 runner。

如何做

# .构建kite/管道.YML steps: - label: ":hammer: Build" command: "npm ci && npm run build" artifact_paths: "dist/**" - wait - label: ":test_tube: Test" command: "npm test" depends_on: "build" - wait - block: "Deploy to production?" key: "approve" - label: ":rocket: Deploy" command: "kubectl rollout restart deployment/app" depends_on: "approve" branches: "main" 4. 验证部署 — curl -I https://your-app.example.com 5. 监控日志 — 前 5 分钟检查错误 6. 需要时回滚 — 回退到上一版本

示例

# 启动 a 构建kite 代理 docker run -d --name buildkite-agent \ -e BUILDKITE_AGENT_TOKEN=$TOKEN \ -v /var/run/docker.sock:/var/run/docker.sock \ buildkite/agent:latest

常见问题

  • ⚠Agent 未接任务 — 检查 token 和 tag
  • ⚠制品未上传 — 验证上传 bucket
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓用 agent tag 路由 — 将任务匹配到有能力的 agent
  • ✓用 monorepo diff 生成流水线 — 跳过未变更部分
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答