開発者を「顧客」として捉え、生産性を向上させるPlatform Engineering
リリースと改善を高頻度で回す最近のITシステム開発。何かあってもすぐに修正できることで、品質と安定性を担保することへの精神的負担から少し解放され、場合によっては評価にもつながったハッピーな開発者も少なくないだろう。一方で、運用周りを考える必要が生じるなど責任範囲が広がり、ツールやスキルで習得すべきものも増加。開発そのものに集中しづらく、いろいろなことをカバーする必要があることからスーパーマン以外が活躍しづらいという課題も浮上している。
そこで登場したのが、Internal Developer Platform(IDP)だ。IDPは、開発者を「顧客」として捉え、開発により集中できる環境を整えることを目的とした基盤のことだ。IDPを運用開発するのは、専任チームだ。開発に関わる基本的な作業を自動化やセルフサービス化するなどにより、開発者が抱えるリアルな課題を解決する。一見するとユーザーとパブリッククラウドの関係のように見えるが、組織ごとの課題や要件に合わせて環境をカスタマイズできる点で大きく異なると、ヤフーのプライベートクラウド開発部門でKubernetesベースのコンピューティングプラットフォームの開発・運用に従事する早川博氏は述べる。
そのIDPを実現するための要素技術として重要な役割を担うのが、多様性のあるエコシステムが構築されたクラウドネイティブなテクノロジー群だ。特にKubernetesは、さまざまなワークロードを安定的に動かすための基本機能が充実するほか、組織固有の要件を実装するための拡張ポイントが多数用意されており、開発者が使い勝手に慣れている点も含めてIDP構築に最適と早川氏は述べる。実際、ヤフーではKubernetesの拡張ポイントのひとつであるカスタムコントローラーを使ってIDPを構築している。