Tech Insights / Golden Paths

ゴールデン パス:
ソフトウェアのためのプロセス アーキテクチャの構築

今日のデジタル ビジネスから生まれるデマンドは、時として圧倒的です。 ゴールデン パスとは、ソフトウェア開発プロセスを定義して簡素化するものであり、開発者がツールやインフラストラクチャの構成や管理ではなくコードの記述に注力できるようになるため、本番リリースまでの時間を短縮することができます。


ゴールデン パスとは

ゴールデン パス(「舗装道路」や「既定手順」とも呼ばれます)とは、ソフトウェア開発において、合意形成済みで、明確な定義を持ち、タスク固有で、サポートが提供されるプロセスを指します。ゴールデン パスに従うと、チームは開発プロセスをよりスムーズに進めることができます。ゴールデン パスを使用する組織は、より優れたソフトウェアを開発し、品質やコントロールを向上させながら、より高速にソフトウェアを本番環境にデリバリすることができます。組織では、異なるチームごとにさまざまなツール、フレームワーク、および言語を使用している状況がよくあります。多くの場合、開発者は、適切なテクノロジーを探すこと(また、その使い方を習得すること)に時間を使いすぎて、優れたソフトウェアを作成することに十分な時間を割けていません。

このアプローチの結果、ツール、フレームワーク、ドキュメントのエコシステムは細分化され、認知負荷は増大し、専門知識のレベルにばらつきが生じています。ゴールデン パスでは、ソフトウェアを開発してデプロイするための明確に定義されたツール、プロセス、手法を通じてサポートを提供するアプローチが採用されます。一般的に、KubernetesCI/CDDevOpsDevSecOps などのクラウドネイティブ テクノロジーが利用されます。定義されたツールとプロセスに従って「ゴールデン パス ソフトウェア」を開発することで、開発者の生産性を向上させ、価値実現までの時間を短縮できます。

ゴールデン パスでは、フレームワーク、ツール、ベスト プラクティスなどを綿密に定義およびサポートすることで、次のことが実現できます。

  1. 専門知識の向上: エンドツーエンドのソフトウェア開発プロセスを開発者中心の視点で展開できます。適切なツールが提供されるため、開発者が仕事に必要なものを始終探し求めているという状況がなくなります。
  2. 開発者トイルの軽減: インフラストラクチャ、ツール、用語、プロセス、人材に関する複雑さを取り除き、認知負荷を軽減します。

ゴールデン パス開発では、次の点を通して価値が得られます。

  1. 調査と学習: 明確に目標が設定され、ベスト プラクティスが組み込まれたステップバイステップのチュートリアルがあれば、新しいチーム メンバーのオンボーディングを促進できるだけでなく、利用可能な推奨ツールやサービスの学習にも役立ちます。
  2. 作成と反復: 共有可能なテンプレートやアクセラレーターを使用してアプリケーションを構築すれば、開発者はカオス状態から脱却できます。サービスやドキュメントを簡単に見つけたり再利用したりできることはゴールデン パスの基本であり、一貫性と透明性を確立できます。
  3. 統合とデプロイ: CI/CD パイプライン、API 管理、またはコンテナなどのツールを使用して、自動化やセルフサービスを実現できます。
  4. 運用の向上: 監視と可観測性によって、さらに詳細に可視化できます。メトリック、トレース、ログなどの機能を使用して、アプリケーションを本番環境にリリースする前に振る舞いを管理できます。

ゴールデン パスと舗装道路

ソフトウェア開発におけるゴールデン パスの概念は、もともとは Spotify によって考案され、エンジニアがクラウドネイティブ インフラストラクチャの増大する複雑さに対処し、「うわさドリブンの開発」から抜け出すためのものでした。Spotify のゴールデン パスでは、ツールやサービスの選択肢だけでなく、チュートリアル、ドキュメント、およびベスト プラクティスが組み込まれた IT チーム向けのロードマップも用意されています(SF に詳しい方のために言うと、「ゴールデン パス」は Frank Herbert 著の古典的 SF 小説である『デューン/砂丘の子供たち』からとられています)。Netflix の「舗装道路(Paved Road)」も同じようなアプローチで、文化とツールを組み合わせて取り込み、開発方法を標準化するものです。




ゴールデン パスの設計方法

ゴールデン パスに従うことで、ベスト プラクティスを統合し、意思決定の回数を減らすことができます。テレコム、運輸、医療、製造など、ソフトウェアを開発してデプロイするすべての企業は、ゴールデン パスを定義することでメリットを得ることができます。しかし、ゴールデン パスに含める内容は、ビジネスや目的によって異なります。

ゴールデン パスの設計は、次のステップから構成されます。

  • ステップ 1: 目標を定義する
  • ステップ 2: 対象者を特定する
  • ステップ 3: ベスト プラクティスを調査する
  • ステップ 4: ツールを選択する
  • ステップ 5: プロトタイプを作成する
  • ステップ 6: すべてを文書化する
  • ステップ 7: フィードバックを実施し、反復する

ゴールデン パスはどれも生きた産物であるため、ユーザーのフィードバックやテクノロジーの進化に応じて変化します。ゴールデン パスは、複雑さを排除しますが、パスの範囲内で逸脱できる自由度もいくらか残しておく必要があります。また、開発者が好むツールやアプローチを必要な状況で使用できるように、ある程度の拡張性を持たせておきます。




ゴールデン パスを検討する際の留意事項

