Platform Engineeringとは 〜SRE導入で目指す開発者体験の革新〜

2024.11.1

目次

  1. はじめに
  2. Platform Engineeringとは何か
  3. Platform Engineeringがもたらすメリット
  4. Platform Engineeringを始める時のポイント
  5. 代表的なPlatform Engineering技術や取り組み
  6. Platform Engineeringに関する事例
  7. Sreakeでできること

1. はじめに

Platform Engineeringとは、開発ポータルなどの共通的なツールやサービスを高度に整備し、開発者体験(DevEx)とソフトウェアデリバリの生産性を向上させるための取り組みです。

これは、企業がテクノロジーを駆使して効率的かつ効果的にビジネス価値を提供するためのアプローチであり、特にデジタルトランスフォーメーション(DX)を目指す上で、企業のシステム開発の変革に大きく影響すると言われ、非常に注目を集めています。

Platform Engineeringは、開発者が利用するツール、開発プロセス、そしてインフラ構成管理などの最適化を通じて、組織全体の生産性と運用効率を向上させることを目指して行います。

特に、複雑化する現代のソフトウェア開発環境において、Platform Engineeringは必要不可欠な要素となっています。

本稿では、Platform Engineeringとは何か、システム開発や企業活動にどのようなメリットをもたらし、いかに画期的で持続可能な開発エコシステムを構築するかを紹介します。

Platform Engineeringの導入が開発速度と品質にどのような影響を与えるか、そして企業がどのようなポイントを押さえて導入を進めるべきかについても解説します。

さらに、具体的な事例を取り上げながら、今注目されている関連技術についても紹介しながら、プラットフォーム戦略の全体像をご説明していきます。

2. Platform Engineeringとは何か

Platform Engineeringは、開発者や運用チームが迅速かつ効率的にソフトウェアを開発、デプロイ、管理するために必要なツール、プロセス、インフラを提供する取り組みです。

この考え方は、技術スタックを組織全体で標準化し、複数のアプリケーションやサービス間で共通の開発プラットフォームを利用することで、開発チームの作業を一元化して、開発に関する作業や管理を円滑に進めるためのものです。

2019年に出版されたチームトポロジーという組織論の書籍により、インフラ・ツール・知識等を組織横断で提供する役割としてプラットフォームチームという概念が広く知られるようになりました。

開発組織(図中の言葉でストリームアラインドチームやコンプリケイテッド・サブシステムチーム)に対して、プラットフォームチームという専門組織がサービスとしてツールやAPIを提供していくという組織構造が、開発チームのエンパワメントを高め、より迅速な開発フローを実現できると論じられています。

https://speakerdeck.com/miholovesq/team-topologies-with-platform-engineering?slide=23

Platform Engineeringの目的は、開発の速度を加速すると同時に、様々なシステム環境の運用管理の複雑さを低減し、システムやサービスの安定性やセキュリティを向上させることなど広範囲にわたります。

Gartnerの見解では、プラットフォームチームが提供するものはツールやサービスだけでなくナレッジも含まれ、開発チームに高度な知識を提供することなども期待されています。

https://www.gartner.com/en/articles/what-is-platform-engineering

Platform Engineeringの考えや取り組みは、近年のクラウド技術の進化と密接に連動しています。

クラウドプラットフォームが提供するサービスの柔軟性、スケーラビリティ、アクセスのしやすさを活用することで、Platform Engineeringでカバーできる開発ツールの範囲が増え、複数サービスの認証認可や、環境の増設なども容易になります。

また、DevOps文化やCCoE/SRE組閣など、新しい開発手法に沿った文化や組織の導入と組み合わせることで、継続的インテグレーション(CI)や継続的デリバリー(CD)のプラクティスをより効果的に実装し、ソフトウェアリリースサイクルを短縮し、品質を維持しながら迅速に市場へと製品を投入することが可能になります。

このアプローチの導入により、環境構築や単純作業などの煩雑なタスクを大幅に削減し、エンジニアがより本質的な開発作業に集中できるようになります。

Platform Engineeringは、コミュニケーションツールの改善や、チーム間でのコラボレーションを促進するための基盤を整備することも多く、チーム間のサイロをなくし、開発から運用までの様々なチーム間障壁を減らすことにも繋がります。

国内外の多くの企業が、Platform Engineeringは技術革新のスピードを向上させ、市場での競争力を保つための戦略的な取り組みであると位置付けています。

Platform Engineeringは、これからも多くの技術進化とともにさらに発展し、企業の持続可能な成長を支援する重要な要素となるでしょう。

3. Platform Engineeringがもたらすメリット

Platform Engineeringの導入は、開発から運用、さらには組織全体の文化やビジネス競争力にまで、多くのメリットをもたらします。

システム開発時のメリット

Platform Engineeringを通じて構築される標準化された環境があれば、開発者が迅速にアイデアを試し、実装に移すことができます。

