Professional Cloud Developer

職務の説明

Professional Cloud Developer は、Google の各種ツールを使用して、Google の推奨する方法を実践しながら、スケーラブルで可用性の高いアプリケーションを構築します。また、クラウドネイティブ アプリ、デベロッパー ツール、マネージド サービス、次世代データベースを利用した経験もあります。さらに、少なくとも 1 つの汎用プログラミング言語に精通していて、コードのデバッグとトレースを行うための有意義な指標やログを生成できます。

ケーススタディのサンプル

Professional Cloud Developer 認定試験の問題で、架空の会社やソリューションを説明するケーススタディが使われる場合があります。このケーススタディは、回答を選択するうえで役立つコンテキストを提供するために作成されたものです。試験で使われる可能性のあるケーススタディのサンプルを確認しておくことをおすすめします。

HipLocal

*注: この試験はコーディングのスキルを直接評価するものではありません。GCP のサービスや推奨方法を利用して、スケーラブルで可用性の高いアプリケーションを構築、テスト、デプロイ、管理する能力を評価することに重点を置いています。少なくとも 1 つの汎用コーディング言語に精通している方であれば、コード スニペットに関する質問を理解できるはずです。

認定試験ガイド

セクション 1: スケーラビリティ、可用性、信頼性に優れたクラウドネイティブ アプリケーションの設計

    1.1 高パフォーマンスのアプリケーションと API を設計する。以下のような点を考察します。

    • マイクロサービス
    • IaaS(Infrastructure as a Service)、CaaS(Container as a Service)、PaaS(Platform as a Service)のスケーリング速度特性とトレードオフ
    • Google Cloud サービスの地理的分布(レイテンシ、リージョン サービス、ゾーンサービスなど)
    • Cloud Storage、Cloud Bigtable、Cloud Spanner、Cloud SQL を使用する書き込みレートが高いアプリケーションのキー構造を定義する
    • ユーザー セッション管理
    • キャッシュ ソリューション
    • API サービスをデプロイ、保護する
    • ゆるく結合された非同期アプリケーション(Apache Kafka、Pub/Sub など)
    • プラットフォーム停止時の正常なシャットダウン
    • Google の推奨方法とドキュメント

    1.2 安全なアプリケーションを設計する。以下のような点を考察します。

    • 該当規則に適用される実装要件(データ消去など)
    • サービスとリソースを保護するセキュリティ メカニズム
    • アプリケーションのバイナリとマニフェストを保護またはスキャンするセキュリティ メカニズム
    • アプリケーション シークレットとキーの保存とローテーション(Cloud KMS、HashiCorp Vault など)
    • Google サービスに対する認証(アプリケーションのデフォルト認証情報、JSON Web Token(JWT)、OAuth 2.0 など)
    • ユーザー、グループ、サービス アカウントの IAM ロール
    • サービス間の通信(サービス メッシュ、Kubernetes ネットワーク ポリシー、Kubernetes 名前空間など)を保護する
    • 最小限の特権アクセスでサービスを実行する(Workload Identity など)
    • 証明書を利用した認証(SSL、mTLS など)
    • Google の推奨方法とドキュメント

    1.3 アプリケーション データを管理する。以下のような点を考察します。

    • Google が管理するデータベース(Firestore、Cloud Spanner、Cloud Bigtable、Cloud SQL など)のデータベース スキーマを定義する
    • 以下のようなユースケースの考慮事項に基づいてデータ ストレージ オプションを選択する
      • オブジェクトへの時間制限付きアクセス
      • データ保持に関する要件
      • 構造化データと非構造化データの比較
      • 強整合性と結果整合性の比較
      • データ容量
      • Cloud Storage のデータへのアクセス頻度
    • Google の推奨方法とドキュメントを確認する

    1.4 アプリケーションのモダナイゼーション。以下のような点を考察します。

    • マネージド サービスを使用する
    • モノリスをマイクロサービスにリファクタリングする
    • ステートレスで水平方向にスケーラブルなサービスの設計
    • Google の推奨方法とドキュメント

セクション 2: アプリケーションのビルドとテスト

    2.1 ローカル開発環境を設定する。以下のような点を考察します。

    • ローカル アプリケーション開発向けの Google Cloud サービスをエミュレートする
    • Google Cloud プロジェクトを作成する
    • コマンドライン インターフェース(CLI)、Google Cloud Console、Cloud Shell ツールを使用する
    • デベロッパー ツールを使用する(Cloud Code、Skaffold など)

    2.2 効率的なコードを記述する。以下のような点を考察します。

    • アルゴリズムの設計
    • 最新のアプリケーション パターン
    • ソフトウェア開発方法論
    • コードのデバッグとプロファイリング

    2.3 テストする。以下のような点を考察します。

    • 単体テスト
    • 統合テスト
    • パフォーマンス テスト
    • 負荷テスト

    2.4 構築する。以下のような点を考察します。

    • ソース コントロール管理
    • コードから安全なコンテナ イメージを作成する
    • デプロイ アーティファクトを構成するサービス(Cloud Build、Container Registry など)を使用して、継続的インテグレーション パイプラインを開発する
    • 継続的インテグレーション パイプラインの有効性を確認、改善する

