フリーランス
フリーランス
アプリケーションの迅速なデリバリを実現する 「プラットフォーム・エンジニアリング」について解説!
近年、ソフトウエア構築において、単純作業などノンコア業務を自動化し、エンジニアが開発に集中できるようにするプラットフォーム・エンジニアリングが普及し始めています。
プラットフォーム・エンジニアリングは、アプリケーションなどのデジタルサービスをより迅速に利用できるようにし、インフラに関する各種オペレーションの自動化とセルフサービス機能の提供により、開発者体験と生産性を高めることが期待できます。それと同時に、一元管理されたテクノロジープラットフォームから、信頼性の高いツールやコンポーネント、業務の自動化による恩恵を受けられるようになります。
プラットフォーム・エンジニアリングが注目されるようになった背景には、必要とされるアプリケーションの種類が変わりつつあることにあります。従来のいわゆるSoR(Systems of Record)のような、長期にわたって開発を行う比較的変化の少ないものではなく、顧客とのタッチポイントとなるモバイルやWebアプリといったSoE(Systems of Engagement)などのアプリケーションが主流になってきており、プラットフォーム・エンジニアリングの、より迅速なアプリケーションの供給を実現する点が注目されるようになりました。
具体的にSoE(Systems of Engagement)などのアプリケーションの特徴として、開発期間が短い、顧客の要望を即座に反映する必要があるため、変更の頻度が高い、稼働基盤にパブリッククラウドを利用することが多いなどが挙げられます。
パブリッククラウドの普及とDevOpsの定着により、アプリケーションの公開、サービスを使ってもらうまでのスピードは以前より高まりました。しかし近年、マイクロサービスアーキテクチャやコンテナ(Docker、Kubernetes)、IaC(Infrastructure as Code)など、モダンなアプリケーション開発・運用のためのテクノロジーが登場したことで、アプリケーション開発者の業務は複雑化し、開発者の認知負荷が高まり、その結果として開発者の生産性が低下してしまうという問題が顕在化しました。
本来、開発者が行うべき業務はプログラムコードを記述し、機能をソフトウェアとしてリリースすることです。しかしながら、新たなテクノロジーがもたらした複雑さにより、業務以外の作業を強いられてしまうようになったわけです。プラットフォーム・エンジニアリングを用いることで、これらの課題が解決へ向かうことが期待されているのです。
また、プラットフォーム・エンジニアリングは、従来の枠組みを超えて技術的な作業と知識を活用します。つまり、開発者だけでなく、オペレーションチームやビジネスチームなど、異なる役割の人々が技術的な作業に参加することにより、組織内の異なる部門や役割間でのコラボレーションが促進され、より効率的なプロセスと意思決定が可能になります。
このような状況では、学習済みのデータを活用して新たなデータを生み出せるAI(生成AI)も、プラットフォーム・エンジニアリングの一環として活用される一つの手段となります。機械学習や自己学習のアルゴリズムを使用して、新しいアイデアや解決策を生成する生成AIの能力により、異なる役割やビジネス機能の人々が、より創造的で革新的な方法で技術的な作業に取り組むことができます。
2026年までには、ソフトウェア・エンジニアリング企業の80%が、アプリケーション・デリバリのための再利用可能なサービスやコンポーネント、ツールの社内プロバイダーとしてプラットフォーム・チームを結成することが見込まれています。プラットフォーム・エンジニアリングは、ソフトウェア開発者とオペレーター間で行われる協業に関する核となる問題を解決することになるでしょう。
プラットフォーム・エンジニアリングの仕組み
プラットフォーム・エンジニアリングは、特に DXにおいて、企業のソフトウェア・デリバリを進化させることを目的とした新しいトレンドです。エンジニアリング・プラットフォームは、専任のプロダクト・チームによって構築されます。また、再利用できる共通のツールや能力を提供し、複雑な社会資本のつなぎ役として機能することで、ソフトウェア開発者などのニーズをサポートするように設計されます。
具体的に、プラットフォーム・エンジニアリングがどのような能力を持つかは、アプリケーションを利用する消費者のニーズによって決まります。プラットフォームは、専任のエキスパート・チームが構築して、開発者/データ・サイエンティスト/消費者などの顧客に提供されるプロダクトです。プラットフォーム・チームは、ユーザー・グループのニーズを理解し、作業に優先順位を付け、対象ユーザーにとって有益なプラットフォームを構築する必要があります。
多くの場合、プラットフォーム構築においての初期段階では、最も成熟度の高い社内開発者ポータル (IDP) から開始されます。IDPで提供されるツール、能力、プロセスは、特定領域の専門家が選択し、開発者の利便性を考えてパッケージ化された選りすぐりのセットとなります。プラットフォーム・チームは、サポート対象の開発者とよく相談しながら、状況に応じた最適なアプローチを見極める必要があります。
目標は、摩擦のないセルフサービス型の開発者体験を実現し、開発者などの消費者が可能な限り、最小限の負荷で価値の高いソフトウェアを作成できるように、適切な能力を提供することです。ですからプラットフォームには、開発者の生産性を高め、認知面での負担を軽減することが求められます。また、開発チームが必要とするものすべてを、チームが希望するワークフローに最も適した方法で提供することも必要です。
新世代のツールが開発されたことにより、DevOpsコミュニティではプラットフォーム・エンジニアリングが最も注目度の高い話題の1つになっています。これらのツールは、プラットフォームを構築、保管を容易にすることを目指しています。
プラットフォーム・エンジニアリングの用途
企業が異なれば、どのような開発プラットフォームを理想と考えるかも異なります。同じ企業内でも、開発チームによってニーズが全く異なる場合もあります。エンジニアリング・プラットフォームの最大の目標は、開発者の生産性を向上させることです。組織にとっては、このようなプラットフォームによって一貫性と効率化が促進されます。開発者にとっては、デリバリのパイプラインや低レベルのインフラストラクチャの管理から解放されるというメリットがあります。
まとめ
プラットフォーム・エンジニアリングは、世界的にもまだ新しい分野ですが、品質、セキュリティ、効率のいずれも犠牲にすることなく、ソフトウェアデリバリープロセスをスケールアップできる、今後の技術発展には欠かせないツールです。リソースのプロビジョニングと管理が簡素化および自動化されるので、開発者は今までよりも短時間で、より多くの価値を顧客に届けることができるようになります。組織としては、プラットフォームチームを編成することで DevOps のメリットを享受し、高めることができます。その結果として、開発者のアジリティが強化され、組織の信頼性、可視性、自信も高まります。組織のパフォーマンス向上のためにプラットフォーム・エンジニアリングを導入すべき状況にあるなら、ぜひ CircleCI に無料でユーザー登録して、業界トップクラスの継続的インテグレーションサービスが反復サイクルの高速化とデリバリー成果の強化にもたらす効果を実感してください。
参照先:
https://www.gartner.co.jp/ja/articles/what-is-platform-engineering
https://it.impress.co.jp/articles/-/25244
https://www.sbbit.jp/article/cont1/132753
横田翔
フリーでライティングに取り組む傍ら、藁ぶき屋根再生作業や自然保護の活動、日本精神の素晴らしさを発信する音楽一座の コミュニティなどに関わりながら決して自己満足にならない「より良く生きる」を目指し、日々活動中。