Cloud IDEのシュートアウト:AWS Cloud9 vs. Eclipse Che vs. Eclipse Theia

多くの依存関係を持つプログラミングプロジェクトに新しい開発者を連れてくることは、悪夢になることがあります。私は、会社が開発者の古いコンピューターを構成しようとして1か月の問題を抱えた後、最終的にあきらめて新しいコンピューターを購入したという極端なケースを見てきました。より一般的には、新しい開発者のために新しい開発環境をセットアップするには、3日から2週間かかる場合があります。

この問題は、Webベースの開発者ワークスペースの動機の1つです。もう1つの動機は、ローカル開発用のマシンにはかなりのCPUおよびRAMリソースが必要であり、ハードウェアのコストが増加することです。これらのリソースにより、開発者はプロジェクトを迅速に構築できます。Webベースのワークスペースにアクセスするためのコンピューターは、ローカル開発用のコンピューターよりもローエンドのハードウェアを使用することができます。

追加の利点として、Webベースの開発者ワークスペースは構成を一元化および標準化できます。バグレポートに応えて「私のマシンで動作します」と聞いたことは何回ありますか?標準化された環境はその問題を取り除くことができます。

この記事では、Webベースの開発者ワークスペースを提供する3つのクラウドIDEについて説明します。それらのうちの2つ(EclipseTheiaとEclipseChe)は、現在EclipseFoundationの支援を受けているかなり最近の無料のオープンソースプロジェクトです。3番目のAWSCloud9は、現在Amazon Web Servicesが所有し、統合している古い製品です。

Eclipse Theia

Eclipse Theiaは、ブラウザーでVisual StudioCode開発エクスペリエンスを提供するためのオープンソースプロジェクトです。また、Electronシェルのデスクトップで実行することもできます。Theiaは、Visual StudioCodeのLanguageServer Protocolに依存して、言語固有のコード補完や、最新のコードエディターに期待されるその他の機能を提供します。

Visual Studio Code用に記述された言語サーバーを利用できるため、TheiaはJavaScript、Java、Python、TypeScriptを含む60を超える利用可能な言語サーバーにアクセスできます。Theiaは、デバッグアダプタプロトコルもサポートしています。

Theia自体はTypeScriptで記述されており、シェルとドラッグ可能なドックレイアウトの基盤としてPhosphorJSを使用しています。コマンドライン履歴を維持するために、ブラウザのリロード時に再接続する端末を統合します。必要に応じて、Theiaに独自の拡張機能を作成できます。

Theiaを試す主な方法は3つあります。1つはDockerで実行することです。

docker run -it -p 3000:3000 -v“ $(pwd):/ home / project:cached” theiaide / theia:next

2つ目は、Gitpodで実行することです(以下のサイドバーとスクリーンショットを参照)。3つ目は、Eclipse Cheバージョン7以降(次のセクションを参照)を実行することです。これは、古いバージョンのCheで使用されていたJavaUIの代わりにTheiaをUIとして使用します。

Eclipse Theiaプロジェクトには、TypeFox、Ericsson、Red Hat、IBM、Google、およびARMからの貢献が含まれています。プロジェクトのロードマップには、VS Code拡張機能(言語サーバー以外)、テストフレームワークとの統合、およびその他の改善をサポートするプラグインシステムが含まれています。

TypeFox Gitpod

Gitpodは、ワークスペースでGitHubリポジトリを開くように設計された商用ホスト環境(上のスクリーンショットを参照)です。Gitpod IDEはオープンソースであり、EclipseTheiaに基づいています。現在、無料のベータテストフェーズにあるGitpodは、オープンソースプロジェクトでは常に無料ですが、最終的には、プライベートリポジトリを開き、月に100時間以上使用するにはサブスクリプションが必要になります。

Gitpod.ioクラウドは現在、世界中の3つの異なる地域のGoogleCloudインフラストラクチャでホストされている複数のKubernetesクラスターで実行されています。Gitpod製品はプライベートホスティングにも利用できます。

Eclipse Che

