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、Cloud Security Scanner を使用した脆弱性分析
    • 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 Stackdriver IRM を使用してユーザーに影響を与えるインシデントの症状を調査

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

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

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

    5.4 問題の解決(例: Cloud Build、Jenkins)

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

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

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