プラットフォーム・エンジニアリング・ツールとは
プラットフォーム・エンジニアリング・ツールは、開発チーム (社内および社外) がセルフサービス方式で必要な時に必要なものにアクセスできるようにすることで、生産性の向上を支援します。プラットフォーム・エンジニアリング・ツールは、継続的インテグレーションおよび継続的デリバリーまたはデプロイメント (CI/CD)、Infrastructure as Code (IaC)、コンテナ化、可観測性、セキュリティ、開発者向けセルフサービスを含む、さまざまな機能をサポートします。
プラットフォーム・エンジニアリング・チーム (単にプラットフォームチームと呼ばれることもある) は、開発者ポータルのサポートを担当します。このポータルは、開発者がさまざまなサービスや API と連携するために必要なリソース、ドキュメント、ツールへのセルフサービスアクセスを提供します。この他にも、プラットフォームチームは、開発者がアプリケーションを構築、デプロイ、管理するための基盤となるインフラストラクチャである内部開発者向けプラットフォーム (IDP) のメンテナンスを担当することもあります。
プラットフォーム・エンジニアリング・テクノロジーと開発者用ツールは関連性はあるものの、カテゴリが異なります。プラットフォーム・エンジニアリング・テクノロジーと IDP、つまりプラットフォームそのものは、開発者の業務を効率化する一貫したプロセスの確立を促進します。一方、開発者用ツールは、この基盤をベースとしたツールであり、開発者による IDP のエクスペリエンスの向上や、特定のプロジェクトの遂行を支援します。
ここからは、プラットフォーム・エンジニアリングが達成しようとしている目的、そしてその目的達成を支えるどのようなテクノロジーやサービスがあるかについて詳しく見ていきます。
プラットフォーム・エンジニアリングの目的
プラットフォーム・エンジニアリングは、このクラウドネイティブの時代に存在する膨大な数の既存テクノロジーを把握することを目指しています。プラットフォーム・エンジニアは、ソフトウェア・エンジニアリングに携わる組織向けのセルフサービス機能を実現するため、ツールチェーンやワークフローを設計し、構築します。開発チームは、数分で必要な機能にアクセスでき、提供されるソリューションは内部でサポートされ、可観測性があり、組織のセキュリティ慣行に沿ったものであると確信して利用できます。
プラットフォーム・エンジニアリングは、より効率的なソフトウェア開発を目的として、企業文化、業務運営、チームによるコラボレーションなど幅広い分野を総合的に融合するアプローチです。ソフトウェア開発者にかかる認知負荷を認識し、開発者が問題だと感じている課題を特定し、軽減することを目指します。
では、それはどのような形で実践されるのでしょうか。プラットフォーム・エンジニアは、組織全体の一貫性を維持しながらも柔軟性を提供する、コンテンツ、ツール、ドキュメント、テンプレート、ワークフローのコレクションを作ります。プラットフォーム・エンジニアは再利用可能な共通のツールや機能を提供して、開発者が効率的に業務を行って生産性を高められるように支援します。
AI 時代のプラットフォーム・エンジニアリングの現状
内部開発者向けプラットフォーム (IDP) とは
IDP は、開発者がコードの作成およびデプロイに使用できる、セルフサービスツールやテクノロジーの標準化されたセットです。開発プロセスの要素を統合および単純化することにより、IDP は開発チームの作業をより管理しやすく、効率的かつ協力的なものにします。
IDP は、プラットフォーム・エンジニアリングに関する選択が形になったものです。IDP は、魅力的な社内向け製品として提供される、セルフサービスの API、ツールとサービス、ナレッジ、そしてサポートの基盤です。IDP の主たるユーザーは開発チームですが、初期設定、メンテナンス、サポートはプラットフォーム・エンジニアが担当します。そのため、過去に誰が作成したものかに関係なく、組織全体で使用するテクノロジーやリソースを統一できます。IDP を提供することは、開発チームと運用チームのより効率的な連携を促進する DevOps のベストプラクティスを実現し、維持する手段の 1 つでもあります。
「内部開発者ポータル」と「内部開発者向けプラットフォーム」という用語が混同されることがあります。違いは、開発者ポータルが内部開発者向けプラットフォームのフロントエンドとして機能することです。これにより、アプリケーション・プラットフォームが追加されて機能に深みとスケーラビリティがもたらされます。
開発者向けプラットフォームのオープンソース・プロジェクトとして特によく知られているものの 1 つに、Spotify のエンジニアによって開発され、後に Cloud Native Computing Foundation (CNCF) に寄贈された Backstage があります。Backstage は Red Hat® Developer Hub の基盤となっています。Red Hat Developer Hub は、エンタープライズ向けの統合機能とサポートを備え、開発者向けプラットフォームを構築するためのサポート付きの独自のフレームワークを提供します。
CI/CD ツールとは
CI/CD ツールは、開発、デプロイ、テストを自動化するために役立ちます。ツールには、特にインテグレーション (CI) 側を処理するものや、開発とデプロイ (CD) を管理するもの、継続的なテストや関連機能に特化したものがあります。こうしたツールの多くは、プラットフォーム・エンジニアリングのアプローチの一環として IDP に統合できます。
オープンソースの CI/CD ツールには、よく知られているさまざまなツールがあります。ここでは代表的なもののみ紹介します。
- Argo CD は、GitOps のプラクティスに沿った、Kubernetes 向けの宣言型継続的デリバリーツールです。スタンドアロンのツールとしても、必要なリソースをクラスタに提供する CI/CD ワークフローの一部としても使用できます。
- Red Hat OpenShift® GitOps は、Argo CD を基盤に構築されています。
- Tekton は、コンテナによって標準のクラウドネイティブな CI/CD エクスペリエンスを提供する Kubernetes プラットフォーム向けの CI/CD フレームワークです。
- Red Hat OpenShift Pipelines は、Tekton フレームワークを基盤として構築されています。
- Jenkins は、CI および CD プロセスを小規模なものから大規模なものまで処理できる自動化ツールです。
- Spinnaker は、マルチクラウド環境向けに設計された CD プラットフォームです。
- GoCD は、モデリングと可視化に重点を置いた CI/CD サーバーです。
- Concourse は、継続的なプロセスに適した自動化ツールです。
- Screwdriver は、CD 用に設計されたビルド・プラットフォームです。
さまざまなベンダーから入手できるマネージド型の CI/CD ツールを検討することが必要な場合もあります。適切な CI/CD ツールを選択することで、あらゆるプラットフォームでのアプリケーションの構築、テスト、デプロイを自動化できます。
Infrastructure as Code (IaC) ツールとは
IaC は、インフラストラクチャを管理する方法の 1 つです。IaC を通じて、管理者はサーバーや仮想マシンなどのインフラストラクチャの管理とプロビジョニングを自動化できます。自動化されたセルフサービス型インフラストラクチャに対応しているという点は、プラットフォーム・エンジニアリングの目的と一致しています。
IaC を使用する場合、設定ファイルを使ってインフラストラクチャの仕様を定義することになります。このため、一貫した環境のプロビジョニングが容易になります。IaC により、組織全体で設定を編集して配布でき、記録されていないアドホックな変更を抑制できます。
IaC は、サーバーの自動化および構成管理ツールを利用します。IaC アプローチとの整合性のある一般的な IT 自動化ツールとして、Red Hat Ansible® Automation Platform、Terraform、Chef、Puppet、Salt などが挙げられます。
コンテナツールと Kubernetes とは
コンテナツールは、プラットフォーム・エンジニアのツールボックスに欠かせないツールです。
コンテナは、アプリケーションをそのランタイム環境全体 (実行に必要なすべてのファイル) とともにパッケージ化し、分離します。このため、コンテナ化アプリケーションは、デプロイ先の環境やインフラストラクチャが異なっても一貫して実行されます。コンテナは、クラウドネイティブ開発の基盤となる手法であり、大規模なアプリケーションを分割して、小規模で独立した、疎結合のマイクロサービスの集合体を作ります。
コンテナの利用を容易にするさまざまなオープンソースツールがあります。開発者はコンテナの構築やデプロイに Docker や Podman などのツールを使用できます。どちらのツールも Open Container Initiative (OCI) 標準規格に対応しています。
コンテナを大規模に管理するには、運用チームはオープンソースの Kubernetes プロジェクトなどのコンテナ・オーケストレーション・プラットフォームを利用します。コンテナ・オーケストレーションは、コンテナのライフサイクル全体を通じて、コンテナのデプロイメント、管理、スケーリング、ネットワーキングを自動化します。
Kubernetes プラットフォームは、さまざまなプロバイダーを通じて利用できます。Red Hat OpenShift は、Kubernetes を基盤として構築されたエンタープライズ向けのアプリケーション・プラットフォームです。プラットフォーム・エンジニアは、Red Hat OpenShift を Red Hat OpenShift Developer Hub などの IDP と統合して、開発者向けプラットフォームを提供できます。
可観測性ツールとは
プラットフォーム・エンジニアリングにおいては、監視と可観測性が重要です。チームは出力、ログ、パフォーマンス指標を調査することで、システムやアプリケーションの状態に関する理解を深められます。この可視性により、開発者や管理者は複雑なアプリケーションやインフラストラクチャの信頼性、パフォーマンス、セキュリティを向上させることができます。
可観測性は、監視の概念を拡張して、問題の根本原因の特定に加え、予測や予知まで含めたものです。可観測性ツールやテクノロジーの選択肢は数多くあり、チームに最適な方法で独自の可観測性システムを構築できます。
広く使用されている可観測性のためのオープンソースツールには、Grafana、Jaeger、OpenTelemetry、Prometheus などがあります。Red Hat OpenShift Observability は、OpenTelemetry 標準規格を使用して Red Hat OpenShift で利用するために構築された、一連の可観測性ツールです。
プラットフォーム・エンジニアリング・セキュリティ・ツールとは
セキュリティへの懸念が高まる中、先進的なソフトウェア開発ではソフトウェア開発ライフサイクル (SDLC) の各段階でセキュリティに対応する「シフトレフト」戦略が採用されています。これによりセキュリティは、デプロイ前の最後のチェックではなく、プロジェクトの最初から取り組むものとなりました。
プラットフォーム・エンジニアは、開発者が SDLC 全体を通してセキュリティ防護機能を守れるように支援します。そのためのステップには、CI/CD パイプラインにおける自動化されたチェックやテストが含まれます。これらを通じてコードを保護し、データ漏洩を防止し、ポリシーの順守を徹底し、品質を保証します。
その他にも、シークレット管理 (パスワード、クライアント設定ファイル、リポジトリ認証情報などの管理) や、API キーの管理を含む API セキュリティに役立つプラットフォーム・エンジニアリング・セキュリティ・ツールがあります。
Red Hat は、ソフトウェアのセキュリティをサポートする一連のツールやサービスを提供しています。
Red Hat Trusted Software Supply Chain は、Red Hat Trusted Profile Analyzer、Red Hat Advanced Developer Suite、Red Hat Trusted Artifact Signer など、脆弱性を低減し、セキュリティポリシーを適用する一連のソリューションを統合したものです。
- Red Hat Trusted Profile Analyzer は、ソフトウェア部品表 (SBOM) の管理を支援すると同時に、信頼できるソースからの CVE やセキュリティ・アドバイザリーを相互参照します。オープンソース・プロジェクトである Graph for Understanding Artifact Composition (GUAC)、Trustification、Exhort のテクノロジーを取り入れています。
- Red Hat Trusted Artifact Signer は、Sigstore プロジェクトをベースにしたもので、コンテナイメージ、バイナリー、ドキュメントなどのソフトウェア・アーティファクトの暗号署名と検証を単純化します。また、Cosign と Fulcio プロジェクトのテクノロジーを取り入れて、Hashicorp Vault、Google/Azure、AWS KMS など、他社の主要な管理システムとの完全統合をサポートしています。
- Red Hat Advanced Developer Suite は、ソフトウェア・アーティファクトのエンドツーエンドの出所追跡を提供します。
Kubernetes デプロイメントでは、Red Hat Advanced Cluster Security for Kubernetes がプラットフォーム上のコンテナ化されたワークロードを保護し、チームが脆弱性を特定して対処し、セキュリティポリシーを適用できるよう支援します。
プラットフォーム・エンジニアリングに Red Hat を選ぶ理由
Red Hat では、プラットフォーム・エンジニアの目的に合致する幅広いソリューションを取り揃えています。Red Hat の製品とサービスの相乗効果によって、チームの生産性を高め、セルフサービスを推進できます。また、オンボーディングが迅速化し、繰り返しの作業が減少します。
Red Hat OpenShift は、オンプレミス、クラウド、エッジなどのデプロイ場所を問わず、さまざまなアプリケーションで開発者が信頼できるツールを使用できる、エンタープライズ・アプリケーション・プラットフォームです。
Red Hat Developer Hub は、ソフトウェア開発プロセス全体を通じて効率化とコラボレーションを促進します。統一されたオープンなプラットフォームを提供すると同時に、開発チームが感じる認知負荷や不満を軽減します。Red Hat Developer Hub を利用することで、組織は IDP を使用して開発プロセスの要素を統合し、ワークフローを最適化し、社内コラボレーションを強化できます。
Red Hat Trusted Software Supply Chain は、ソフトウェアファクトリーのコンポーネント、プロセス、プラクティスにセキュリティを最初から組み込めるようにします。
Red Hat Developer Hub ビジネス・ソリューション
Backstage ベースのオープンなエンタープライズ・プラットフォームで、開発プロセスの要素を視覚的に統合した開発者ポータルを構築できます。