Platform Engineeringが導く課題解決の方法
吉川氏によれば、ボブが直面した3つの課題には、2つのアプローチが考えられるという。すなわち、「環境構築の難しさ」「不十分なドキュメントとアクセス」に対しては「ゴールデンパスの整備」、「チーム間のコミュニケーション」に対しては「チームAPIの整備」が効果的だというのだ。
1つ目の解決アプローチであるゴールデンパスとは、「開発のベストプラクティスを、実際に動作する環境とともに提供する仕組み」だ。吉川氏はこれについて、「ベストプラクティスをすぐに利用できる形で提供することで、開発者の生産性を向上させるのが目的」と説明する。
前述のボブのストーリーでは、社内にさまざまな開発言語があり、それぞれに環境が異なっていたという状況が、ボブの苦労の一因でもあった。しかし、もしそれぞれの言語や環境に対して分かりやすいサンプルが揃っていれば、状況は随分と変わってくる。「クローンすればすぐ使える」状態、すなわちベストプラクティスが提供されていれば、ボブが第一歩を踏み出すのは非常に簡単だっただろう。
あるいはドキュメントに関して、最新化された情報がプラットフォーム上に集約・公開されており、ある1ヶ所を見れば必ず最新のドキュメントへアクセスできる状態が整っていれば、ボブが焦りやフラストレーションを感じる場面は少なかったに違いない。このように、途中から開発に加わったエンジニアでもストレスなくチームにジョインできる仕組みこそ、ゴールデンパスというわけだ。
とはいえ、これまでPlatform Engineeringに触れてこなかった開発者が、いきなり完全なゴールデンパスの構築を目指すのは難しい。本セッションのタイトルを「Platform Engineeringことはじめ」と命名していることからも分かるように、「まずは本当に初歩的なところから始めてみよう」とするのが今回のねらいだ。この前提のもと吉川氏は、Platform Engineeringの第一歩を以下のように提案した。
「たとえばエラーメッセージに直面したとき、どのように解決したかを環境構築のドキュメントに反映させ、他のメンバーに共有するだけでも一歩目としては充分だ。情報が断片化されていて一貫性がないと感じたのであれば、散らばったドキュメントへアクセスするためのリンク集やインデックスを作るのも手だろう。プロジェクト特有の専門用語が多く、初見のメンバーには理解が難しいのであれば、用語集を作るだけでもいい」。
吉川氏は、こうした「当たり前」の工夫をひとつひとつ進めていくことがゴールデンパス構築への第一歩になると強調する。つまずきそうな石をひとつずつ取り除きながら、歩きやすい道を着実に整備していくことが大切なのだ。
2つ目の解決アプローチは「チームAPI」だ。チームAPIとは「チーム間のやり取りについてのインターフェースを定義したもの」であり、「我々のチームへの連絡は、このSlackのチャンネルで、〇〇さんをメンションして連絡してください」「作業依頼フォームを準備しているので、依頼がある場合は必要な事項を埋めて送信してください」などのルールを定めることがこれに当たる。
チームAPIがなければ、依頼をしたくてもステークホルダーがわからず、連絡手段も分からないという状況に陥ってしまう。ちょうどアプリケーションのAPIのようにコミュニケーションの取り方を定めておくことで、各チームの担当領域が可視化され、チームへの依頼窓口が明確になるというわけだ。これと併せて、標準的な作業のリードタイムをあらかじめ公開しておけば、透明性のある状況把握も可能になるだろう。
こちらもゴールデンパスと同様、まずはできるところから始めてみることが大切だとして、吉川氏はこう訴える。「いきなり他チームに『情報を出してくれ』と言っても、なかなか乗ってはもらえない。まずは自分のチーム内で役割や担当サービス、連絡のパスを明確にし、社内に公開していくことが大切だ。そのうえで、他のチームに対して『これと同じようにしてほしい』と訴えていくことが、チームAPIの整備につながる」
Platform Engineeringを実践する上では、ともかくも一つずつ着実にレベルを上げ、組織を成熟した形に持っていくことが大切だと吉川氏は強調する。そして、明日から始められるポイントとして、「メンバーレベルであれば、現場で自分がつまずいたところを積極的に取り除き、情報を更新し、そのドキュメントを公開するというアクションを取ってほしい。各チームのリーダークラスであれば、情報整備をチームのミッションと捉え、メンバーが情報整備に稼働時間を割くのを許容する文化を醸成してほしい」と会場に向かって呼び掛けた。
ここでバトンは、アンカーとなる渡邊氏へとバトンタッチ。Platform Engineering Meetupにおける実践プラクティスへと話題を移す。