サービス詳細
OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~ - Natic | Application Modernization Platform – 日商エレクトロニクス

OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~

OpenShift Container Platform

目次 Table of Contents

  1. はじめに
  2. CodeReady Workspaces インストール
  3. 実際の使用感
  4. まとめ

1.はじめに

みなさま、クラウドネイティブしていますか!? NADPの兼田です。

お客様のDXを推進させるためにも、クラウドネイティブな開発手法を嗜んでおくことは必須の世の中となっています。では、クラウドネイティブな開発を行うためにも、エディタ・IDEは既存のもののままでよいのでしょうか?

当社にて実証検証中のOpenShift Container Platform (OCP)では、Red Hat社がホスティングするEclipse Cheと呼ばれるクラウドIDEを利用することができ、商用サポートも含めた開発者用ツールという位置づけで「Red Hat CodeReady Workspaces (※1)」というソリューションが提供されています。

CodeReady WorkspacesはVS CodeライクなEclipse Theiaを利用しており、Language Server Protocolによる素早く高品質なコーディングや、オープンなマーケットプレイスを通じた柔軟な拡張機能の提供などが魅力的な統合開発環境となっております。

今回は実際にCodeReady Workspacesに触れてみる機会がありましたので、使用感のレポートをお届けしようと思います。

2.CodeReady Workspaces インストール

インストールについては、非常に簡単です。

すでに動作しているOCPがあれば、Operator HUBからインストールすることによって利用可能です。CodeReady Workspacesは、OCPでのOperatorとして動作します。

redhat1 OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~

図: 「Operator 追加」

インストールが完了すると、Installed Operatorsから確認することが出来ます。
OperatorのOperandとなる、CheClustersも追加します。
redhat2 OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~

図: 「Operand 追加」

私の環境では、CodeReady Workspacesが利用可能になった時点で、以下の6つのPodがデプロイされていました。
redhat3 OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~

図: 「CodeReady Workspacesを動作させるためのPodの一覧」

3.実際の使用感

インストールが完了すると、CheClustersからRouteを確認することが出来るようになります。

Routeからアクセスできるページでは認証を求められるので、権限を持ったユーザがログインすることでWeb UIを表示させることが出来ます。(kubeadminユーザでアクセスしようとすると、keycloakに弾かれるようになっています。)

今回は何らかの開発案件で利用したわけではないので、標準で用意されているPythonサンプルコードを実行してみました。
redhat4 OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~

図: 「サンプルコードのカタログ」

各プロジェクトに、Workspaceと呼ばれる単位で環境を管理することが可能です。

Workspaceの実態はOCP上のPodが該当しており、「<ユーザ名>-codeready」という名前のnamespaceにプロジェクト毎にPodが生成されます。

このPodには、Eclipse Cheの実行コンテナや、開発環境そのもの(ライブラリ)を含むコンテナ、Eclipse Theiaを実行するためのコンテナなどが含まれています。
redhat5 OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~

図: 「Workspaceの作成で生成されるContainerの一覧」

実際にサンプルコードを動かしてみましょう。

PythonのサンプルはサンプルのWorkspaceに同梱されるもので、右上の実行ボタンを押下することで、アプリケーションを呼び出すターミナルが表示されます。今回の例では、文を出力して終了する簡単なプログラムなので、ターミナル上でHello Worldが出力されていることで動作が確認できました。

redhat6 OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~

(図: 「サンプルコード実行」

また、今回は触れていないものの開発環境をPod内のコンテナとして動作させていることから、開発に必要なツールをまるまる一つのyamlファイルに定義することで、開発環境をPodとして提供することが可能となっています。

CodeReady Workspaces自体がWebブラウザで動作することもあり、開発に使用するマシンを問わず、複数のプログラマに対し統一された実行環境・開発ツールの提供を行うことが出来ます。

この機能は、devfile(CodeReady Workspaces)や、devcontainer(VS Code)と呼ばれている機能になります。

4. まとめ

DXを推進するためのクラウドネイティブな開発環境として、CodeReady Workspacesのご紹介と、実際の使用感をお伝えしました。

既存の開発機のイメージといえば、そこそこのスペックを必要として、さらにコーディングを実施するエンジニアが好みのツールでカスタマイズをして、といったことも珍しくありませんでした。

サービスを迅速に、かつ弾力的に提供するためにも、必要なリソースはクライアント側で用意するのではなく、クラウド・オンプレで提供し、便利なツールはプロジェクトチーム全体で共有されるべきで、そのためのとっておきのツールがCodeReady Workspacesであると言えます。

より有効的な活用方法が見いだせるよう、兼田も精進してまいります。

参照一覧:
(※1) Red Hat CodeReady Workspaces

記事担当者::アプリケーション事業推進部 SoEアーキテクト課 兼田 涼
投稿日:2022/4/11