組織は、ゴールデン パスを使用することで、知識やベスト プラクティスを統合し、新しいチーム メンバーのオンボーディングをスムーズに行い、チーム間の共有や調査を改善することができます。このことは、自動化やイノベーションの促進、より高速で安全なソフトウェア開発、開発者体験(DevX)の向上につながります。

ゴールデン パスの標準的なコンポーネント

ゴールデン パスを通じて、ドキュメントや内部 API の共有や発見から、ツールやセキュリティの適用まで、チーム間の協力が促進されます。また、ベスト プラクティスを標準化し、チームを正しい方向に導くのに役立ちます。ゴールデン パスのコンポーネントには、次のものがあります。

  • ドキュメント リポジトリ: 開発者は、自動的に構成されたテンプレートから最初のアプリケーションを作成して、開発プロセスをすばやく開始することができます。運用チームが作成したテンプレートから新しいマイクロサービスを立ち上げることで、組織独自のベスト プラクティスを活用できます。
  • ソフトウェア カタログ: 開発者にはある程度の自由度が与えられ、好みのツールやサービス(サーバレスまたは Kubernetes、Google Cloud Platform または Amazon Web Services、CircleCI または Jenkins)を選択できます。サービスを簡単に見つけて利用できるようにすることで、開発者が新しいサービスを選択したり、場合によっては開発したりするのではなく、開発者が同じサービスを再利用するように導くことができます。
  • スキャフォールディング/フレームワーク: 独自のテンプレートを作成し、チームが技術的な標準や仕様を確実に順守しながら、迅速にプロジェクトを作成できるようにします。これにより、ソフトウェア チームは、複雑さに煩わされることなく、ソフトウェアをデリバリできます。
  • ソフトウェア サプライ チェーン: 多くのゴールデン パスには、Backstage(開発者ポータル)や Tekton(CI/CD パイプライン用)などのオープンソース プロジェクトが統合されています。これらのツールをカスタマイズ可能なプラグインや組み込みのベスト プラクティスと連携させることで、サプライ チェーンを加速させ、ソフトウェア開発ライフサイクルを効率化し、本番環境までのゴールデン パスを実現できます。

セルフサービス開発者ポータル

ソフトウェア開発では、複雑さと認知負荷の軽減を目的として、ツール、知識、トレーニング、その他のテクノロジーを収集するための開発者ポータルが設計されます。開発者ポータルは、ゴールデン パスに必要なものをすべて集め、一箇所からアクセスできるようにすることで、社内セルフサービスを可能にし、ゴールデン パスの基盤として機能します。開発者ポータルでは、リソースの検索、プロジェクトの作成、コンポーネントやツールの統合、ソフトウェアのデプロイおよび運用を単一の管理画面から行うことができます。

2025 年までに、プラットフォーム チームを抱える組織の 75% がセルフサービス開発者ポータルを用意し、DevX を向上させ、製品イノベーションを加速化させることを計画しています。開発者ポータルの構築を考えている組織が直面している大きな決定事項は、開発者ポータルをゼロから構築するか、Backstage などの既存のオープンソース プロジェクトを活用するかというものです。

Backstage

Backstage はオープンソースの開発者ポータルであり、インフラストラクチャ ツール、ソフトウェア コンポーネント、データ、およびドキュメントを単一の管理画面に集約しています。Spotify によって開発されましたが、現在は Cloud Native Computing Foundation(CNCF)に引き継がれています。カスタマイズ可能なプラグイン ライブラリにより、コラボレーションや再利用を促進し、オンボーディング期間を短縮できます。

Backstage は、開発者に次のような機能を提供します。

  • 組織のベスト プラクティスに従った新しいソフトウェアを高速に作成する
  • 単一の一元的な場所でソフトウェアを管理する
  • 広範なエコシステムからプラグインを探して利用する
  • 組織内でより簡単にコラボレーションする


VMware で実現するゴールデン パス

Tanzu では、ソフトウェア開発スピードの加速、品質の向上、開発者トイルの軽減に向けて組織を支援することに力を入れています。VMware は、既存のゴールデン パスをより効果的に活用したり、新しいゴールデン パスを作成したりするにあたって役立つ幅広い製品とサービスを提供しています。

Tanzu Application Platform は、エンドツーエンドで統合された単一のソリューションです。豊富な開発者ツールと事前定義された本番環境へのゴールデン パスを提供し、企業はより多くのソフトウェアをより迅速かつ安全に開発してデプロイできます。Tanzu Application Platform では、Backstage を使用して開発者体験を向上できます。

Tanzu Labs は、チームによるアプリケーションのモダナイゼーションの加速を支援し、ソフトウェア チームやビジネスのニーズに合ったゴールデン パスの定義についてアドバイスを提供します。

Tanzu Observability(旧称 Tanzu Observability)は、メトリック、トレース、ログ管理が統合され、カスタマイズ済みですぐに利用可能なアプリケーション ダッシュボードを提供し、マルチクラウド環境でフルスタックの可視化を簡単に実現できます。

Spring アプリケーション向けのゴールデン パスの開発

VMware と Microsoft は共同で、Azure Spring Apps を、Spring アプリケーションをクラウドにデプロイして拡張するためのゴールデン パスとしました。Azure Spring Apps を使用すると、イベント駆動型の Spring アプリケーションをクラウドにデプロイし、速やかに稼働状態にすることができます。本番稼働に向けたこのゴールデン パスは、開発プロセスを簡略化し、リソースの使用を最適化するものです。