第1章 CodeReady Workspaces アーキテクチャーの概要

Red Hat CodeReady Workspaces コンポーネントには以下が含まれます。

  • 中央のワークスペースコントローラー: OpenShift API でユーザーワークスペースを管理する、常に実行中のサービス。
  • ユーザーワークスペース: ユーザーがコーディングを停止する際にコントローラーが停止させるコンテナーベースの IDE。

図1.1 CodeReady Workspaces アーキテクチャーの概要

crw high level

CodeReady Workspaces が OpenShift クラスターにインストールされる際、ワークスペースコントローラーはデプロイされている唯一のコンポーネントになります。CodeReady Workspaces ワークスペースは、ユーザーがこれをリクエストするとすぐに作成されます。

1.1. CodeReady Workspaces ワークスペースコントローラーについて

1.1.1. CodeReady Workspaces ワークスペースコントローラー

ワークスペースコントローラーは、コンテナーベースの開発環境 (CodeReady Workspaces ワークスペース) を管理します。以下のデプロイメントシナリオを利用できます。

  • Single-user: デプロイメントには認証サービスは含まれません。開発環境のセキュリティーは保護されません。この設定に必要なリソースは少なくなります。これは、ローカルインストールにより適しています。
  • Multi-user: これはマルチテナント設定です。開発環境のセキュリティーは保護され、この設定ではより多くのリソースが必要になります。クラウドインストールに適しています。

以下の図は、CodeReady Workspaces ワークスペースコントローラーの一部である各種サービスを示しています。RH-SSO および PostgreSQL は、マルチユーザー設定でのみ必要となることに注意してください。

図1.2 CodeReady Workspaces ワークスペースコントローラー

crw workspaces controllers

1.1.2. CodeReady Workspaces サーバー

CodeReady Workspaces サーバーは、ワークスペースコントローラーの中心となるサービスです。これは HTTP REST API を公開して CodeReady Workspaces ワークスペースを管理し、マルチユーザーモードで CodeReady Workspaces ユーザーを管理する Java Web サービスです。

コンテナーイメージ

eclipse/che-server

1.1.3. CodeReady Workspaces ユーザーダッシュボード

ユーザーダッシュボードは、Red Hat CodeReady Workspaces のランディングページです。これは Angular フロントエンドアプリケーションです。CodeReady Workspaces ユーザーは、ユーザーダッシュボードでブラウザーから CodeReady Workspaces ワークスペースを作成し、起動し、管理します。

コンテナーイメージ

eclipse/che-server

1.1.4. CodeReady Workspaces Devfile レジストリー

CodeReady Workspaces devfile レジストリーは、そのまま使用できるワークスペースを作成するための CodeReady Workspaces スタックの一覧を提供するサービスです。このスタックの一覧は、DashboardCreate Workspace ウィンドウで使用されます。devfile レジストリーはコンテナーで実行され、ユーザーダッシュボードが接続できる任意の場所にデプロイできます。

devfile レジストリーのカスタマイズに関する詳細は、「devfile レジストリーのカスタマイズ」についてのセクションを参照してください。

コンテナーイメージ

registry.redhat.io/codeready-workspaces/devfileregistry-rhel8:2.5

1.1.5. CodeReady Workspaces プラグインレジストリー

CodeReady Workspaces プラグインレジストリーは、CodeReady Workspaces ワークスペースのプラグインおよびエディターの一覧を提供するサービスです。devfile は、CodeReady Workspaces プラグインレジストリーに公開されるプラグインのみを参照します。これはコンテナーで実行され、CodeReady Workspaces サーバーが接続するすべての場所にデプロイできます。

コンテナーイメージ

registry.redhat.io/codeready-workspaces/pluginregistry-rhel8:2.5

1.1.6. CodeReady Workspaces および PostgreSQL

PostgreSQL データベースは、マルチユーザーモードで CodeReady Workspaces を設定するための前提条件です。CodeReady Workspaces 管理者は、CodeReady Workspaces を既存の PostgreSQL インスタンスに接続するか、または CodeReady Workspaces デプロイメントで新規の専用 PostgreSQL インスタンスを起動することを選択できます。

CodeReady Workspaces サーバーはデータベースを使用してユーザー設定(Workspaces メタデータ、Git 認証情報) を永続化させます。RH-SSO は、データベースをバックエンドとして使用し、ユーザー情報を永続化させます。

コンテナーイメージ

registry.redhat.io/rhel8/postgresql-96:1

1.1.7. CodeReady Workspaces および RH-SSO

RH-SSO は、マルチユーザーモードで CodeReady Workspaces を設定するための前提条件です。CodeReady Workspaces 管理者は、CodeReady Workspaces を既存の RH-SSO インスタンスに接続するか、または CodeReady Workspaces デプロイメントで新規の専用 RH-SSO インスタンスを起動することを選択できます。

CodeReady Workspaces サーバーは、OpenID Connect (OIDC) プロバイダーとして RH-SSO を使用して CodeReady Workspaces ユーザーの認証を行い、CodeReady Workspaces リソースへのアクセスのセキュリティーを保護します。

コンテナーイメージ

registry.redhat.io/rh-sso-7/sso74-openshift-rhel8:7.4