主席エンジニアと「Fensi Platform」テックリードが語る、プラットフォームエンジニアリングがもたらす良質な開発体験

技術・デザイン

プラットフォームエンジニアリングは、複雑化する開発環境やクラウドサービスの活用を効率化し、エンジニアの生産性を向上させる新しい手法です。株式会社CAMでは、この手法を活用し、認知負荷の軽減や開発力の向上に成功しています。本記事では、プラットフォームエンジニアリングの具体的な利点と課題、そして組織内での実践事例について、サイバーエージェント主席エンジニアである船ヶ山と、株式会社CAMテックリードの石川の視点から議論をしました。

Profile

  • 船ヶ山 慶 (株式会社CAM 専務執行役員)
    2010年入社。主席エンジニア。様々なメディア事業やゲーム事業のバックエンド / インフラを担当した後、取締役として動画配信サービスを展開する子会社の立ち上げに参画。2018年に子会社CAMのCTO就任。ならびに2022年より子会社タップルのCTOも担う。

  • 石川 諒 (株式会社CAM Creative Division Platform Engineer Group)
    2019年に株式会社CAMにバックエンドエンジニアとして新卒入社。
    Node.js, TypeScript, Go を書きつつ、社内の多数のサービスを支えるプラットフォームの開発・運用に従事。現在は、プラットフォーム上で開発するエンジニアの開発者体験や生産性を向上させるため、SREと協力しながら Platform Engineering に取り組んでいます。

サイバーエージェントが向き合ってきた課題と、プラットフォームエンジニアリングの関係性

── エンジニアとしてのバックグラウンドを教えてください。

船ヶ山:私は現在、サイバーエージェントの席エンジニアを担当しています。並行して株式会社CAMの専務執行役員 CTOと株式会社タップルのCTOを担当しています。CAMでは生成AIをはじめとする新しい技術のプロダクト導入を検証したり、エンジニア組織の設計やマネジメントをしています。サイバーエージェントの主席エンジニアとしては、全社横断でシナジーが生まれるような活動をしています。

石川:私は株式会社CAM所属のバックエンドエンジニアで、CAMのサービス開発に特化した基盤「Fensi Platform」を開発しています。

船ヶ山とは、開発基盤やエンジニア組織に関して「こうしていきたいよね」といった議論や雑談をよくする関係です。今回のテーマである「プラットフォームエンジニアリング」は、そんな議論からCAMへの導入が実現しました。同時に私が担当する「Fensi Platform」も「プラットフォームエンジニアリング」をベースとした開発基盤になります。

── 「プラットフォームエンジニアリング」という言葉が、Web業界に浸透してきています。2024年7月にはPlatform Engineering Kaigi 2024も開催されています。どんな点が注目されているのでしょうか?

石川:最近ではビジネスニーズの多様化に伴い、開発環境も複数のクラウドサービスを使い分けるマルチクラウドを前提とするなど、ソフトウェア開発も多様化しているのが現状です。

その一方、サービス開発するエンジニアにとって、クラウドの新しい機能や仕様を把握するための「認知負荷」や「メンテナンスコスト」が、開発の生産性を妨げかねない要素になっていました。

そんな中で提唱された「プラットフォームエンジニアリング」は、ビジネスニーズに見合う開発力を実現するための新しいエンジニアリング手法といえます。

「プラットフォームエンジニアリング」では、多様なクラウドやOSS、ベンダーが提供する各種ツールを、共通のインターフェースとして提供する事を前提としています。そして、エンジニアに良質な開発体験を提供するプラットフォームは、専任のチームによって開発・保守される事が特徴です。これによりエンジニアにとっての認知負荷やオンボーディングコスト、新しい専門外のツールの習得コストを軽減する事が可能となります。

共通基盤「Fensi Platform」はこの構想をベースに開発されています。

船ヶ山:CAMにプラットフォームエンジニアリングを導入するにあたっては「チームトポロジー~価値あるソフトウェアをすばやく届ける適応型組織設計~」という書籍を参考にしています。チームビルディングからエンジニア組織のグランドデザインまでを論じたこの書籍を読んだ時「これまでサイバーエージェントが向き合ってきた課題は、書籍で紹介されているソリューションと類似していたのでは?」という印象を受け、CAMにプラットフォームエンジニアリングを導入する際も大いに参考にしました。

もともとサイバーエージェントは、開発組織のあり方や、開発生産性の向上に注力するといった「自分たちの組織は自分たちで創る」という技術カルチャーが特徴的です。そんな技術カルチャーだからこそ、書籍でも紹介されている「認知負荷」の課題などは、まさに直面するリアルな組織課題でもありました。