共通のツールセットとプロセスによって、開発の速度と効率が大幅に向上し、同時に環境構築の手間やエラー発生率も低下します。

インフラのコード化(Infrastructure as Code)などのプラクティスによって、繰り返し発生する手作業を自動化することも、よりストレスの少ない開発に繋がります。

システムの品質やサービスの信頼性向上に寄与するだけでなく、貴重な開発者リソースを戦略的な取り組みに集中させることができるのは大きなメリットとなります。

システム運用時のメリット

Platform Engineeringのメリットは、運用においても非常に顕著です。自動化されたデプロイメント、シームレスなローリングアップデート、リアルタイムモニタリングなどが、サービスの信頼性と可用性の向上に繋がります。

エンジニアが一元的なダッシュボードなどでシステムの状態をリアルタイムで把握できれば、障害発生時の迅速な対応が可能になり、ダウンタイムのリスクを減らすことができます。

また、詳細なログ記録と分析ツールが問題の予兆を早期に捉え、原因究明を助けて継続的なシステム改善を促します。

組織文化や開発プロセス全体に関するメリット

Platform Engineeringは、開発プロセスを組織的に改善するための枠組みでもあります。

共通のツールとプラットフォームを使用することで、異なるチーム間での知識共有が容易になり、協働しやすい環境が整います。これにより、チームメンバーが集団として学習し、成長する機会が増え、組織全体のアジリティ向上にもつながっていきます。

開発者が最新の技術トレンドに簡単にアクセスし、新しいスキルを習得できる環境は、イノベーションの源泉となり、持続可能な競争力を企業にもたらすことになります。

迅速なサービス提供のメリット

Platform Engineeringを利用することで、開発からリリースまでの時間を短縮し、新規サービスやシステムの市場参入を加速できるのも大きなメリットです。

これにより、競争が激しい市場において優位性を確保し、ユーザの要求に迅速に応えることが可能となります。

また、Platform Engineeringの取り組みとして、ユーザからのフィードバックや市場の動向を迅速に取り入れることも重要です。

広義のPlatform Engineeringでは、エンドユーザに提供するためのサービス基盤もあらかじめ高度に整備しておく取り組みも含むため、Platform Engineeringを推進していくことは、顧客満足度の向上や素早いサービス改善にも繋がっていくのです。

このように、Platform Engineeringに取り組んでいくことは、開発プロセスの効率化とシステムの信頼性向上をもたらすとともに、組織全体のイノベーション能力と対応力を高め、ビジネス価値の創出にも繋がっていきます。

4. Platform Engineeringを始める時のポイント

Platform Engineeringを始める際には、戦略的かつ段階的なアプローチが必須です。

以下は、Platform Engineeringを組織に導入し、効果を最大限に引き出すためのポイントです。

Platform Engineeringに向けた専門チームの組閣

成功するPlatform Engineeringの取り組みには、その中核となる専門チームが不可欠です。これらには、主にCCoE(Cloud Center of Excellence)やSRE(Site Reliability Engineering)チームといった組織が挙げられます。

CCoEチームは、クラウドサービスを高度に利用したプラットフォームの構築、運用、および進化に関する戦略の策定から、ベストプラクティスやガバナンスの確立、クラウドサービス知識の共有などを行います。

SREチームは、IaCやCI/CD、オブザーバビリティなど、開発チームが円滑にサービス開発を進め、システムの信頼性を高められるよう、高度な運用自動化のためのツール整備やソフトウェア開発を行います。

こういった専門組織は、技術的な支援や構築だけでなく、プラットフォームを利用する開発者のニーズを理解し、サポートするための文化や意識なども必要となります。

段階的な導入と文化の醸成

Platform Engineeringの導入は、一度に様々なことを実施するのではなく、段階的に行うことが重要です。

組織体制や開発プロセスの変革を伴う場合が多いため、一気に始めるのではなく小規模なプロジェクトや特定の領域から始め、徐々に導入範囲を拡大していくことがポイントです。

また、Platform Engineeringを成功させるためには、技術だけでなく組織文化の変革も重要です。

エンジニアが新しい技術を学び、活用できるよう継続的な教育やサポートが不可欠であり、組織全体で開発プロセスの変革に対する意識付けを行うことが必要です。

イノベーションを促進する文化と、継続して学び、現状を改善していこうとする意識が持続可能なPlatform Engineeringを支えていきます。

これらのポイントを踏まえ、組織は段階的かつ効果的にPlatform Engineeringを導入し、開発のスピードと品質を向上させると共に、ビジネス競争力強化を目指すことができます。

Platform Engineeringへの取り組みを通じて、組織は迅速な製品開発、確実なサービス提供、そして市場への適応能力の向上という、ビジネスにおける成功要因を押さえることができるのです。

5. 代表的なPlatform Engineering技術や取り組み