Eclipse Cheは、チームや組織向けに設計されたオープンソースの開発者ワークスペースサーバーおよびクラウドIDEです。現在ベータ版のCheバージョン7は、IDEの基盤としてEclipseTheiaを使用しています。Cheの古いバージョンはGWTベースのIDEを使用しています。Cheワークスペースは、Docker、OpenShift、またはKubernetesのコンテナーで実行されます。

Cheは、パブリッククラウド、プライベートクラウドで実行することも、任意のオペレーティングシステムにインストールすることもできます。Cheは、Ubuntu、Linux、MacOS、およびWindowsでテストされています。//che.openshift.io/でホストされているセルフサービスワークスペースでCheを実行することもできます。そのためには、無料のOpenShiftまたはRedHatログインを用意または作成する必要があります。

さらに、Eclipse Cheは、OpenShiftの新しい開発環境であるRed Hat CodeReadyWorkspacesのコアを構成します。CodeReadyワークスペースは、Red Hatでサポートされているだけでなく、サポートされているRed Hatテクノロジを使用して事前に構築されたスタックを備えており、開発者チーム間の認証とセキュリティを処理するためのRed HatSSOが含まれています。

Eclipse Cheプロジェクトには、CodeEnvy(Cheの最初の開発者)、Docker、IBM、Red Hat、TypeFoxを含む20社以上からの貢献が含まれています。Cheロードマップには、Theia統合とTheiaおよびCheのプラグインシステムの完成が含まれています。

AWS Cloud9

2017年にGoIDEとして言及したCloud9IDEは、現在Amazon WebServicesに属しています。Cloud9は、ブラウザーベースの多言語コードエディター、複数の言語用のデバッガー、AWSサービス用に事前承認された端末を備えていることに加えて、コラボレーションコーディングを可能にします。

Cloud9開発環境は、マネージドAmazonEC2インスタンスまたはSSHをサポートする任意のLinuxサーバーで実行できます。Cloud9には、40以上のプログラミング言語用のツールが含まれていますが、デバッガーを備えているのは5つ、リンティングを備えているのは7つ、コード補完を備えているのは12です。

EC2でCloud9を実行すると、Cloud9を閉じた後(デフォルトでは30分後)にEC2インスタンスが自動的に停止し、コードはAmazonEBSストレージに保持されます。独自のLinuxサーバーでCloud9を実行する場合、コードはローカルストレージに保持されます。基になるインスタンスが停止した後にCloud9を再起動すると、Cloud9は自動的にインスタンスを再起動し、中断したところから編集セッションを復元します。

Cloud9インスタンスは、リポジトリまたはローカルファイルから簡単に設定できます。以下のスクリーンショットでは、Cloud9コマンドラインからGitを使用して、KerasのGitHubリポジトリをチェックアウトしました。コミット権限のあるリポジトリに基づいてプロジェクトを編集している場合は、必要に応じてコマンドラインからリポジトリを更新して変更をプルできます。Cloud9はバージョン管理をグラフィカルにサポートしていません。

以下のスクリーンショットの右側にあるアウトラインビューに注意してください。これは、ファイル内の全体的なナビゲーションに適しています。左上に表示されている[移動]メニューは、より一般的なナビゲーションに適しています。Cloud9にはリファクタリング機能はありませんが、単純なコードの再フォーマットがあります。

AWS Cloud9は、Amazon Lightsail、AWS CodeStar、AWS Lambda関数、およびAWSCodePipelineと統合されています。Lambdaの統合は特に優れているようです。

どのクラウドIDE?

Eclipse Theia、Eclipse Che、およびAWS Cloud9はすべて、ブラウザーから複数のプログラミング言語でコードを編集およびデバッグできます。レイアウトと機能には違いがありますが、リファクタリングなどのかなり高度なことを実行したい場合を除いて、問題になるほどで​​はありません。

AWSプロジェクトで作業している場合は、Cloud9が特に適しています。また、Red Hatシステムのコードで作業している場合は、Cheが(CodeReadyとして)特に適しています。Theiaは、3つの中で最も優れた編集環境を提供しますが、Che 7がベータ版からリリースされると、TheiaIDEも搭載されるようになります。