mcpField
D
devops

devops

github.com/iankikuクラウド・DevOps1843 回インストール13 週間前に更新
リポジトリ

devops について

devopsは、ソフトウェアプロジェクト向けのインフラとデプロイに関するガイダンスをまとめたスキルです。CI/CD、Docker、監視、インフラ選定、インシデント対応のチェックリストと手順を扱います。

主な機能

  1. 01デプロイ前の確認チェックリスト
  2. 02CI/CDの段階と失敗時の対応
  3. 03マルチステージDockerビルドの指針
  4. 04監視とアラートの実践項目
  5. 05インフラの既定案とインシデント対応

活用シーン

  1. 01リリース前にデプロイ準備を確認
  2. 02CI/CDの障害対応とロールバックを計画
  3. 03Dockerビルドと監視の規約を整備
  4. 04本番インシデントの対応手順を整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/iankiku/forwward-teams --skill devops

インストール後、Claude Code で/devopsを入力して読み込まれたか確認します。

詳細

DevOps — インフラストラクチャとデプロイ

確実にリリースし、すべてを監視し、迅速に修正します。

デプロイチェックリスト

デプロイ前に、以下を確認してください。

  1. CIですべてのテストが合格している(ローカル環境だけでは不十分です)
  2. デプロイ先の環境に環境変数が設定されている
  3. 本番環境に近いデータを使ってデータベースのマイグレーションをテストしている
  4. ロールバック計画を文書化している(「このコミットをリバートする」だけでも構いません)
  5. ヘルスチェックエンドポイントがあり、200を返す

CI/CDパイプライン

push → lint → typecheck → test → build → deploy staging → smoke test → deploy prod
ステージ失敗時対応
リント/型チェックマージをブロックローカルで修正
テストマージをブロック修正するかテストを更新
ビルドマージをブロックビルドエラーを修正
ステージングへのデプロイ本番デプロイをブロックステージングでデバッグ
スモークテスト本番デプロイをブロックステージングをロールバックして調査
本番デプロイオンコールにアラート直ちにロールバック

Docker

イメージを小さく保つため、常にマルチステージビルドを使用してください。スタックを検出し、適切なベースイメージを使ってください。

Node.js / TypeScript
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --production=false
COPY . .
RUN npm run build

FROM node:22-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/server.js"]
Python
FROM python:3.12-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

FROM python:3.12-slim
WORKDIR /app
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
Go
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 -o server ./cmd/api

FROM alpine:3.19
WORKDIR /app
COPY --from=builder /app/server .
EXPOSE 8080
CMD ["./server"]
Ruby on Rails
FROM ruby:3.3-slim AS builder
WORKDIR /app
COPY Gemfile Gemfile.lock ./
RUN bundle install --without development test

FROM ruby:3.3-slim
WORKDIR /app
COPY --from=builder /usr/local/bundle /usr/local/bundle
COPY . .
EXPOSE 3000
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]

その他のスタック(Java/JVM、.NET、Rust)でも同じパターンです。ビルドステージでコンパイルし、最終ステージは最小限にします。ビルドツールチェーンを最終イメージにコピーしてはいけません。

すべてのスタックに共通するルール:

  • ベースイメージのバージョンは常に固定してください(latestは使わないでください)
  • .dockerignoreを使い、ビルド成果物、.git、.envファイルを決して含めないでください
  • コンテナごとにプロセスは1つにしてください
  • ヘルスチェックを追加してください:HEALTHCHECK CMD curl -f http://localhost:<PORT>/health || exit 1

監視

対象ツールの選択肢アラート条件
稼働時間UptimeRobot, Checkly30秒を超えてダウン
エラーSentry, Datadogエラー率が1%を超える
レイテンシGrafana, Datadogp95が2秒を超える
リソースクラウドプロバイダーのメトリクスCPUが80%超、メモリが85%超
ログDatadog, Axiom, CloudWatchエラーパターン、キーワード

ルール:

  • すべてのアラートにランブックを用意してください(1行だけでも構いません)
  • アラートが発火しても対応が不要なら、削除してください。アラート疲れは深刻な問題につながります
  • printf形式の文字列ではなく、構造化JSONをログに記録してください
  • トレースできるよう、すべてのログ行にリクエストIDを含めてください

インフラストラクチャのデフォルト

項目デフォルト理由
ホスティングVercel / Railway / Fly.io設定不要で、スケールします
データベースマネージドPostgres(Supabase、Neon、RDS)自分でDBを管理する必要がありません
キャッシュUpstash Redisサーバーレスで、運用作業が不要です
キューInngest、Trigger.dev、またはSQSマネージドで、再試行機能が組み込まれています
ストレージS3 / R2 / Supabase Storage低コストで信頼性があります
DNSCloudflare高速で、無料プランがあります
シークレットプラットフォーム経由の環境変数コードやgitには決して含めないでください

インシデント対応

  1. 検知 — アラートの発火またはユーザーからの報告
  2. 確認 — 担当者を決める(5分以内)
  3. 緩和 — ロールバック、機能フラグの無効化、またはスケールアップ(問題の拡大を止めます)
  4. 調査 — 問題が収まってから根本原因を調べる
  5. 修正 — テストを伴う適切な修正
  6. ポストモーテム — 誰かを責めず、人ではなくシステムに焦点を当てる

コメント