Platform Engineeringの分野においても、さまざまな先進的技術や取り組みが注目を集めています。

これらの技術は、プラットフォームの構築と運用をより効率的かつ効果的にするために欠かせないものとなっています。

コンテナ技術とオーケストレーション

Platform Engineeringの重要な柱の一つは、コンテナ技術です。

Dockerのようなツールによって、アプリケーションを様々な環境で簡単に動作させることできます。

また、Kubernetesのようなコンテナオーケストレーションツールを利用することで、多くのコンテナを柔軟かつ効率的に制御し、自動デプロイ、スケーリング、ネットワーキングの管理を実現します。

サービスメッシュ

Istioのようなサービスメッシュは、マイクロサービス間の通信をセキュアで透過的に行うための重要な技術です。

大量のコンテナが稼働するマイクロサービスシステムでは、Istioが複雑なネットワーキングやセキュリティを制御し、エンジニアがより簡単にマイクロサービスシステムを管理できるようになります。

オブザーバビリティ

システムの挙動をリアルタイムで監視し、分析することはPlatform Engineeringにおいて必要不可欠な要素です。

PrometheusやGrafanaなどオブザーバビリティツールを使うと、システムの健全性をモニタリングし、障害発生時に迅速に課題を分析することができます。

NewRelicやDataDogなどAii in One型のSaaSは、セットアップやカスタマイズがより簡易的で、オブザーバビリティツールの導入をスムーズに進めることができます。

これらのモニタリングツールは、ログ、メトリクス、トレースデータを集約して一元的に可視化できるため、システムのパフォーマンスや信頼性を維持するのに役立ちます。

CI/CDパイプライン

継続的インテグレーション(CI)と継続的デリバリー(CD)は、コードの変更を自動で本番環境にデプロイすることで、リリースサイクルを加速します。

Github ActionsやJenkinsなどのCI/CDツールは、静的テストなどを自動実行してコードの品質を保ちながらも、迅速なデプロイメントを実現します。

コード化されたインフラ(IaC)

TerraformやAWS CloudFormationのようなIaCツールは、インフラをコードで管理し、プラットフォームの自動化と再現性を可能にします。

これらにより、手動でのインフラ管理から脱却し、一貫性のある環境構築を効率的に実行できます。

プラットフォームセキュリティ

セキュリティはPlatform Engineeringの中でも最優先事項です。

開発環境へのログインや、複数サービスに対する一元的な認証を行う仕組みは、エンジニアの作業負荷を減らすとともにセキュアな開発を実施できるとして、特に重要視されています。

AWS CongitoやGoogle Firebase Auth、KeycloakなどはSSO連携プラットフォームの中核となる認証認可基盤として多く採用されています。

生成AIによる開発アシスト

近年では、AIの活用はエンジニアの開発生産性を向上させる大きなポイントです。

GitHub CopilotやGoogle CloudのDuet AIなどソースコード生成のアシストや、Microsoft 365 Copilotのような資料作成支援を行うAI関連サービスをPlatform Engineeringに取り入れることで、開発生産性を大きく向上させることができます。

Platform Engineeringにおけるこれらの取り組みや技術の積極的な採用が、ビジネスの柔軟性を高め、イノベーションを促進することにつながります。

6. Platform Engineeringに関する事例

実際にPlatform Engineeringを導入し、成果を上げている事例をご紹介します。

LINEヤフー株式会社

LINEヤフー株式会社は、Platform Engineeringの取り組みとしてKubernetesを活用した開発基盤を整備しています。

Kubernetesは拡張機能を使ってコンテナの管理を高度に自動化することも可能で、本例ではカスタムコントローラーを利用して、開発に必要な高度な要件を実現できたことも報告されています。

Sansan株式会社

Sansan株式会社では、研究開発部門でPlatform Engineeringに取り組んでいます。

アプリケーション基盤など、Platform Engineeringに必要なものを最小限に作って改善していく方針で取り組みを進め、結果として研究開発部の新アプリリリース数が2倍以上になったことが報告されています。

7. Sreakeでできること

Sreakeは、Platform Engineeringの取り組みに重要とされるクラウドネイティブ、マイクロサービス、自動化、オブザーバビリティツールなどに関する高度な技術知識を持つエンジニアを多数擁しています。

また、これまで多様な業界の多くのお客様に対し、Platform Engineeringで重要とされる開発ツール導入や、SRE/CCoEチームの組閣などを実施しております。

Platform Engineeringに関するコンサルティング、 専門組織の組閣、使用するツールの導入や技術的なご相談など、Platform Engineeringを推進する活動に関して全般的にご支援しています。

ご質問やご相談がございましたら、お気軽にお問い合わせください。

ブログ一覧へ戻る

お気軽にお問い合わせください

SREの設計・技術支援から、
SRE運用内で使用する
ツールの導入など、
SRE全般についてご支援しています。

資料請求・お問い合わせ