OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~ - Natic | Creating the Future with Applications – 双日テックイノベーション
OpenShiftによるお手軽統合開発環境 ~CodeReady Workspacesを添えて~
目次 Table of Contents
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として動作します。
図: 「Operator 追加」
インストールが完了すると、Installed Operatorsから確認することが出来ます。
OperatorのOperandとなる、CheClustersも追加します。
図: 「Operand 追加」
私の環境では、CodeReady Workspacesが利用可能になった時点で、以下の6つのPodがデプロイされていました。
図: 「CodeReady Workspacesを動作させるためのPodの一覧」
3.実際の使用感
インストールが完了すると、CheClustersからRouteを確認することが出来るようになります。
Routeからアクセスできるページでは認証を求められるので、権限を持ったユーザがログインすることでWeb UIを表示させることが出来ます。(kubeadminユーザでアクセスしようとすると、keycloakに弾かれるようになっています。)
今回は何らかの開発案件で利用したわけではないので、標準で用意されているPythonサンプルコードを実行してみました。
図: 「サンプルコードのカタログ」
各プロジェクトに、Workspaceと呼ばれる単位で環境を管理することが可能です。
Workspaceの実態はOCP上のPodが該当しており、「<ユーザ名>-codeready」という名前のnamespaceにプロジェクト毎にPodが生成されます。
このPodには、Eclipse Cheの実行コンテナや、開発環境そのもの(ライブラリ)を含むコンテナ、Eclipse Theiaを実行するためのコンテナなどが含まれています。
図: 「Workspaceの作成で生成されるContainerの一覧」
実際にサンプルコードを動かしてみましょう。
PythonのサンプルはサンプルのWorkspaceに同梱されるもので、右上の実行ボタンを押下することで、アプリケーションを呼び出すターミナルが表示されます。今回の例では、文を出力して終了する簡単なプログラムなので、ターミナル上でHello Worldが出力されていることで動作が確認できました。
(図: 「サンプルコード実行」
また、今回は触れていないものの開発環境を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