メインコンテンツへ移動

Cloud IDE

無料2019-10-06#Mind#云IDE#远程开发#全云开发#why Cloud IDE#tool-less-dev

クラウド IDE はどのような未来の研究開発モードをアンロックしますか?

一.クラウド IDE?新概念ですか?

いいえ、いいえ、いいえ、なんと 2010 年すでに成熟した製品がありました:Cloud9 IDE

現在に至るまで、クラウド IDE はすでに非常に一般的になりました。例えば:

  • Cloud9:アマゾンがそのクラウドコンピューティングサービスのために提供する IDE

  • Eclipse Che および Eclipse Theia:老舗 IDE のクラウドバージョン

  • Coder:および少し前にオープンソースになった code-server

  • Expo Snack:React Native のクラウド開発環境

  • Coding:国内のクラウド IDE 製品

  • codesandbox:Web プロジェクト向けのクラウド IDE

二.なぜクラウド IDE が必要なのか?

一般的な開発ワークフローでは、一揃いのローカル環境を構築します。使いやすい IDE と一揃いのローカルツールを含みます。しかし、このローカル開発モードにはいくつかの問題があります:

  • 開発マシンのパフォーマンス要件が高い:冷間コンパイルに 40 分

  • 開発環境の構成が複雑:ツール環境はコンテナ技術または一連のバージョン管理ツール(nvm など)で解決できますが、ネットワーク、セキュリティなどの環境はそれほど簡単に構成できません

  • 特定のデバイスに依存:休暇は取れますが、コンピュータを持っていき、24 時間 On Call、10 分無応答で重大過失 1 回

  • 巨大なコードベースの管理難題:巨大なコードベースで Git ブランチを切り替えると、簡単に 30 分

そこで、リモート開発の理念が生まれました。リモートテストサーバーに接続し、サーバー環境で直接日常の開発作業を完了し、ローカルでテスト環境を再構築して維持するコストを省きます

既存のリモート開発モードでは、エンジニアは主にターミナル対話ツールを通じてリモートマシンに接続し、vim、naro などのテキストエディタを通じて開発します。これらのエディタは通常、プロジェクトファイル管理、実行タスク、デバッガ、スマートヒント/補完などの基本機能のサポートがそれほど友好的ではなく、ローカル IDE のように快適な開発環境を提供できません。開発体験が低下すると同時に、開発効率も制限されます

では、両方とも満足させる方法はあるでしょうか?

あります。IDE もリモートに移動します。つまりクラウド IDE です

P.S. またはクラウドを引きずり下ろします。つまり、ローカル IDE がリモート開発能力を提供しますが、理念的にはクラウド IDE と二致しません(ローカル IDE はブラウザに相当)。詳細は VSCode リモート開発キット を参照

三.クラウド IDE はどのような問題を解決できるか?

以上より、IDE のクラウド化は 2 方面の問題を解決できます:

  • ローカル開発モードでは解決が難しい問題:ローカルマシンが非常に強力でなくてもよく、環境を心配する必要がなく、特定の事務機器に依存せず、ハードディスクももはや狂気的に回転する必要がない

  • リモート開発モードの体験問題:もはや Web Editor のおもちゃではなく、ローカル IDE と同じくらい使いやすい開発環境

クラウド IDE もリモート開発モードの実装形式の一種であり、当然ローカル開発モードに存在するいくつかの難題を解決できます

同時に、Web Editor のアップグレード形態として、クラウド IDE はより良いリモート開発体験を提供でき、リモート開発モードの体験の欠点を補足し、ツールが使いにくく開発効率を制限する問題を解決できます

四.クラウド IDE にはどのような作用があるか?

ローカル IDE でもクラウド IDE でも、2 つの基本的な作用があります:

  • 開発効率の向上:細切れの開発ツール/サービスを統合し、ツールチェーンのプラットフォーム化を実現

  • 開発体験のアップグレード:開発ワークフローをシームレスに接続し、ワンストップ体験を提供

開発者の角度から見ると、IDE の鍵はツールの統合と接続にあります。単純なツールセットではなく、これらのツールが最も自然な方式で協力して作業し、効率的なワークフローを組成できるようにすること です。つまりワークベンチ/ワークアシスタント >> ツールセット

IDE >> プロジェクトファイル管理 + テキストエディタ + 対話型ターミナル + プロジェクトスキャフォールディング + 実行タスク + デバッガ + ツールプラグイン + ...ツール

クラウドサービスサプライヤーにとって、Cloud Shell、Cloud Editor から Cloud IDE への製品形態のアップグレードを実現できます。一連の製品(クラウドサービス)をユーザーのワークフローと緊密に結合でき、製品機能をよりよく表現できるだけでなく、IDE を通じてより効率的にユーザーにリーチできます

                     ^ FaaS、BaaS
                    /
クloud サービスユーザー ---> クラウド IDE ---> データストレージサービス
                    \
                     v 計算リソース

五.応用シーン

肉眼で確認できる未来において、クラウド IDE にはこのような応用シーンがあります:

  • FaaS:関数即サービス。では、関数はどこで書くのか?

  • 独立した技術エコシステム:React Native、ミニプログラム、可視化構築システムなど

  • クラウドコンピューティング製品:離散的な製品/サービス(FaaS など)の提供から、カスタム開発環境とワークフローの提供へ転換

  • ソースコード管理プラットフォーム:想像してみてください、GitHub/GitLab 即開発環境

  • 研究開発ワークベンチ:クラウドコンピューティング時代の全クラウド研究開発モードにおいて、 要件 - 開発 - テスト - 運用の完全なリンク

六.未来の研究開発モード(おそらく)はどのようなものか?

クラウド IDE を中心とした効率的な研究開発モードは、おそらくこのようになるでしょう:

  • 統一された開発環境:コンテナ技術を活用し、開発環境もプロジェクトの一部として、ソースコードと同じように管理できるように(インフラストラクチャ即コード、Infrastructure as Code)。コードスタイル制約もよりよく実施できる

  • 専用 IDE:オープンソース IDE をカスタマイズし、製品/ビジネスにより密着した専用 IDE を提供

  • 完全なエンジニアリングリンク:編集 - ビルド - 実行 - デバッグ - テスト - 運用

  • 非常に速いビルド速度:[クラウドコンピューティングの弾力的配分能力](/articles/バークレー研究員たちの眼中的 cloud-computing/#articleHeader4) 得益于、コンパイル時間を大幅に短縮できる

  • Code anywhere:開発環境もクラウドコンピューティングサービスと同じように簡単に入手でき、いつでもどこでも、コーディングしたければコーディング

  • リアルタイムコラボレーション:オンラインレビュー、手取り足取りの指導、作業スペースの共有、ワンクリックでコード共有

  • AI による開発支援:全ソースコードに基づくスマートヒント、さらにはコード生成、品質分析など

技術が techless に向かうと同時に、研究開発モードは tool-less 時代を迎えるかもしれません

参考資料

コメント

コメントはまだありません

コメントを書く