石川:私は「Platform Engineering Kaigi 2024」に登壇していますが、参画する各社エンジニアとの交流を通じる中でも、プラットフォームエンジニアリングに対する関心や機運が、最近特に高まっていると実感しています。例えば、慣れていないクラウド技術の習得コストといった「認知負荷」についても、「なぜそういった課題が発生するのか?」や「課題に対して開発組織はどうあるべきか?」に対して、多くの人がとらえどころのないモヤモヤ感を抱いていたようです。

そんな中、「チームトポロジー~価値あるソフトウェアをすばやく届ける適応型組織設計~」といった書籍が出版されたり、「Platform Engineering Kaigi」が開催されるなどして、課題に対するソリューションが定義されたり共有されたことで、各社で共通認識やソリューションの方向性が固まってきたという印象です。

社内でも、プラットフォームエンジニアリングの勉強会を開催したり、この書籍を紹介すると、メンバーそれぞれが感じていたモヤモヤについて納得する人が多いようです。

プラットフォームエンジニアリングが今注目されているのは、各社が同じような課題に直面しているためと言えます。

比較的早い段階からこの課題に向き合ってきたサイバーエージェントやCAMが、課題解決の具体例を示せるのではないかと考えていて、「Platform Engineering Kaigi 2024」でもそういった話をしました。

「Fensi Platform」が実現する良質な開発体験

── サイバーエージェントが直面していた課題について具体的に教えて下さい。

船ヶ山:例えば、マイクロサービスをベースにしたアーキテクチャは、多くのプロダクトに導入されています。しかし、各コンポーネントの設定ファイルが肥大化し複雑化した結果、管理コストがサービス開発業務を圧迫するような現象も見られました。

オンボーディングコストやドキュメントのメンテナンスなど、チーム特有の開発スタイルや仕様の把握といった認知負荷も課題になっています。さらに、GCP、AWS、Azureなどのクラウドサービスが増え、クラウドサービスで利用するコンテナやCI/CDツールも多岐にわたるため、開発環境に関する認知負荷が起きていました。

もちろん、マイクロサービスには利点が多いですが、ドキュメント不足や属人化が進むと、暗黙知が増えてメンテナンスコストや運用リスクが高まります。チームの所属期間が長くなると、暗黙知の理解や慣れもあって、課題感が薄れてしまうこともあります。

こういった課題に対するソリューションが「プラットフォームエンジニアリング」だと考えています。

石川:私が開発する「Fensi Platform」では、多様なクラウドやOSS、ベンダーが提供する各種ツールを、共通のインターフェースを通すことで、サービス開発するエンジニアに提供しています。

「Fensi Platform」は「便利な機能を集めた社内の共通基盤」ではなく、「認知負荷」といった開発組織全体の課題を解決するための基盤であり、その根底にプラットフォームエンジニアリングの思想があるのが「Fensi Platform」の特徴です。

── 例えばGCPやAWSが、認証や決済といったサービス開発に関する機能をマネージドサービスとして提供していたりします。こういったマネージドサービスとFensi Platform」では、どういった違いがあるのでしょうか?

石川:CAMではエンタメコンテンツ、ビジネスバラエティメディア、ライフスタイルメディアなどを運営していて、プロダクトには決済サービスが機能として求められます。

クレジットカードや電子マネーなど、決済サービスは年々多様化していて、サービス開発においては決済用のAPIの仕様を把握する必要があります。「Fensi Platform」は決済サービス用のインターフェースを提供していて、開発者が決済サービスの仕様について詳細を把握する必要がないのが特徴です。

「Fensi Platform」では、サイバーエージェントのグループIT推進本部が開発している決済基盤「Simply」も活用していますが、サービス側の開発者は「Simply」を含めた各種決済サービスのそれぞれ異なる仕様を意識せずに開発に利用する事ができます。

また「Fensi Platform」内で他の機能と連携する事で、決済に関する多様なビジネスニーズにも対応可能です。具体的にはCAMで開発したヘッドレスCMSと、「Simply」の決済機能を組み合わせて、エンタメ向けの従量課金コンテンツを実現する機能も提供しています。この際も、サービス側の開発者は「Fensi Platform」が提供している「従量課金機能」のAPIをコールするだけで、機能を実装することが可能となっています。

決済と関連する売上レポートに関しても同様です。決済サービスAと決済サービスBの売上を比較する場合、本来は決済サービスごとに管理画面にログインし、それぞれ異なるフォーマットの売上レポートを比較する必要があります。

