Platform Engineeringへの招待
2023-03-09 Platform Engineering Meetup #1
jacopen
PagerDuty
Transcript
皆さんこんにちは。jacopenと申します。 普段はHashiCorpという会社で仕事をしています。皆さんTerraformなどを使われている方が結構いらっしゃるのが嬉しいです。そういったツール周りを扱っているHashiCorpで仕事をしつつ、CloudNative Daysというカンファレンスや、Platform Engineeringに関する勉強会もやっています。
プラットフォームに関わる仕事を10年以上やってきました。元々Cloud FoundryというPlatform as a Service(PaaS)のOSSを使ったPaaSを作っていました。その後、Pivotalを経てVMwareになり、KubernetesやCloud Foundryを用いた製品をお客様に提供する仕事や、プラットフォームチーム作りの支援などをしてきました。
さて、突然ですがPlatform Engineeringという話題が特に半年ぐらい前から盛り上がっていますよね。そもそもPlatform Engineeringとは何でしょうか。
Platform Engineeringという考え方自体は以前から使われていましたが、世の中的に広がり始めたのはガートナーのハイプサイクルがきっかけだったと思います。それによると、2026年までに組織の80%がPlatform Engineeringのチームを結成し、そのうち75%がセルフサービスの開発者ポータルを取り入れるとのことです。
Platform Engineeringの明確な定義はまだありませんが、ガートナーやPlatform Engineering.orgなどを参考にすると、開発者の体験や生産性向上のためにセルフサービスで利用できるツールチェーンやワークフローを設計・構築する分野と言えるでしょう。
なぜPlatform Engineeringが注目されるようになったのでしょうか。
クラウド以前は、開発者とシステム管理者の組織がサイロ化していて、コミュニケーションコストが高く、システム管理者がボトルネックになるなどの問題がありました。
しかし、クラウドの登場やDevOpsの浸透により、APIドリブンで環境を払い出せるようになり、ソフトウェアのデリバリーを継続的に行う機運が高まりました。DevSecOpsのようにセキュリティをビルドインで組み込んでいく動きもありました。
ただ、クラウドネイティブの時代になると、多種多様なツールを組み合わせる必要があり、個人や一つのチームですべてをこなすのは認知的負荷が高すぎて現実的ではありません。そこで、Platform Engineeringの考え方が出てきたのです。
プラットフォームチームを作り、開発者がセルフサービスで利用できる内部開発者プラットフォーム(IDP: Internal Developer Platform)を提供することで、開発者の認知負荷を下げることができます。
ただ、共通プラットフォームを作ろうという考えは昔からありました。それがうまくいかなかった理由は何でしょうか。私の感覚値ですが、共通プラットフォームの4割は使われずに廃れ、本当に成功するのは2割以下だと思います。
プラットフォームが失敗する理由は、プラットフォームに価値がないからです。プラットフォームの価値とは利用者である開発者にとっての価値のことで、開発者に価値を提供できなければ使われなくなります。
これまでの共通プラットフォームはどうやって作るかという技術的側面ばかりに注力していました。コンテナ、Kubernetes、サービスメッシュなどを導入すれば効率化できると考えていましたが、開発者が本当に困っていたのはデータベースの問題だったりしました。
プラットフォームを成功させるには、誰に何をどうやって提供するかをよく考え、継続的に回していくことが重要です。
そこで有効なのが、「プラットフォーム・アズ・ア・プロダクト」という考え方です。プラットフォームの利用者である開発者を顧客と捉え、プラットフォームを一つのプロダクトとして扱うのです。
プロダクトマネジメントの手法を取り入れ、顧客にどんな価値を提供すれば喜んでもらえるかを考えます。顧客の困りごとを知るためにヒアリングを行い、リリース計画を立て、どうサポートしていくかなども検討します。
プラットフォームチームにプロダクトマネージャーを置き、プラットフォームをプロダクトとして捉えて継続的に育てていくことが大切だと考えています。
DevOpsの考え方は間違っていませんが、世の中は進化し続けます。その変化についていくためにPlatform Engineeringという考えがあり、DevOpsの延長線上にあるものだと捉えるのがよいでしょう。
Platform Engineeringに関わるエンジニアは、学びのエキスパートであり、複雑さを管理するエキスパートである必要があります。世の中の変化に対応するために学び続け、複雑な世界をシンプルにしていくスキルを身につけることが求められます。
私がこの勉強会を立ち上げたのは、プラットフォームに関わる皆さんがそうしたエキスパートになるための場を提供したいと考えたからです。先人の知見を学んだり、失敗から学んだり、技術だけでなくマネジメントの面でも学びを深めていければと思っています。
Platform Engineeringはこれからますます重要になってくる分野です。一緒に学んでいきましょう。ご清聴ありがとうございました。