0
会員になると、いいね!でマイページに保存できます。
DevOpsコミュニティを中心に「プラットフォーム・エンジニアリング(Platform Engineering)」が話題となっている。さまざまな側面から解説できる言葉だが、一般にアプリケーションの迅速なデプロイを実現し、自動化などによって開発者の生産性を高めるアプローチとされる。なぜ今、プラットフォーム・エンジニアリングが注目を集めるのか。また、どうすれば推進できるのか。Gartner シニア プリンシパル、アナリストのパンカジ・プラサド氏が、プラットフォーム・エンジニアリングの基礎からわかりやすく解説する。
プラットフォーム・エンジニアリングとは何か?
プラットフォーム・エンジニアリングとは、ガートナーが2023年の戦略的テクノロジーにも挙げた言葉で、「複雑化が進むソフトウェア・アーキテクチャに対応するための、ソフトウェア・デリバリを近代化する新たなエンジニアリング手法」のこと。
ガートナーによれば、プラットフォーム・エンジニアリングでは、エンジニアリング・プラットフォームは専任のプラットフォーム・チームによって構築/保守される。また、そこで提供される再利用可能な共通ツールがインターフェースとして機能することで、ソフトウェア・インフラに関する各種オペレーションが自動化され、インフラ利用者である開発者やデータ・サイエンティスト、エンドユーザーなどのエクスペリエンス(体験)と生産性が向上する。
それと同時に、一元管理されたテクノロジープラットフォームから信頼性の高いツールやコンポーネント、自動化されたワークフローが利用できるようになる。
Gartner シニア プリンシパル アナリストのパンカジ・プラサド氏は、「従来、ソフトウェアのインフラに関しては『開発した人が運用すべき』という考え方が根強くあり、そのことがクラウド上での大規模分散アプリケーション開発時の混乱やムダの原因となっていました。プラットフォーム・エンジニアリングは、その解消を目指した新たな考え方です」と説明する。
5つの原理原則に則って基盤を整備する
開発と運用を一体で考えるDevOpsを大規模に実施する際には、開発とビジネスの都合のすり合わせや、アプリケーション・ライフサイクル全体にわたってのツールやインフラの管理可能性などの課題も生じていた。
プラットフォーム・エンジニアリングは、近代的なソフトウェア・デリバリの複雑さと不確実性を減らし、開発生産性を向上させる、インフラ利用のセルフサービス化の動きとも言えるのだという。
プラサド氏によると、プラットフォーム・エンジニアリングの明確な定義は存在せず、次の原理原則──「明確で一貫性のあるAPI」「セルフサービス・エクスペリエンス」「モジュール型」「組み込みの優れたプラクティス」「整合のとれたガイドライン」──に則ったプラットフォームの整備手法全般を指す。
そのリファレンス・アーキテクチャでは、中核に「コンテナ管理」「ITサービス管理」「自動化機能」などのコア機能が配備され、セルフサービスのための「可観測性」「自動化」、開発インタフェースの「ポータル」、外部接続のための「ポータル」、さらに「セキュリティ」や「データ・モデル」などの機能が実装される(下図)。
専任のプラットフォーム・チームのミッションは、これらで構成される社内開発者ポータル/プラットフォーム(IDP)の整備と運用だ。IDPで提供されるツールやプロセスは、各領域の専門家によって選定され、開発チームが利用しやすい機能セットとして整備される。
「インフラとして用いることができるリソースは社内外に数多くあります。プラットフォーム・チームは開発チームの要望を基に、いわばキュレーターとしてリソースを選定しつつ、IDPの使い勝手を継続的に高める役割を担います」(プラサド氏)
開発者の満足度を最優先に実施すべきワケ
これまでのインフラ整備はソフトウェア開発を前提に、いわば“プロジェクト思考”で作業が進められてきた。そこで重視されるのはリスク回避やテクノロジー、既存の価値などだ。
対してIDPの開発はユーザーである開発者の満足度を最優先に実施される(下図)。
プラットフォーム・エンジニアリングではインフラ整備の考え方が、従来の“プロジェクト思考”から“顧客思考”に大きく転換する。
「必然的に、ユーザー側に立った“顧客思考”で、要望の多いイテレーションのための再現性や自動化などの機能やプロセス開発に取り組むことになります」(プラサド氏)
プラットフォームの具体的な能力は、開発者のニーズによって変わるため、プラットフォーム・チームは開発者と相談しつつ、作業に優先順位を付け、状況に応じて最適な整備アプローチを採る必要があるのだという。
プラサド氏はプラットフォーム・チームの役割について、「プラットフォームのオーナーであり、最適な技術を見極めるアーキテクトであり、技術を実装するエンジニアでもあります」と強調する。
IDPの整備にあたっては、外せない要件がいくつかあるのだという。まずは、「開発者の利便性を高めるための、
IaC(Infrastructure as Code)などによる適切な統合」だ。
また、「セルフサービス化により人手作業の排除」「マルチクラウドの乱雑さの軽減」「既存プラットフォームへの適合」「セキュリティとコストの最適化」なども考慮する必要がある。
プラットフォーム・エンジニアリングの実施に必要な能力は次の4つだという。まずは、開発者本位でインフラの要件を見極めるための「プロダクトのオーナーシップ」、次いで、プラットフォームの整備と運用のための「エンジニアリング」と「オペレーション」が続き、最後がインフラのセルフサービス化に不可欠な「自動化」である。
エンジニアリングに求められる5つのスキルと知識
このうち、エンジニアリングとオペレーションの技術の詳細をプラサド氏は次のように解説する。まず、エンジニアリングに必要なスキルや知識は次の5つだ。
- オンプレミスとクラウドを組み合わせるハイブリッド・テクノロジーへの適応
- クラウド連携のためのアーキテクチャ設定や構成
- DevOpsなどをベースとする自動化されたテスト
- コードレベルでのIaCと、そのバージョン管理
- インフラのセキュリティ
「課題となりがちなのがIaCのバージョン管理です。それを欠いては、ユーザーの意見をインフラに迅速に反映させられず、開発生産性の大きな妨げになります。また、プラットフォーム・エンジニアリングでは、インフラ整備の速さから社内のセキュリティチームの対策では追随しきれず、事前にセキュリティのプラクティスをIDPに組み込んでおく必要があります」(プラサド氏)
次に、オペレーションに関して必要なスキルや知識は次の5つである。
- CI/CD(Continuous Integration/Continuous Delivery:継続的インティグレーション/デリバリーへの精通
- より早期での問題解決のためのトラブルシューティング
- 根本原因解析に向けたインシデント管理
- プロアクティプな対応のためのモニタリング/可観測性
- サービスリクエストの実現
エンジニアリングとオペレーションとも必要とされる技術は広範にわたり、修得は一筋縄ではいかない。そこで鍵を握るのが組織としての継続的な学習だ(下図)。
「DevOpsコミュニティではプラットフォーム・エンジニアリングは最も注目度の高い話題の1つです。デジタルでのビジネスの加速のためにも、今後、取り組みは急速に拡大するはずです。その第一歩として、まずは専任チームを決定したうえでユーザーの特定と技術習得を進めてください。そう遠からぬ将来、開発者自身によるインフラ整備は、決して珍しくはなくなっているはずです」(プラサド氏)
本記事は2023年12月12日から12月13日にかけて行われた「ガートナーITインフラストラクチャ、オペレーション&クラウド戦略コンファレンス」の講演内容をもとに再構成したものです。
評価する
いいね!でぜひ著者を応援してください
会員になると、いいね!でマイページに保存できます。
関連タグ