Golden Pathを実現する開発者向けポータル
Golden Pathは、開発者に遵守してほしいルールを付与し、実際に動作するサンプルアプリとコードを提供することで、開発者のノウハウ習得を支援する仕組みである。レッドハットの開発者向けポータル「Red Hat Developer Hub」では、このGolden Pathをセルフサービス化して提供することができる。
北村氏は、その概要をデモを交えて解説した。Developer Hubは、Backstageをベースとした開発者向けプラットフォームの統合ポータル機能。Backstageが提供する機能に加えて、サンプルのGolden Pathや他のRed Hat製品と連携するプラグイン、エンタープライズのサポート等も提供する。
レッドハットの提供するコンテナプラットフォームであるOpenShiftと組み合わせると、次のような世界が実現できる。
まず、プラットフォームエンジニアリングチームがOpenShiftの開発環境とGolden Pathを準備する。開発者たちは言語やフレームワークに合わせてGolden Pathを選択し実行する。すると、Skeleton Repositoryという準備されたリポジトリから、今回の開発で必要なアプリ用のリポジトリとKubernetesのマニフェストが入っているリポジトリがコピーされる。
併せて、OpenShift内ではArgo CDというCDツールにリソースがデプロイされ、マニフェストリポジトリ内にあるCIツール(Tekton)のパイプラインがデプロイされる。このCIパイプラインには、ビルドデプロイだけでなくテストやセキュリティスキャンのプロセスも含まれる。ここまでが、Golden PathをDeveloper Hub上で実行したときのステータスだ。
その後、実際に払い出されたアプリケーションに変更を加えるには、アプリ用のGitをクローンし、ローカルで編集を加えてコミット、プッシュする。すると、Golden Pathであらかじめ設定されたWebフックが機能して、アプリをデプロイするためのCIパイプラインが実行される。ビルドの処理が走ってコンテナのイメージが作成され、Argo CDのSyncによってサンプルアプリケーションがデプロイされるといった流れだ。
「サンプルアプリをデプロイするために開発者が行うことは、Golden Pathのデプロイと、アプリケーションのソースコードの修正のみ」と北村氏。
また、Developer Hubでは、デプロイされたさまざまな環境をポータルから一元的に閲覧することも可能だという。たとえば、プルリクエストの情報やCIパイプラインの実行状況などを確認できる。
北村氏はその他にも、SonarQubeの情報や、実際にデプロイされている環境のトポロジー、Argo CDのSyncの状況の履歴まで確認できることを紹介した。
さらに、Developer Hubには開発者がこの開発環境をどのように使うべきかという情報をドキュメントにまとめて提供する機能も備えている。