昨今、「プラットフォームエンジニアリング(Platform Engineering)」というキーワードを耳にする機会が増えた。プラットフォームエンジニアリングとは、再利用可能なアプリケーションやセルフサービス機能などの提供により、開発者の生産性と開発体験を向上させる仕組みを指す。
ガートナー ジャパンが2023年12月に発表した「ソフトウエア・エンジニアリングのハイプ・サイクル:2023年」では、今後数年間でプラットフォームエンジニアリングが普及していくとの見解も示されるなど、今注目のトピックの一つだ。
クラウドネイティブイノベーターズ協会は12月6日、日本へのプラットフォームエンジニアリング普及を目的としたコミュニティ「Platform Engineering Meetup」の第6回イベントを開催した。
「いろんな会社におけるPlatform Engineeringについて学ぶ回」と題された今回は、4人のコミュニティメンバーが登壇。それぞれ自社におけるプラットフォームエンジニアリングの取り組みについて紹介した。
その中から、本稿ではLINEヤフーにてプラットフォームエンジニアリングを推進する早川博氏のセッション「大規模Webアプリケーションプラットフォームを開発して軌道に乗るまでにやったこと」の模様をお届けする。
開発したWebアプリケーションプラットフォームの概要
早川氏からは、社内向けに開発・運用しているWebアプリケーションプラットフォームについて、立ち上げから運用が軌道に乗るまでに行った取り組みを中心に紹介がなされた。
同プラットフォームは、Webアプリケーションのビルドやデプロイ、監視といった作業を省力化するものだ。簡単なコマンドを実行するか、マニフェストファイルをクラスタに適用するだけでアプリが起動し、エンドポイントが割り当てられてアクセスが可能になる。
また、LINEヤフーのプライベートクラウド上にある各種サービスと連携する機能も提供する。例えば、ブラウザでGUIベースのコンソールにアクセスしてアプリをデプロイするためのNamespaceを作成したり、デプロイ後に自動的にメトリクスやログをバックエンドのプラットフォームに送ったりといったことが可能だ。その他、IAM(Identity and Access Management)系などのさまざまなプラットフォームと連携できるという。
さらに、運用コストを低減するため、1つのクラスタで複数のサービスをホストするマルチテナント構成となっている。その中身は、複数のKubernetesクラスタを束ねたものだ。
「ヤフーは合併以前から大きなサービスを抱えているので、それをなるべく少数のクラスタでホストできるようにするために、かなりスケーラブルな環境になっています」(早川氏)