一.クラウド 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 時代を迎えるかもしれません
コメントはまだありません