Professional Cloud DevOps Engineer

職務の説明

Professional Cloud DevOps Engineer は、サービスの信頼性の確保と迅速な配信との適度なバランスを保つために、開発プロセスの効率的な運用を目指します。また、Google Cloud Platform を使用したソフトウェア配信パイプラインの構築、サービスのデプロイとモニタリング、インシデントの管理、およびインシデントから知見を得ることに精通している必要があります。

認定試験ガイド

1. サービスへのサイト信頼性エンジニアリングの原則の適用

    1.1 サービスの変更、速度、信頼性確保を調整する

    • SLI(可用性、レイテンシなど)を検出する
    • SLO を定義し、SLA を理解する
    • エラー バジェットを満たさないことによる結果を受け入れる
    • 次に構築するものを決定するためのフィードバック ループを作成する
    • 作業の自動化を進める

    1.2 サービス ライフサイクルを管理する

    • サービスを管理する(例: 新しいサービスの導入、デプロイ、保守、廃止)
    • キャパシティを計画する(例: 割り当てと上限の管理)

    1.3 運用のための健全なコミュニケーションとコラボレーションを確保する

    • 心身の疲労を防ぐ(例: 心身の疲労を防ぐための自動化プロセスの設定)
    • 学習する文化を育む
    • 責任を追及されない文化を育む

2. サービスの CI / CD パイプラインの構築と実装

    2.1 CI / CD パイプラインを設計する

    • Container Registry を使用した不変のアーティファクト
    • Container Registry を使用したアーティファクト リポジトリ
    • Cloud Build、Spinnaker を使用したデプロイ戦略
    • Anthos、Spinnaker、Kubernetes を使用したハイブリッドおよびマルチクラウド環境へのデプロイ
    • Cloud Build、Container Registry を使用したアーティファクトのバージョニング戦略
    • Cloud Source Repositories、Cloud Build GitHub アプリ、Cloud Pub/Sub を使用した CI / CD パイプライン トリガー
    • Spinnaker を使用した新しいバージョンのテスト
    • デプロイ プロセス(例: 承認フロー)の構成

    2.2 CI / CD パイプラインを実装する

    • Cloud Build を使用した CI
    • Cloud Build を使用した CD
    • オープンソース ツール(例: Jenkins、Spinnaker、GitLab、Concourse)
    • デプロイの監査および追跡(例: CSR、Cloud Build、Cloud 監査ログ)

    2.3 構成とシークレットを管理する

    • 安全なストレージ方式
    • シークレットのローテーションと構成変更

    2.4 Infrastructure as Code を管理する

    • Terraform / Cloud Deployment Manager
    • インフラストラクチャ コードのバージョニング
    • インフラストラクチャ変更の安全化
    • 不変のアーキテクチャ

    2.5 CI / CD ツールをデプロイする

    • 一元管理されたツールと複数のツール(単一テナントとマルチテナント)
    • CI / CD ツールのセキュリティ

    2.6 さまざまな開発環境(例: ステージング環境、本番環境)を管理する

    • 環境の数とその目的の決定
    • GKE、Cloud Deployment Manager を使用した機能ブランチごとの動的な環境作成
    • Docker、Cloud Code、Skaffold を使用したローカル開発環境

    2.7 デプロイメント パイプラインを保護する

    • Container Registry を使用した脆弱性分析
    • Binary Authorization
    • 環境ごとの IAM ポリシー

