プラットフォーム・エンジニアリングとは
プラットフォーム・エンジニアリングはソフトウェア開発の分野の 1 つであり、生産性、アプリケーションのサイクルタイム、および市場投入スピードの向上に重点を置いています。 プラットフォーム・エンジニアリングの包括的な目標は、開発チームに影響を与える問題点を特定し、内部開発者向けプラットフォーム (IDP) を介して共通の再利用可能なツールと機能を提供することでそれらの問題を軽減することです。
プラットフォーム・エンジニアリングは、労働文化と生産性を改善し、収益にプラスの影響を与えるための、幅広い分野を融合するアプローチと捉えるべきものです。ビジネスの観点から見ると、プラットフォームエンジニアリングのプログラムは、アプリケーションの市場投入を効率化し、運用を最適化し、アプリケーションの開発、デプロイ、管理、保守の効率を向上させます。文化的な観点から見ると、プラットフォーム・エンジニアリングは、開発者に対してその仕事の中で最も重要な部分に集中するために必要なツールとサポートを提供することで、チーム間のコラボレーションを向上させ、認知負荷を軽減することを目的としています。
プラットフォーム・エンジニアリングの役割とは
プラットフォーム・エンジニアリングの役割は、一貫性と効率性を促進することで組織にメリットをもたらすことです。チーム間の連携を促進し、チーム間のコラボレーションを効率化することで、新しいチームメンバーの学習を容易にします。プラットフォーム・エンジニアリングは特定の職務内容を指す場合もありますが、個人のグループがチームのイニシアチブとして取り組む分野や手法を指す場合もあります。
プラットフォーム・エンジニアリングの根本的な目的は、管理タスクに必要とされる時間を削減することです。管理タスクは開発者の生産性を妨げ、アプリケーションライフサイクルにおいてボトルネックを生み出す可能性があります。
プラットフォームエンジニアが開発者を導く方法
プラットフォームエンジニアとプラットフォーム・エンジニアリング・チームは、インフラストラクチャの管理に責任を負い、また開発者のニーズに対応できるように設計されたワークフロー (「ゴールデンパス」とも呼ばれる) を通じて開発者を導く一連のツールの作成を担います。
プラットフォームエンジニアが厳選した、カスタマイズされたツールとプロセスのセットにより、セルフサービス機能や、ソフトウェア開発者を支援する自動化されたインフラストラクチャが実現し、組織固有のニーズが満たされます。 この適応性により、開発者は画一的なソリューションに縛られることなく、プロジェクト要件に最適なツールを使って作業することができます。同時に、これによって開発者が新たなスキルセットを習得して余分な作業を行う必要性が減り、最も得意とする作業である「コード」に集中できるようになります。
また、プラットフォーム・エンジニアリング・チームは堅牢なガバナンスフレームワークを導入し、すべての環境にわたってリソース、セキュリティ、コンプライアンスの制御性を維持できるようにします。これにはパフォーマンスを監視し、コストを追跡し、潜在的なリスクや脆弱性を特定するためのより実践的な方法が提供されるという追加のメリットもあります。
プラットフォーム・エンジニアリングの舞台裏(動画の再生時間:2:31)
アプリケーション・プラットフォームとは
内部開発者向けプラットフォームとは
内部開発者向けプラットフォーム (IDP) とは、開発者がアプリケーションのライフサイクル全体を通じてコードを作成、デプロイ、保守するために必要な、標準化されたセルフサービスツールとテクノロジーのセットです。IDP に統合されたツールチェーンは、より優れた生産的なワークフローを開発者に提供します。これらのツールチェーンはセキュリティやスケーラビリティなどの要素に重点を置き、組織が最終的により多くの顧客価値を生み出すのに役立ちます。
プラットフォーム・エンジニアリングと DevOps
DevOps は、組織が開発機能と IT 運用機能を反復的なワークフローに統合するために使用する、ソフトウェア開発アプローチです。一方、プラットフォーム・エンジニアリングは、そうしたワークフローをサポートする社内プラットフォームとツールを作成することを指します。
プラットフォーム・エンジニアリングが一連の標準化されたツール、知識、サービス、プロセスの確立を支援し、そして、それらを組織全体の開発チームが利用します。調整されたプラットフォームを使用して開発チームがソリューションのコンポーネントをビルド、デプロイ、サポートする一方、プラットフォームチームはプラットフォームのコンポーネントをビルド、デプロイ、所有、サポートします。
DevOps 手法では開発者が自分でソフトウェアを探し、学習し、デプロイし、管理することを奨励しているため、プロダクションのソフトウェアについて開発者がより多くの知見を得ることができ、制御性が向上します。
DevOps と継続的デリバリーの導入により、パイプラインとツールチェーンが長くなっており、さらに、「シフトレフト」(アプリケーションの作成および保守時にワークフローの各段階のセキュリティ保護についてエンドツーエンドで理解すること) というプレッシャーが加わったことにより、開発者は自身が構築しているアプリケーションに関連する複雑さを細部までより詳細に理解する責任を負うようになりました。
この自律性は、最終的には個人にも組織にも利益をもたらさない責任や認知負荷を生み出す可能性があります。
戦略としてのプラットフォーム・エンジニアリングは、共感とユーザー体験をより重視し、DevOps に基づいて構築されます。その目標は、アプリケーション提供の自動化、コラボレーションとコミュニケーションの改善、エラーの削減、セキュリティとコンプライアンスの強化、効率の向上、そして、最も重要なこととして、最も必要とされる分野に開発者の強みを再び集中させるための、より良い方法を見つけることです。
プラットフォーム・エンジニアリングが開発者をサポートする方法
プラットフォーム・エンジニアリングによって、インフラストラクチャに関する開発者の責任が軽減されます。これは、ハイブリッド環境やマルチクラウド環境において特に必要なことです。
従来、開発者の仕事は、必要な作業に適したツールを見つけるか、そのツールをゼロから構築するかのどちらかでした。以前は、テクノロジーによる基本的な反復作業がそのような仕事に対応していましたが、現在、エンタープライズレベルの組織の開発者は、ビジネスが成長するにつれてユーザーのサポートと効果的なスケーリングがより複雑化し、断片化していることを認識しています。
プラットフォームエンジニアは開発者エクスペリエンスにおける摩擦要因を積極的に探し出し、その摩擦を解消または緩和できるツールやテクノロジーを厳選することで、効果的な IDP を作成します。最小限のアプローチから始めて、開発チームにとって有益であることがわかっているツールのみを組み込みます。その後、フィードバックを求めながら、開発チームのニーズに合わせて機能を段階的に拡張し、進化させることができます。
プラットフォームエンジニアとサイト信頼性エンジニア (SRE)
SRE (サイト信頼性エンジニア) は基盤となる IT インフラストラクチャを管理し、SRE チームはプロセスと自動化を開発してインフラストラクチャの完全性とアップタイムを確保します。SRE とプラットフォームエンジニアの目標は同じですが、SRE がソフトウェアのパフォーマンス、信頼性、スケーリングを重視しているのに対し、プラットフォーム・エンジニアリングは開発者エクスペリエンスの向上を目的としたシステムに重点を置きます。
プラットフォーム・エンジニアリングとサイト信頼性エンジニアリング)はいずれも、システムの作成と保守に関するものです。2 つの概念の違いは、それぞれの手法の焦点にあります。
プラットフォーム・エンジニアリングの主な課題とは
プラットフォーム・エンジニアリングは、プラットフォームが製品として扱われ、社内開発者が顧客として扱われる場合にのみ成功します。プラットフォーム・エンジニアリングの導入で最も頻繁に失敗するのは、組織がプラットフォームを社内開発者のために構築された製品ではなく、IT における厳格な義務として捉えている場合です。エンジニアリングチームが開発者の実際の課題を理解せずに内部開発者向けプラットフォーム (IDP) を構築した場合、開発者は速度を維持するためにそのプラットフォームの使用を回避する可能性が高くなります。
同様に、組織はプラットフォームを過小設計したり、過剰設計したりする可能性があります。プラットフォーム・エンジニアリングとは、開発者ポータル UI (Backstage など) を立ち上げることだけではありません。セルフサービスの有効性を高めるには、インフラストラクチャのより高度な自動化とオーケストレーションが必要です。同様に、将来起こり得るあらゆるユースケースに対応するためにプラットフォームを過剰に設計しようとすると、結果として極めて複雑になり、使用方法の習得に多大な時間がかかります。
さらに、プラットフォームチームは、断片化したツールとエンタープライズの複雑性を、最適化および自動化されたワークフローに統合するという大きな技術的課題に直面します。この複雑性をアプリケーション開発者から解放するには、継続的な抽象化とメンテナンスが必要であり、リソース不足のチームではすぐに手に負えなくなる可能性があります。
成功を収めている組織はこれらの問題を克服するために、厳格な「プロダクト・マインドセット」に移行し、エンジニアリングにおける単一の重大なボトルネックを最初に解決する Thinnest Viable Platform (TVP:今必要な最小限の機能を備えたプラットフォーム) を立ち上げています。開発者のパイロットグループと協力してこれらの初期ワークフローを設計することで、エンジニアが積極的に使用を選択するシームレスなセルフサービスの「ゴールデンパス」を作成します。導入を強制するのではなく、そのプラットフォームの使用に対する抵抗が最も少なくなるようにして、内部の自発的な作業の成功を活用し、インフラストラクチャの自動化を企業全体に徐々に拡張していきます。
プラットフォーム・エンジニアリングにおける Red Hat の役割
Red Hat® OpenShift® と Red Hat Advanced Developer Suite は、ソフトウェア開発ライフサイクル全体に対応する包括的なプラットフォーム・エンジニアリング・ソリューションを提供します。Red Hat OpenShift は、プロダクション環境でのアプリケーションのデプロイ、管理、拡張のための堅牢な基盤を提供します。また、Red Hat Advanced Developer Suite は、プラットフォームチームが開発者の生産性を向上させ、リスクを軽減し、AI を活用した開発を実現できるようにします。これによって運用に即時のメリットがもたらされるとともに長期的な変革がサポートされます。Red Hat Advanced Developer Suite は、内部開発者ポータルと信頼できるソフトウェア・サプライチェーンを使用して Red Hat OpenShift をさらに拡張し、包括的な内部開発者向けプラットフォーム (IDP) を提供します。
AI 時代のプラットフォーム・エンジニアリングの現状
This detail provides a comprehensive review of the State of Platform Engineering in the Age of AI survey, conducted by Illuminas. Explore the details.