クラウドネイティブ開発で注目されるPlatform Engineering、チーム作りから環境構築までのポイントを知る

2024年1月30日(火)
提供:レッドハット株式会社

クラウドネイティブ開発が進む中で、Platform Engineeringが注目を集めるようになった。Platform Engineeringとは何か、従来の取り組みとどう違い、具体的にどう実践していけばよいのか。2023年12月11日〜12日に行われた「CloudNative Days Tokyo 2023」において、「これからのPlatform Engineeringを支えるコンテナ×Backstageの真価」と題されたセッションに、レッドハット株式会社のスペシャリストソリューションアーキテクト 北村慎太郎氏が登壇し、Platform Engineeringの価値や実践方法を解説した。

クラウドネイティブが直面する課題を解消、
「Platform Engineering」が目指すもの

クラウドネイティブの取り組みが活発化する中、取り組み当初は想定していなかった課題に直面するケースが増えてきた。中でも大きな課題となっているのが、目標としていたビジネス成果につながりにくいということだ。クラウドネイティブを取り巻く課題について、レッドハットの北村 慎太郎氏(写真)は、こう説明する。

写真:レッドハット株式会社 テクニカルセールス本部 クラウドサービス スペシャリストソリューションアーキテクト部 Solution Architect 北村 慎太郎氏

「クラウドネイティブを進める目的はビジネス成果の向上です。ビジネス成果の向上はあらゆる企業が目指す目標であり、クラウドネイティブは『ITイノベーションの加速』と『システムの信頼性の担保』という2つの取り組みを両立させることでこの目標の実現を目指します。ただ、クラウドネイティブの技術やツールはこの数年で大きく膨れ上がり、開発者はさまざまツールを使いこなしながらクラウドネイティブを進めなければならなくなりました。その結果、開発者の認知負荷が高まり、ビジネス成果向上への道のりが長く険しいものなってきています。本来、イノベーションの加速のために入れたツールがイノベーションの低下につながっているのです」(北村氏)。

クラウドネイティブを実現するための基本的なツールや技術としてはDocker、Kubernetes、Gitなどがある。また、セキュリティ、テスト、CI/CD(継続的インテグレーション/継続的デリバリー)などにおいてもさまざまなツールがある。CNCF(Cloud Native Computing Foundation)が手がけるプロジェクトだけでも現在60件(Graduated ProjectsとIncubating Projectsの合計)を超える。ツールや技術の多さが開発者の障壁になる中、提唱されるようになったのがプラットフォームエンジニアリング(Platform Engineering)だ(図1)。

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

「Platform Engineeringは、プラットフォームの力を使って開発者のジャーニーを整備し誘導することで開発生産性の向上を目指すプラクティスです。Platform Engineeringチームを組成し、自分たちが持っているプラットフォームをプロダクトやサービスと見なして開発者に提供します。開発チームはエンドユーザーであり、エンドユーザーが求める機能をプラットフォームに具備して提供します。そしてエンドユーザーからフィードバックをもらいながら、プラットフォームを継続的に改善していきます」(北村氏)。

SREは信頼性の担保に、
Platform EngineeringはITイノベーションの加速に重点を置く

Platform Engineeringチームのタスクは多岐にわたる。コンテナプラットフォームの提供から、周辺インフラ(データベース、ストレージ、DNS)の提供、ユーザーアカウントの払い出し、ソースコードリポジトリの提供、開発効率化ツールやCI/CDツール、監視ツールの提供、開発ノウハウの提供などだ。

「従来のインフラチームや開発基盤チームが取り組んでいるものも含まれます。Platform Engineeringチームが従来と異なるのは、これらの作業を開発者のエクスペリエンスや生産性を向上させるためのあらゆるタスクとみなして、自動化やセルフサービス化を行うことでさらなる開発者の体験を高めていくことです。SRE(サイトリライアビリティエンジニアリング)との違いについてはよく議論になりますが、私なりに整理すると、SREとPlatform Engineeringの違いはPI(パフォーマンスインジケーター)です。SREのPIはエラーバジェット(MTTRやMTBFなどのSLO)の担保に重点を置きますが、Platform Engineeringは開発者体験が優先的なPIとなります(図2)。具体的には、チーム立ち上げから開発開始までの期間、開発開始から初回リリースまでの期間、チーム人数の割合、開発規模と開発者の割合、開発者の満足度など、開発者がいかに効率良く開発できているか、そこに貢献できているかがPIです。SREが信頼性の担保に重点をおいてサポートするのに対し、Platform EngineeringはITイノベーションの加速を重点的にサポートしていくというプラクティスの違いがあります」(北村氏)。

図2:SREとPlatform EngineeringをPIの観点から見た場合の違い

例えば、「チーム立ち上げから開発開始までの期間」というPIに注目すると、検討しなければならない要素としては大きく3つある。開発環境、ルール、ノウハウだ。

「従来の基盤チームは開発環境や開発ガイドラインの一部を提供してきました。ただ、クラウドネイティブ開発ではツールが多く、使い方に苦戦します。そこで開発環境だけでなく、ルールやノウハウをあわせて提供するための仕組みとして注目されているのがGolden Pathです。Golden Pathは、開発のベストプラクティスを実際に動作する環境とともに開発者に提供する仕組みです(図3)」(北村氏)。

