devops について
devops は、Cloudflare、Docker、Google Cloud Platform を使ったデプロイとインフラ管理のスキルです。プラットフォーム選定の指針に加え、CI/CD、セキュリティ、性能、コスト管理を扱います。
主な機能
- 01Cloudflare Workers のデプロイガイド
- 02Docker コンテナの構築と管理
- 03Google Cloud インフラの管理
- 04CI/CD パイプラインのパターン
- 05クラウドのセキュリティ、性能、コストの実践
活用シーン
- 01サーバーレスアプリを Cloudflare Workers にデプロイ
- 02Docker でコンテナ化サービスを構築・デプロイ
- 03gcloud で Google Cloud リソースを管理
- 04複数プラットフォームの CI/CD とインフラ自動化を計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jackspace/ claudeskillz --skill devopsインストール後、Claude Code で/devopsを入力して読み込まれたか確認します。
同梱ファイル.env.exampleSKILL.json
詳細
DevOps スキル
Cloudflare エッジプラットフォーム、Docker コンテナ化、Google Cloud Platform にまたがるクラウドインフラストラクチャのデプロイと管理に関する包括的なガイドです。
このスキルを使用する場面
次のような場合にこのスキルを使用します:
- サーバーレスアプリケーションを Cloudflare Workers にデプロイする
- Docker でアプリケーションをコンテナ化する
- gcloud CLI で Google Cloud インフラストラクチャを管理する
- 複数のプラットフォームにまたがる CI/CD パイプラインを設定する
- クラウドインフラストラクチャのコストを最適化する
- マルチリージョンデプロイメントを実装する
- エッジファーストのアーキテクチャを構築する
- Kubernetes でコンテナオーケストレーションを管理する
- クラウドストレージソリューション(R2、Cloud Storage)を設定する
- スクリプトと IaC でインフラストラクチャを自動化する
プラットフォーム選択ガイド
Cloudflare を使用する場面
最適な用途:
- グローバルに分散するエッジファーストアプリケーション
- 超低レイテンシーが求められる用途(<50ms)
- サーバーレス関数を備えた静的サイト
- エグレスコストがゼロのシナリオ(R2 ストレージ)
- WebSocket/リアルタイムアプリケーション(Durable Objects)
- エッジでの AI/ML(Workers AI)
主な製品:
- Workers(サーバーレス関数)
- R2(オブジェクトストレージ、S3 互換)
- D1(グローバルレプリケーション対応の SQLite データベース)
- KV(キー・バリューストア)
- Pages(静的ホスティング+関数)
- Durable Objects(ステートフルコンピューティング)
- Browser Rendering(ヘッドレスブラウザーの自動化)
コスト特性: リクエストごとの従量課金、充実した無料枠、エグレス料金なし
Docker を使用する場面
最適な用途:
- ローカル開発環境の一貫性確保
- マイクロサービスアーキテクチャ
- 複数言語のスタックを使用するアプリケーション
- 従来型の VPS/VM デプロイメント
- Kubernetes オーケストレーション
- CI/CD ビルド環境
- データベースのコンテナ化(開発/テスト)
主な機能:
- アプリケーションの分離と移植性
- 最適化のためのマルチステージビルド
- 複数コンテナアプリ向けの Docker Compose
- データ永続化のためのボリューム管理
- ネットワーク設定とサービスディスカバリー
- クロスプラットフォーム互換性(amd64、arm64)
コスト特性: インフラストラクチャの費用のみ(コンピューティング+ストレージ)
Google Cloud を使用する場面
最適な用途:
- エンタープライズ規模のアプリケーション
- データ分析と ML パイプライン(BigQuery、Vertex AI)
- ハイブリッド/マルチクラウドデプロイメント
- 大規模な Kubernetes(GKE)
- マネージドデータベース(Cloud SQL、Firestore、Spanner)
- 複雑な IAM とコンプライアンス要件
主なサービス:
- Compute Engine(VM)
- GKE(マネージド Kubernetes)
- Cloud Run(コンテナ化されたサーバーレス)
- App Engine(PaaS)
- Cloud Storage(オブジェクトストレージ)
- Cloud SQL(マネージドデータベース)
コスト特性: 料金体系は多様で、継続利用割引や利用確約契約があります
クイックスタート
Cloudflare Workers
# Install Wrangler CLI
npm install -g wrangler
# Create and deploy Worker
wrangler init my-worker
cd my-worker
wrangler deploy
参照:references/cloudflare-workers-basics.md
Docker コンテナ
# Create Dockerfile
cat > Dockerfile <<EOF
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
EOF
# Build and run
docker build -t myapp .
docker run -p 3000:3000 myapp
参照:references/docker-basics.md
Google Cloud デプロイメント
# Install and authenticate
curl https://sdk.cloud.google.com | bash
gcloud init
gcloud auth login
# Deploy to Cloud Run
gcloud run deploy my-service \
--image gcr.io/project/image \
--region us-central1
参照:references/gcloud-platform.md
リファレンスの一覧
Cloudflare プラットフォーム
cloudflare-platform.md- エッジコンピューティングの概要、主要コンポーネントcloudflare-workers-basics.md- はじめに、ハンドラーの種類、基本パターンcloudflare-workers-advanced.md- 高度なパターン、パフォーマンス、最適化cloudflare-workers-apis.md- ランタイム API、バインディング、インテグレーションcloudflare-r2-storage.md- R2 オブジェクトストレージ、S3 互換性、ベストプラクティスcloudflare-d1-kv.md- D1 SQLite データベース、KV ストア、ユースケースbrowser-rendering.md- Cloudflare 上での Puppeteer/Playwright 自動化
Docker コンテナ化
docker-basics.md- 基本概念、Dockerfile、イメージ、コンテナdocker-compose.md- 複数コンテナアプリ、ネットワーク、ボリューム
Google Cloud Platform
gcloud-platform.md- GCP の概要、gcloud CLI、認証gcloud-services.md- Compute Engine、GKE、Cloud Run、App Engine
Python ユーティリティ
scripts/cloudflare-deploy.py- Cloudflare Worker のデプロイを自動化するscripts/docker-optimize.py- Dockerfile を分析し、最適化する
よくあるワークフロー
エッジ+コンテナのハイブリッド構成
# Cloudflare Workers (API Gateway)
# -> Docker containers on Cloud Run (Backend Services)
# -> R2 (Object Storage)
# Benefits:
# - Edge caching and routing
# - Containerized business logic
# - Global distribution
マルチステージ Docker ビルド
# Build stage
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Production stage
FROM node:20-alpine
WORKDIR /app
COPY --from=build /app/dist ./dist
COPY --from=build /app/node_modules ./node_modules
USER node
CMD ["node", "dist/server.js"]
CI/CD パイプラインのパターン
# 1. Build: Docker multi-stage build
# 2. Test: Run tests in container
# 3. Push: Push to registry (GCR, Docker Hub)
# 4. Deploy: Deploy to Cloudflare Workers / Cloud Run
# 5. Verify: Health checks and smoke tests
ベストプラクティス
セキュリティ
- コンテナを非 root ユーザーとして実行する
- サービスアカウントの偽装を使用する(GCP)
- シークレットはコード内ではなく、環境変数に保存する
- イメージの脆弱性をスキャンする(Docker Scout)
- 最小限の権限を持つ API トークンを使用する
パフォーマンス
- イメージサイズを削減するため、マルチステージ Docker ビルドを使用する
- Cloudflare KV でエッジキャッシュを行う
- 出力時の転送料金がかからないストレージには R2 を使用する
- コンテナのヘルスチェックを実装する
- 適切なタイムアウトとリソース制限を設定する
コスト最適化
- 大量のデータ転送が発生する場合は、S3 の代わりに Cloudflare R2 を使用する
- キャッシュ戦略(エッジ+KV)を実装する
- コンテナのリソースを適正化する
- 継続利用割引を活用する(GCP)
- クラウドプロバイダーのダッシュボードで使用状況を監視する
開発
- ローカル開発には Docker Compose を使用する
- ローカルでの Worker のテストには Wrangler dev を使用する
- 複数の環境では名前付きの gcloud 構成を使用する
- インフラストラクチャコードをバージョン管理する
- CI/CD で自動テストを実装する
選定マトリクス
| 要件 | 選択肢 |
|---|---|
| グローバルで 50 ミリ秒未満のレイテンシ | Cloudflare Workers |
| 大容量ファイルのストレージ(出力時の転送料金なし) | Cloudflare R2 |
| SQL データベース(グローバル読み取り) | Cloudflare D1 |
| コンテナ化されたワークロード | Docker + Cloud Run/GKE |
| エンタープライズ向け Kubernetes | GKE |
| マネージドリレーショナルデータベース | Cloud SQL |
| 静的サイト+API | Cloudflare Pages |
| WebSocket/リアルタイム通信 | Cloudflare Durable Objects |
| ML/AI パイプライン | GCP Vertex AI |
| ブラウザー自動化 | Cloudflare Browser Rendering |
リソース
- Cloudflare ドキュメント: https://developers.cloudflare.com
- Docker ドキュメント: https://docs.docker.com
- GCP ドキュメント: https://cloud.google.com/docs
- Wrangler CLI: https://developers.cloudflare.com/workers/wrangler/
- gcloud CLI: https://cloud.google.com/sdk/gcloud
実装チェックリスト
Cloudflare Workers
- Wrangler CLI をインストールする
- Worker プロジェクトを作成する
- wrangler.toml を設定する(バインディング、ルート)
-
wrangler devでローカルテストを行う -
wrangler deployでデプロイする
Docker
- マルチステージビルドを使用した Dockerfile を作成する
- .dockerignore ファイルを作成する
- ローカルでビルドをテストする
- レジストリにプッシュする
- 対象プラットフォームにデプロイする
Google Cloud
- gcloud CLI をインストールする
- サービスアカウントで認証する
- プロジェクトを作成し、API を有効にする
- IAM 権限を設定する
- リソースをデプロイして監視する
コメント
Markdown 対応