「Fensi Platform」では、各決済サービスのデータを「Snowflake」に集約します。この際、各サービスのデータは「秘匿性」「匿名性」「機密性」が確保された状態で保存されます。これにより、データサイエンティストは安全かつ安心してデータを扱うことができ、網羅的な分析とレポーティングが可能な環境が整っております。

このように「Fensi Platform」を使うことで、その裏側にある、更新頻度の高いクラウドのAPIやOSSについて意識する事なく、本来のサービス開発に集中することが可能となっています。

これにより、以前はバックエンドエンジニアが調査したり検証していた開発工数や認知負荷が削減されました。CAMのサービス開発では、マイクロサービスやクラウドの利点を最大限活用しながら、ユーザーに寄り添った開発ができているので、エンジニアにとっても良質な開発体験を提供できていると言えます。
 

プラットフォームエンジニアリングが浸透していくための条件

── プラットフォームエンジニアリングを、会社や組織の土壌に浸透させていくためには、何が必要でしょうか?

船ヶ山:サイバーエージェントでは、技術と事業のバランス感を、主席エンジニアから若手エンジニアまで、幅広い層で意識することが重要だと考えています。

例えば、エンジニア組織の人事に関して「エンジニアは開発に専念し、人事は組織構成を担当する」という分業になりがちですが、主席エンジニア陣をはじめとして、積極的にエンジニア組織人事に関わるようにしています。

チームトポロジー」でも、優れた組織設計は、優れたソフトウェア設計を上回る生産性を発揮するとして「チームファースト」を提唱していますが、私も長年の開発経験からこの点に関して肌身で感じています。

幸い、サイバーエージェントのエンジニアは開発組織のあり方を考えるのが好きです。エンジニアの評価制度である「JBキャリアプログラム」も、エンジニアリングマネージャー職の定義も、技術者版あした会議「CA BASE SUMMIT」で社長の藤田をはじめとした経営陣に、エンジニア自らが提案して実現したものです。

プラットフォームエンジニアリングが浸透していく土壌という点で言うと、技術だけでなく、組織や事業貢献とのバランス感が重要だと思います。このバランス感により、開発力が向上し、業績に貢献する意識が高まり、プロダクトのクオリティも向上し、結果的にプラットフォームエンジニアリングがうまく浸透し、機能するからです。

この「技術と事業」のバランス感は、エンジニアだけでなく経営陣とも共有できているのが特徴です。

例えばCAMでは、経営陣や事業責任者の間でも、技術的負債という言葉の意味や、それが抱える事業リスクを認識しています。技術的負債やテスト不足が、どのような事業リスクやセキュリティリスクを引き起こすかを理解したうえで、それに対するソリューションをコストではなく投資として経営判断してくれています。

社内にこういった意識が広まっているからこそ、プラットフォームエンジニアリングが浸透し「Fensi Platform」が機能できていると言えます。

── プラットフォームエンジニアリングを導入していく際、どういった点が課題になっていくと考えていますか?

船ヶ山:プラットフォームエンジニアリングでは「エンジニアに良質な開発体験を提供するプラットフォームは、専任のチームによって開発・保守される事」を大前提とします。

あえて率直に言うと「プラットフォームに投資し続ける企業体力が必要」という点です。プラットフォームエンジニアリングは、開発組織の課題を解決する強力なソリューションに見えますが、当然ながら一定の投資が発生します。投資を一定ライン以下にすると、すぐに技術的負債として積み上がっていくでしょう。

具体的には、石川のようなプラットフォームエンジニアリングを専門とするエンジニアを、開発リソースとして十分に確保することが求められます。

共通基盤の開発においてよくあるケースとして「事業拡大やサービス開発スケジュールの遅延をきっかけに、異動やヘルプという形で共通基盤チームの開発リソースが削減される」などがあります。

これを組織として許容すると、共通基盤はメンテナンスが手薄になり、機能改善やバグフィックスのスピードが損なわれます。その結果、サービス側でそれぞれ独自の共通機能が実装されたり、認知負荷が上昇するなどして、開発生産性が低下します。それだけでなく、メンテナンスされなくなった共通基盤には、セキュリティリスクや致命的なバグの温床になったりもします。

プラットフォームエンジニアリングと聞くと、基盤開発という技術的側面に注目しがちですが、「チームトポロジー」でも論じられているように組織デザインのあり方こそが本質になります。だからこそ、プラットフォームエンジニアリングの導入には「専任のエンジニアを確保する」という組織的な合意形成が重要なのです。

