ado-pipeline-best-practices について
Azure DevOps YAML パイプラインの作成と保守に関するガイドです。構成、変数の安全な管理、検証、ビルド効率の改善を扱います。
主な機能
- 01複数ステージのパイプライン構成
- 02トリガーとスケジュールの指針
- 03シークレットと変数の管理
- 04キャッシュと再利用可能なテンプレート
- 05セキュリティと性能の確認
活用シーン
- 01編集前に Azure DevOps パイプラインを確認
- 02ビルド・テスト・パッケージ・デプロイを分離
- 03認証情報のハードコードを防止
- 04パスフィルターとキャッシュで不要なビルドを削減
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill ado-pipeline-best-practicesインストール後、Claude Code で/ado-pipeline-best-practicesを入力して読み込まれたか確認します。
詳細
Azure Pipelines のベストプラクティス
Azure DevOps YAML パイプラインの作成と保守に関する包括的なベストプラクティスです。
基本的なレビュー手順
- YAML を編集する前に、トリガーの対象範囲、デプロイ環境、必要な承認を確認します。
- シークレットがサービス接続、Key Vault、シークレット変数、またはセキュアファイルを経由していることを確認します。認証情報を直接記述してはいけません。
- タスクのメジャーバージョンを固定し、繰り返し使用する手順はテンプレートにまとめます。
- パスフィルター、キャッシュ、並列ジョブは、検証を省略することなく、実際のビルドコストを削減できる場合にのみ追加します。
- ビルド、テスト、パッケージ化、デプロイの処理は、ステージまたはジョブごとに分離します。
- 展開を推奨する前に、Azure DevOps のパイプライン YAML 検証またはドライランで検証します。
パイプラインの構成
マルチステージパイプライン:
# Recommended structure
stages:
- stage: Build
- stage: Test
- stage: DeployDev
- stage: DeployStaging
- stage: DeployProduction
メリット:
- 関心事を明確に分離できます
- ステージを条件に応じて実行できます
- 環境ごとの構成に対応できます
- ステージ間に承認ゲートを設けられます
トリガーとスケジュール
ベストプラクティス:
- 不要なビルドを避けるため、パスフィルターを使用します
- 頻繁に更新されるリポジトリでは、バッチビルドを有効にします
- 検証には PR トリガーを使用します
- 包括的なテストには、毎晩または毎週のビルドをスケジュールします
trigger:
batch: true
branches:
include: [main, develop]
paths:
exclude: ['docs/*', '**.md']
pr:
autoCancel: true
branches:
include: [main]
schedules:
- cron: '0 0 * * *'
displayName: 'Nightly build'
branches:
include: [main]
always: false # Only if code changed
変数の管理
階層:
- パイプラインレベルの変数(az devops YAML)
- 変数グループ(複数のパイプラインで共有)
- Azure Key Vault(シークレット)
- ランタイムパラメーター(ユーザー入力)
セキュリティ:
- シークレットをハードコードしないでください
- 機密データには Key Vault を使用します
- 変数グループ内のシークレットをシークレットとして設定します
- シークレットはログ内で自動的にマスキングされます
キャッシュ
次の項目にキャッシュを実装します。
- パッケージの依存関係(npm、pip、NuGet、Maven)
- Docker レイヤー
- ビルド成果物
効果:
- ビルドの高速化(最大 90% の削減)
- ネットワーク使用量の削減
- コストの削減
テンプレート
次の用途にテンプレートを使用します:
- 再利用可能なビルドパターン
- 標準化されたデプロイ手順
- 一貫性のあるセキュリティスキャン
- 全社的なベストプラクティス
メリット:
- DRY(同じことを繰り返さない)
- 更新の一元管理
- 一貫したプロセス
セキュリティ対策
必須項目:
- コードスキャン(SAST、依存関係)
- コンテナーイメージのスキャン
- シークレットスキャン
- コンプライアンスチェック
- ブランチ保護ポリシー
- 必須の承認
パフォーマンス
最適化:
- 独立したジョブを並列化します
- キャッシュを積極的に使用します
- Git の浅いクローンを使用します(fetchDepth: 1)
- 適切なエージェントプールを使用します
- 成果物をクリーンアップします
モニタリング
次の項目を追跡します:
- ビルド成功率
- ビルド所要時間
- テスト合格率
- デプロイ頻度
- 平均復旧時間(MTTR)
参考資料と組み合わせ
- タスクの構文と新たにリリースされた機能については、Microsoft Azure Pipelines YAML スキーマのドキュメントを参照します。
- サービスプリンシパルのシークレットを置き換える場合は、ワークロード ID/OIDC のガイダンスと組み合わせます。
- SAST、依存関係、コンテナー、または IaC のチェックを追加する場合は、セキュリティスキャンのガイダンスと組み合わせます。
ベストプラクティスは、常に Azure DevOps の最新ドキュメントで確認してください。
コメント
Markdown 対応