12のマイクロサービスを保守するソロ開発者として、PR1件あたりレビュー-テスト-デプロイで2時間。全パイプラインを自動化するOpenClawエージェントを構築し、朝の時間を取り戻しました。
ソロ開発者のボトルネック
各PRでコードレビュー、テストスイート実行、カバレッジ確認、Dockerイメージビルド、ステージングデプロイ、スモークテストが必要。12リポジトリで朝がすべて消費。
アーキテクチャ概要
OpenClawはHetzner CX32(4 vCPU、8GB RAM、€7.50/月)で稼働。GitHub webhookがPRイベントでエージェントをトリガー。Ollama + CodeLlama-13Bでコードレビュー、GitHub APIでPR操作、ArgoCDでGitOpsデプロイ。
┌──────────┐ webhook ┌──────────────┐ API ┌──────────┐
│ GitHub │──────────►│ OpenClaw │───────►│ GitHub │
│ PRイベント│ │ エージェント │ │ API │
└──────────┘ └───┬──┬───┬───┘ └──────────┘
│ │ │
┌────────────┘ │ └────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Ollama │ │ Docker │ │ ArgoCD │
│ CodeLlama│ │ ビルド │ │ デプロイ │
└──────────┘ └──────────┘ └──────────┘OpenClaw設定
# IDENTITY.md — CI/CDエージェント あなたはシニアDevOpsエンジニアおよびコードレビュアーです。 PR→ステージングパイプラインの自動化が役割です。 ## コードレビュールール 1. チェック項目:未使用インポート、本番コードのconsole.log、 ハードコードされたシークレット、SQLインジェクションパターン、 エラーハンドリング欠落 2. テストカバレッジ80%以上を確認 3. package.json / go.modの依存関係変更をフラグ 4. 破壊的API変更をチェック ## 安全ルール - 自動マージ禁止。常に人間の承認を待つ。 - 本番デプロイ禁止。ステージングのみ。 - スモークテスト失敗時は自動ロールバック。
# .github/workflows/openclaw-trigger.yml
name: OpenClaw CI/CDトリガー
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
notify-openclaw:
runs-on: ubuntu-latest
steps:
- name: OpenClawエージェントトリガー
run: |
curl -X POST https://your-openclaw/webhook/github \
-H "Authorization: Bearer ${{ secrets.OPENCLAW_TOKEN }}" \
-d '{"event":"pull_request","pr_number":${{github.event.pull_request.number}}}'The Pipeline
1. PR作成 → Webhook
GitHub webhookがPRオープン/同期時に発火。OpenClawがpayloadを受信、リポジトリを浅いクローン(diffのみ)、レビューをキューに追加。
$ git clone --depth=1 --branch=feature/auth-refactor \
https://github.com/solo-dev/user-service.git
$ git diff main...feature/auth-refactor --stat
3 files changed, 64 insertions(+), 18 deletions(-)2. コードレビュー
CodeLlama-13BがIDENTITYルールに基づいてdiffを分析。セキュリティ問題、スタイル違反、ロジックエラーをチェック。行番号参照付きでPRに直接コメント。
レビュー PR #847 に投稿: ⚠️ 警告 [src/auth/handler.go:34] トークン検証のエラーチェック欠落。 ✅ 合格: ハードコードされたシークレットなし 📊 カバレッジ: 84.2% → 86.1% (+1.9%)
3. CIパイプライン
レビュー投稿後、GitHub Actionsのステータスチェックを監視。全必須チェック通過まで待機。
PR #847 のCI監視中... ✅ lint 合格 (12秒) ✅ 単体テスト 合格 (1分34秒) ✅ 統合テスト 合格 (2分12秒) ✅ カバレッジ 86.1% (閾値: 80%) ✓ ✅ @solo-dev が09:47 UTCに承認
4. Dockerビルド + プッシュ
承認後、マルチステージDockerイメージをビルドし、commit SHAでタグ付け、Harborレジストリにプッシュ。
$ docker build -t harbor.internal/user-service:a3f7b2c . ビルド成功 a3f7b2c $ docker push harbor.internal/user-service:a3f7b2c プッシュ完了 8.3秒(レイヤーキャッシュヒット: 5/7)
5. ArgoCDデプロイ + スモークテスト
ArgoCDアプリケーションマニフェストを新イメージタグで更新、同期、ロールアウト待機。ステージングURLにスモークテスト実行。
$ argocd app set user-service --helm-set image.tag=a3f7b2c $ argocd app sync user-service --prune ✅ Synced Healthy スモークテスト staging.internal/user-service: ✅ GET /health 200 OK (12ms) ✅ POST /auth/login 200 OK (45ms) 4/4 スモークテスト合格
60日後の成果
パイプラインが12マイクロサービスで60日間稼働した結果:
| 指標 | 導入前 | 導入後 | 変化 |
|---|---|---|---|
| PR→ステージング時間 | 2時間 | 8分 | ↓ 93% |
| ステージング前バグ検出 | 約3件/週 | 約5件/週 | ↑ 67% |
| 週間DevOps工数 | 30+時間 | 3時間 | ↓ 90% |
| デプロイ失敗 | 2-3回/月 | 0回 | ↓ 100% |
| コードカバレッジ(平均) | 72% | 86% | ↑ 19% |
「月$30のAPIコストでジュニアDevOpsエンジニアを雇ったようなもの。休暇を取らず、リンター実行を忘れない。」— ソロ開発者
コスト内訳
| 項目 | 月額 | 備考 |
|---|---|---|
| サーバー (Hetzner CX32) | €7.50 | 4 vCPU, 8GB RAM |
| Ollama + CodeLlama-13B | $0 | セルフホスト |
| Harborレジストリ | $0 | セルフホスト |
| ArgoCD | $0 | オープンソース |
| GitHub API | $0 | 無料枠 |
| 合計 | 約$8/月 | vs $2,500/月のDevOps契約 |
年間節約:1,400+時間のDevOps時間を機能開発に再配分。初年度ROI:約37,000%。
セキュリティガードレール
⚠️ エージェントはステージングへの書き込み権限のみ。本番デプロイには2人承認の別プロセスが必要。
よくある質問
Q1. なぜGPT-4ではなくセルフホストCodeLlama?
Q2. モノリポに対応?
Q3. CIが不安定な場合は?
Q4. GitLabで使える?
得られた教訓
CodeLlamaはパターンマッチングに優れる
SQLインジェクション、null未チェック、依存関係競合の検出が得意。ビジネスロジックレビューは苦手 — それは人間の目が必要。
浅いクローンが時間を節約
全リポジトリクローンは遅い(30秒+)。diffのみの浅いクローンで2-3秒に短縮。
インクリメンタルDockerビルドは必須
初回ビルドは3-4分。適切なレイヤーキャッシュで後続は20-30秒。これだけで日45分節約。
エージェントを盲目的に信用しない
最初の週、テストが未カバーの競合状態を含むPRを承認。現在は重要パスは必ず人間レビュー。