セクション 3: アプリケーションのデプロイ

    3.1 対象のコンピューティング環境(Compute Engine、Google Kubernetes Engine など)に適したツール(Cloud Build、Spinnaker、Tekton、Anthos Configuration Manager など)を使用して適切なデプロイ戦略を推奨する。以下のような点を考察します。

    • Blue/Green デプロイ
    • トラフィック分割デプロイ
    • ローリング デプロイ
    • カナリア デプロイ

    3.2 Compute Engine にアプリケーションとサービスをデプロイする。以下のような点を考察します。

    • アプリケーションを仮想マシン(VM)にインストールする
    • VM のサービス アカウントを管理する
    • アプリケーションをブートストラップする
    • アプリケーションのログと指標をエクスポートする
    • Compute Engine の VM イメージとバイナリを管理する

    3.3 Google Kubernetes Engine(GKE)にアプリケーションとサービスをデプロイする。以下のような点を考察します。

    • コンテナ化したアプリケーションを GKE にデプロイする
    • Kubernetes RBAC と Google Cloud IAM の関係を管理する
    • Kubernetes 名前空間を構成する
    • ワークロードの仕様(リソース要件など)を定義する
    • Cloud Build を使用してコンテナ イメージを作成する
    • ユーザー トラフィックとその他のサービスへのアプリケーションによるアクセス可否の構成
    • コンテナのライフサイクルを管理する
    • Kubernetes のリソースと構成を定義する

    3.4 Cloud Functions の関数をデプロイする。以下のような点を考察します。

    • Google Cloud サービスからのイベントを介してトリガーされる Cloud Functions(Pub/Sub、Cloud Storage オブジェクトなど)
    • HTTP によって呼び出される Cloud Functions
    • Cloud Functions の保護

    3.5 サービス アカウントの使用。以下のような点を考察します。

    • 最小権限の原則に従ってサービス アカウントを作成する
    • サービス アカウントの秘密鍵ファイルをダウンロードして使用する

セクション 4: Google Cloud サービスの統合

    4.1 アプリケーションにデータサービスとストレージ サービスを統合する。以下のような点を考察します。

    • さまざまなデータベース(SQL など)のデータの読み込みおよび書き込み
    • データストア(Cloud SQL、Cloud Spanner、Firestore、Cloud Bigtable など)に接続する
    • データを非同期で(Pub/Sub などから)公開または使用するアプリケーションを作成する
    • Cloud Storage のオブジェクトを保存、取得する

    4.2 アプリケーションにコンピューティング サービスを統合する。以下のような点を考察します。

    • GKE と Compute Engine でのサービス ディスカバリを実装する
    • インスタンス メタデータを読み取ってアプリケーションの構成を取得する
    • OAuth2.0 ウェブフローと Identity-Aware Proxy を使用してユーザーを認証する
    • Workload Identity を使用して Cloud APIs に対する認証を行う

    4.3 アプリケーションに Cloud API を統合する。以下のような点を考察します。

    • Cloud API を有効化する
    • 以下の点を考慮に入れて、サポートされているオプション(Cloud クライアント ライブラリ、REST API または gRPC、API Explorer など)を使用して API 呼び出しを行う
      • 一括処理リクエスト
      • 戻りデータの制限
      • 結果のページ分け
      • 結果のキャッシュ保存
      • エラー処理(指数バックオフなど)
    • サービス アカウントを使用して Cloud API 呼び出しを行う

セクション 5: アプリケーション パフォーマンス モニタリングの管理

    5.1 Compute Engine VM を管理する。以下のような点を考察します。

    • シリアルポートを使用してカスタム VM イメージをデバッグする
    • 失敗した Compute Engine VM の起動を診断する
    • VM から Cloud Logging にログを送信する
    • ログを表示して分析する
    • 利用リソースの推移を点検する

    5.2 Google Kubernetes Engine のワークロードを管理する。以下のような点を考察します。

    • ロギングとモニタリングを構成する
    • コンテナのライフサイクル イベント(CrashLoopBackOff、ImagePullErr など)を分析する
    • ログを表示して分析する
    • カスタム指標を作成してエクスポートする
    • 外部指標とそれに対応するアラートを使用する
    • ワークロードの自動スケーリングを構成する

    5.3 アプリケーションの性能を改善する。以下のような点を考察します。

    • モニタリング ダッシュボードを作成する
    • カスタム指標とログベースの指標を作成する
    • Cloud Debugger を使用する
    • エラーを分析するためにスタック トレースを確認する
    • Google Cloud からログをエクスポートする
    • Google Cloud Console にログを表示する
    • アプリケーションのパフォーマンスを確認する(Cloud Trace、Prometheus、OpenTelemetry など)
    • 実行中のアプリケーションのモニタリングとプロファイリングを行う
    • ドキュメント、フォーラム、Google Cloud サポートを利用する