専任を確保するためにはリソースに関する話題は避けられません。経営と開発組織が良好な関係を築けているかにも関係するため、会社や事業規模が大きくなるほど難易度が高いと言えます。

「プラットフォームに投資し続ける企業体力が必要」と言ったのはそれが理由です。

プラットフォームエンジニアリングで業績に貢献していくための相互理解

── 投資には経営層の意思決定が欠かせません。エンジニアとしてどういったアプローチを重視していますか?

船ヶ山:経営層と真摯に対話していく姿勢を大事にしています。特に、クラウドはコストと切っても切り離せない関係にあります。エンジニアがコストや収益を自分ごと化し、他職種を交えて真摯な対話をしていけば、経営者とも同じ目線で課題を共有することができます。

同じ課題の共有という点だと例えば、CAMの代表取締役社長である須田は技術に対して深い理解を示していて、エンジニアを信頼してくれています。技術的負債の解消や十分なテスト工数の確保がユーザー体験を向上させ、それがビジネスメリットにつながることを理解した上で、会社として技術的な投資を行う経営判断をしています。プラットフォームエンジニアリングに関しても、組織デザインの話としてすぐに意思決定できたため、専任の組織を維持できています。

また、サイバーエージェントグループでは年に一度、技術者版あした会議を開催しており、当社の代表である藤田も参加しながら、職種問わず議論するのが会社のカルチャーになっています。この会議で決議された「みんなで金塊堀太郎」というエンジニア立案のプロジェクトでは、半年で億単位のシステムコスト削減を実現しています。

── 「同じ課題を同じ目線で共有する」とありますが、船ヶ山さんが日頃から意識している事はなんですか?

船ヶ山:CTOや専務執行役員として、きちんと責任をとれるような立場や関係性を意識しています。

石川のようにプラットフォームエンジニアリングを構築できるような人材は、エンジニアとしても優秀です。人の異動や組織維持に伴う調整も必要ですが、まずは石川が自由にやれる環境を用意してあげる事を最優先に動いています。

責任というと大げさですが、石川のような責任感あるエンジニアが、プラットフォームエンジニアリングというミッションを遂行できるように、自分がしっかりとフォローする事が大切だと考えています。

藤田や須田が技術を理解してくれたように、自分も経営を理解する努力をしています。例えば、財務経理や損益計算書(PL)などの分野にも理解を深めるため、幅広い知識を身につけるよう努めています。

私がPLについてわからないことはCAMの経営陣に質問しますし、生成AIが話題になった頃はサイバーエージェントの専務執行役員の飯塚をLLMの勉強会に招いて、生成AIのサービス利用の可能性について議論したりしました。

サイバーエージェントには多種多様な人材が集まっています。わからないなりに歩み寄る相互理解が大切で、それぞれのコンフォートゾーンを出たところでの深堀りや好奇心が必要だと思っています。

若手にこそプラットフォームエンジニアリングで良い開発体験をしてもらいたい

── プラットフォームエンジニアリング勉強会では、若手の参加や質問も多いそうです。若手や学生が興味を持っているのは嬉しいですね。

石川:プラットフォームエンジニアリングは、経営層やCTOレベルがポリシーをもって組織デザインをしていく必要がありますが、その恩恵を一番受けられるのが若手です。

技術が多様化し、職種の垣根も低くなっているぶん、新しい技術や知識をインプットする必要があるため、若手にとってのオンボーディングコストや認知負荷は、自分たち以上にウェイトが高いのが現状だからです。

船ヶ山:若手に恩恵があるのは間違いないですね。サイバーエージェントが「チームトポロジー」で提唱している事をベースに、プラットフォームエンジニアリングを会社に導入し、業績にしっかりと貢献しているという点で、若手に希望をもたせたいですね。

サイバーエージェントに限らず、業界全体にプラットフォームエンジニアリングという考え方が浸透してほしいですし、多くの若手に良質な開発体験をしてもらいたいと、いつも思ってます。

石川:プラットフォームエンジニアリングを推進する人を「プラットフォームチャンピオン」と呼ぶことがあります。

プラットフォームエンジニアリングを安定して運営したり、基盤の開発に集中できるように、組織バランスを維持したり、力になってくれる役割の人に与えられる称号みたいです。

船ヶ山さんを見ていると、まさに「プラットフォームチャンピオン」だと思います。

船ヶ山:そんな称号があるんですね。自分の活動をフワッととらえていたけど、プラットフォームチャンピオンか。今日から使おうかな(笑)

この記事をシェア

オフィシャルブログを見る

記事ランキング

新卒としてリスタート!Re:Career採用で見つけた新たな挑戦

技術・デザイン

Page Top