3. サービスのモニタリング戦略の実装

    3.1 アプリケーション ログを管理する

    • Stackdriver Logging、Fluentd を使用して Compute Engine、GKE からログを収集する
    • Stackdriver Logging、Fluentd を使用してサードパーティのログおよび構造化ログを収集する
    • Stackdriver Logging を使用して Stackdriver API にアプリケーション ログを直接送信する

    3.2 Stackdriver Monitoring を使用してアプリケーション指標を管理する

    • Compute Engine から指標を収集する
    • GKE や Kubernetes の指標を収集する
    • アドホック指標分析に Metric Explorer を使用する

    3.3 Stackdriver Monitoring プラットフォームを管理する

    • モニタリング ダッシュボードを作成する
    • ダッシュボードをフィルタ、共有する
    • Stackdriver Monitoring を使用してサードパーティ(例: PagerDuty、Slack)のアラートを構成する
    • Stackdriver Monitoring を使用して SLI に基づくアラート ポリシーを定義する
    • Cloud DM または Terraform を使用してアラート ポリシー定義を自動化する
    • Stackdriver Monitoring を使用して SLO モニタリングとアラートを実装する
    • Stackdriver Monitoring との統合(例: Grafana、BigQuery)について理解する
    • SIEM ツール(例: Splunk、Datadog)を使用して監査ログとフローログを分析する
    • Stackdriver ワークスペース戦略を設計する

    3.4 Stackdriver Logging プラットフォームを管理する

    • データアクセス ログ(例: Cloud 監査ログ)を有効化する
    • VPC フローログを有効化する
    • GCP Console でログを確認する
    • 基本ロギング フィルタと高度なロギング フィルタを使用する
    • ログベースの指標を実装する
    • ロギング除外とロギング エクスポートについて理解する
    • ロギング エクスポートのオプションを選択する
    • プロジェクト レベルや組織レベルのエクスポートを実装する
    • Cloud Storage と BigQuery でエクスポート ログを見る
    • 外部ロギング プラットフォームへログを送信する

    3.5 ロギングとモニタリングのアクセス制御を実装する

    • IAM、Stackdriver Logging を使用して監査ログへのアクセスを制限する ACL を設定する
    • IAM、Stackdriver Logging を使用してエクスポート構成を制限する ACL を設定する
    • IAM、Stackdriver Monitoring を使用してカスタム指標の指標書き込みを許可する ACL を設定する

4. サービス パフォーマンスの最適化

    4.1 サービス パフォーマンスの問題を特定する

    • ユーザーへの影響を評価および把握する(App Engine の Stackdriver Service Monitoring、Istio)
    • Stackdriver を使用してクラウド リソースの使用率を特定する
    • Stackdriver Trace や Stackdriver Profiler を使用してパフォーマンス特性をプロファイルする
    • サービス メッシュ テレメトリーを解釈する
    • イメージや OS に関する問題のトラブルシューティングを行う
    • ネットワークの問題のトラブルシューティング(例: VPC フローログ、ファイアウォール ログ、レイテンシ、ネットワークの詳細の表示)を行う

    4.2 アプリケーション コードをデバッグする

    • アプリケーション インストルメンテーション
    • Stackdriver Debugger
    • Stackdriver Logging
    • Stackdriver Trace
    • 分散アプリケーションのデバッグ
    • App Engine ローカル開発用サーバー
    • Stackdriver Error Reporting
    • Stackdriver Profiler

    4.3 リソース使用率を最適化する

    • リソース費用を特定する
    • リソース使用率レベルを特定する
    • 費用が増大している領域または使用率が低い領域を最適化するための計画を策定する
    • プリエンプティブル VM を管理する
    • 確約利用割引を使用する
    • TCO について検討する
    • ネットワークの料金を考慮する

5. サービス インシデントの管理

    5.1 サービス インシデント中の職務を調整してコミュニケーション チャネルを実装する

    • 職務(インシデント コマンダー、コミュニケーション リード、オペレーション リード)を定義する
    • 影響評価のリクエストを処理する
    • 内部および外部で定期的なステータス更新を提供する
    • インシデント状態の主要な変化(軽減されたのはいつか、すべて解消されたのはいつかなど)を記録する
    • コミュニケーション チャネル(メール、IRC、ハングアウト、Slack、スマートフォンなど)を確立する
    • 対応チームを選定して委任する
    • 極度の疲労や燃え尽きを避ける
    • 職務のローテーションや引き継ぎを行う
    • 関係者間の関係を管理する

    5.2 ユーザーに影響を与えるインシデントの症状を調査する

    • サービス障害の考えられる原因を特定する
    • 考えられる原因に対する症状を評価する(実際の動作に基づいた原因の可能性のランク付け)
    • 最も可能性が高い原因を突き止めるための調査を実施する
    • 問題を軽減するための代替案を特定する

    5.3 ユーザーに対するインシデントの影響を軽減する

    • リリースをロールバックする
    • トラフィックをドレイン / リダイレクトする
    • テストをオフにする
    • キャパシティを追加する

    5.4 問題を解決する(例: Cloud Build、Jenkins)

    • コード変更、バグ修正を行う
    • 修正を確認する
    • 問題解決を宣言する

    5.5 事後調査で問題をドキュメント化する

    • 根本原因をドキュメント化する
    • アクション アイテムを作成して優先順位を付ける
    • 事後調査の結果を関係者に伝える