図3:Golden Pathは開発のベストプラクティスを実際に動作する環境とともに開発者に提供する

Backstage、Golden Path、Kubernetesを組み合わせて、
クラウドネイティブ開発を高速化

Golden Pathを構成するのは、実際に動くサンプルアプリケーションとコード、アプリケーションの開発に必要なCIパイプラインとGit運用環境(GitOps)、Golden Pathによって構築された環境のオブザーバビリティ(可観測性)、Golden Pathの価値を正しく理解し活用するための技術ドキュメントなどだ。

「Golden Pathを提供することで、Platform Engineeringチームからのルールを付与しつつ、動くアプリとコードで開発者のノウハウ習得をサポートしていきます。そして、Golden Pathを提供していくときに利用されるのがBackstageです。Backstageは、CNCFでホストされたオープンなプロジェクトで、開発者ポータルを提供するプロダクトとなります。開発者が実際に利用する統合ポータルの機能と、プラットフォームの機能を活用するためのユーザーインタフェースを提供します。Backstageを介してGolden Pathを提供することで、開発者の体験を高めていくことができます」(北村氏)。

例えば「チーム立ち上げから開発開始までの期間」を短縮したいという場合に、BackstageをGolden PathやKubernetesと組み合わせて利用すると、開発者はポータルからPlatform EngineeringチームがサポートするGolden PathやGitリポジトリを使ってKubernetes上に自身の開発環境を構築できるようになる(図4)。

図4:Backstage、Golden Path、Kubernetesを組み合わせたクラウドネイティブ開発

その際、アプリケーションのビルドやデプロイの処理だけでなく、単体テスト(UT)や結合テスト(IT)、セキュリティスキャンなどもCIパイプラインに乗せてデプロイすることが可能だ。さらに、構築した環境で使われているツールの情報やパイプラインの実行状況、イメージの脆弱性の情報、技術ドキュメント(TechDocs)などもポータルから一元的に確認できるようになる。

「Backstageは、Platform Engineeringのノウハウの集大成を展開するためのポータルです。開発者はBackstageを叩くだけで、環境の構築からソースコード更新にともなうイメージの更新、さまざまな環境の情報を確認できるようになります。また、Platform EngineeringチームはBackstageを通して開発のためのTechdocsを払い出すこともできます。Platform Engineeringチームにとっては、開発と運用ノウハウの集約と展開を強力に支援してくれるポータルになるのです」(北村氏)。

Backstageをベースとした開発者ポータル
「Red Hat Developer Hub」を提供開始

ただ、Backstageは、Platform EngineeringチームがGolden Pathの中身や実際の開発ノウハウを習得したり体系化したりすることを支援するものではない。

「そのため、Backstageを導入する際には、まずはクラウドネイティブ開発と運用のノウハウ習得からはじめていく必要があります。例えば、1つ小さなアプリをアジャイルチームと連携して構築し、商用リリースまで持っていく。そうした経験を積みながら、クラウドネイティブで開発・運用していくにはどうしたらいいのか模索してノウハウを集めていきます。その後、集めたノウハウをGolden Path化し、それをBackstageを使って開発者に提供し、開発者のフィードバックをもらいながら、Golden Pathを改善していくというプロセスを回していきます。Backstageを導入すればすぐにクラウドネイティブ開発ができるというわけではないことには注意が必要です」(北村氏)。

とはいえ、Backstageは、Platform Engineeringの世界を実現するうえで強力なツールになる。レッドハットも、その重要性を認識し、Backstageをベースにした商用ディストリビューションとして「Red Hat Developer Hub」を提供する。Red Hat Developer Hubでは、OpenShift環境で、定義済み、サポート付きのGolden Pathの提供や専用プラグインの提供、エンタープライズレベルのサポートが提供される(図5)。

図5:Red Hat Developer Hubは開発チームのコラボレーションを加速させる

最後に北村氏は次のように語り、講演を締めくくった。

「Platform Engineeringは開発者を幸せにするためのプラクティスです。実現するには開発チームが開発を始めるための時間の短縮を目指して着手することがポイントです。そのためにはGolden Pathを構築して開発者のノウハウ習得をいかにサポートしていくかが問われます。Golden Pathを提供し運用する際に真価を発揮するのがBackstageです。もちろんBackstageだけでは十分ではありません。Platform Engineeringチームに閉じるのでなく、開発者とコミュニケーションをとりながら組織にとって最適な環境を構築することが重要です」(北村氏)。

連載バックナンバー

クラウドイベント
第12回

CloudNative Days Tokyo 2023から、クラウドネイティブなトラブルシューティングのノウハウを紹介

2024/4/26
CloudNative Days Tokyo 2023から、メルペイのSRE Tech Leadによるクラウドネイティブ環境におけるトラブルシューティングの手法を解説したセッションを紹介する。
クラウドイベント
第10回

CloudNative Days Tokyo 2023から、Yahoo! JAPANを支えるKaaS運用の安定化やトイル削減の取り組みを紹介

2024/3/11
CloudNative Days Tokyo 2023のセッションから、LINEヤフーの社内KaaSであるZCPを安定運用さるための施策を同社のSREが解説したものを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています