【Google Cloud Next Tokyo ’24】 Platform Engineering入門 : Golden Path の構築と活用(D1-APP-01)

Google Cloud

2024.8.7

Topics

はじめに

お久しぶりです、reonoです!
Google Cloud Next Tokyo ’24に現地参加してきました。
体験型のブースや興味深いセッションがあり楽しめました!
今回は視聴セッション「Platform Engineering入門 : Golden Path の構築と活用」のレポートを書かせて頂きました!

セッション概要

タイトル

Platform Engineering 入門: Golden Path の構築と活用

スピーカー

Google Cloud
カスタマー エンジニアリング アプリケーション モダナイゼーション スペシャリスト
関本 信太郎氏

概要

Platform Engineering は、開発者の生産性を向上させるアプローチです。このセッションでは、GKE や Cloud Run を活用し Platform Engineering を実践しているお客様の実例を交えながら、具体的な Golden Path の構築方法についてお話します。
出典:Platform Engineering 入門: Golden Path の構築と活用

レポート

プラットフォームエンジニアリングとは

プラットフォームエンジニアリングは基盤のユーザーが簡易に環境を利用開始できるよう、組織の技術レベルに合わせたテンプレート等を整備する考え方です。

プラットフォームエンジニアリングとは、組織において有用な抽象化を行い、セルフサービスインフラストラクチャを構築するアプローチです。
散乱したツールをまとめ、デベロッパーの生産性を高める効果があります。
プラットフォームエンジニアリングの狙いは、デベロッパーが体験する日常的な困難を解消して、行きすぎた責任共有モデルが引き起こす学習の手間を抑制することです
出典:Platform Engineering 入門: Golden Path の構築と活用

Gartnerが発表した2024年のソフトウェア・エンジニアリングに関する戦略的テクノロジ・トレンドのトップ5にプラットフォームエンジニアリングが含まれています。

Gartnerは、2026年までに、大規模なソフトウェア・エンジニアリング組織の80%が、アプリケーション・デリバリのための再利用可能なコンポーネント、ツール、サービスを提供する社内プロバイダーとして、プラットフォーム・エンジニアリング・チームを結成するとみています。
出典:Gartner、「ソフトウェア・エンジニアリングのハイプ・サイクル:2023年」を発表-AIに関するプラクティスやプラットフォーム・エンジニアリングは、2~5年以内にソフトウェア・エンジニアリングにおける主流の採用に

DevOpsとの関係性

DevOpsとは

DevOpsは、ソフトウェア開発(Dev)とIT運用(Ops)のプロセスを統合し、協調して効率的に進めるための考え方です。

DevOpsを導入することで、下記のようなメリットを得ることができます。

  • アイデアをマーケットに投入するまでの時間を短くする
  • カスタマーからのフィードバックを早く得る/それに対してすぐにレスポンスする

出典:DevOps and CI/CD on Google Cloud explained

DevOpsのデメリット

DevOpsはアプリケーションを素早くデプロイできるようになりましたが、アプリケーションエンジニアが網羅する範囲が設計から本番までの全体に及ぶようになってしまいました。
網羅する範囲が広くなると膨大な学習コストがかかることだけでなく、本来注力すべきソフトウェア開発に集中できないという問題が発生します。
このようにタスクに集中できなくなることを認知負荷と言います。

Google Cloud Blogのプラットフォームエンジニアリングの記事にも認知負荷という言葉が使われています。
Google Cloud で開発者エクスペリエンスを再定義する

つまり、プラットフォームエンジニアリングとは行き過ぎたDevOpsの考え方に対する起動修正のようなものです。

Google Cloudが考えるPlatform Engineering

講演ではプラットフォームエンジニアリングとは以下のように話されていました。

Platform Engineeringとは開発チームに舗装された道路を提供できるようにチームを強化し、プラットフォームをプロダクトとして提供することにより、ユーザーのニーズに合わせてプラットフォームが進化し続けられるようにします。
出典:Platform Engineering 入門: Golden Path の構築と活用

プラットフォームエンジニアリング原則

  • 開発者はインフラを構築するために最小限の実行可能なプラットフォームを使用します
  • プラットフォームはプロダクトであり、プロダクトマネージャーが割り当てられるべきです
  • プラットフォームチームは、複雑なインフラにまつわるツールチェーンと抽象化に責任を持ち、ビルドを実施します
  • プラットフォームは、エンドツーエンドの舗装された道路を提供します

プラットフォームエンジニアリングのメリット

プラットフォームエンジニアリングにより以下の3つが期待されます。

  1. 開発者の認知負荷を軽減し、燃え尽き症候群のリスクも軽減
  2. アプリケーション開発を加速し、低コストで市場投入までの時間を短縮
  3. 組織に合わせたガードレールを早期に取り入れ、安全性を向上

開発生産性を高めるためのプラットフォーム

  • プロビジョニングの自動化
    インフラを抽象化して自動化することで、プラットフォーム利用者の認知負荷を軽減
  • アプリケーションライブラリ
    新しいアプリケーションを素早くブートストラップするために、テンプレートのライブラリを用意
  • セルフサービスUX
    新しいアプリや機能の導入は、ツール、ポータルUI、またはその両方を通じたセルフサービス
  • ガバナンスとガードレール
    コスト管理、セキュリティ、ガバナンスがプラットフォームに標準組み込み

ゴールデンパス

組織に合わせたガードレールのことをゴールデンパスと呼んでいます。

Cloud Native Computing Foundation の定義では、ゴールデンパスは「迅速なプロジェクト開発に役立つ巧みに統合されたコードと機能のテンプレート構成」とされています。簡単に言うと、よくあるタスクのためのセルフサービス テンプレートです。
出典:道を照らす: プラットフォーム エンジニアリング、ゴールデンパス、セルフサービスのパワー

組織やチームによって求める抽象度は異なるため、ユーザーにヒアリングを行い適切なゴールデンパスを提供していく必要があります。

ゴールデンパスの一例

  • Team Scope
    複数のGKEクラスターでマルチテナント管理をGoogle Kubernetes Engine(GKE)のフリートチーム管理を使って行います。
    チームごとにログを保存するCloud Storageの場所を変更できるので権限管理も簡単になります。
    フリートチーム管理

  • 一貫性のある開発環境
    環境構築やソースコードのセキュリティ対策、開発機のスペックによる課題をCloud WorkStationsを使うことで解決できます。
    また、Geminiによるコード生成もWorkStations上で行えます。
    WorkStationsの裏側ではDockerが使われているため環境の際なく迅速にオンボーディングを行なえます。
    Cloud Workstations の概要

Thinnest Viable Platform

ゴールデンパスを作り始めるにはユーザー(開発者)の理解からはじめることが重要だそうです。
また、いきなりセルフサービスポータルのような大きい仕組みを作らず小さいものから始めるべきです。
例えば、以下のいずれかから始めます。

  • CI/CDパイプラインによるデプロイ
  • 整備されたドキュメント群によるプラットフォームの活用方法
  • アプリケーションのテンプレート、ライブラリ、マニフェストなどの公開

感想

恥ずかしながらプラットフォームエンジニアリングという言葉を知らなかったので勉強になりました。
インフラ構築やアドバイザリーだけでなく、頻繁にプロダクトを作るお客様にはこのような支援もしてみたいと思いました。
また、インフラ寄りのクラウドエンジニアでも、頻繁に発生する環境の初期構築を素早く行えるようTerraformやスクリプトを社内で整備するのもゴールデンパスにあたるなと思いました。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

reono

2022年4月、NHNテコラスに新卒入社。大学時代は山に登ったり、インドに行ったりしてました。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら