「開発者のクラウド化」の新たな出発点となるクラウド開発環境
導入
Cloud Studio チームの日々の開発実践事例のブートストラップ共有
この記事では、Cloud Studio の制作および研究チームが Tencent Cloud の「クラウド開発環境 - CDE」をどのように使用して、日々の開発、デバッグ、ビルド、実行の主要な段階における開発者のエクスペリエンスを向上させるかを共有することに焦点を当てています。
Cloud Studio 製品は、ローカル開発の複雑さを簡素化し、多くの問題を解決することを目的とした、クラウド開発環境に基づく開発プラットフォームです。
著者は、最初にクラウドへの移行を決定したときにチームが遭遇した課題、クラウドへの移行プロセスにおける問題点から始め、その後、アーキテクチャの再構築によってもたらされるメリットとデメリット、およびスタートアップの改善に注力する方法について説明します。開発環境のパフォーマンスとコストの削減を検討し、進捗状況を共有します。
最後に、著者は現在および将来の「クラウド開発環境」に関する機会とアイデアをいくつか残しておきます。
01 初期の問題点
Cloud Studio のコア コードベースの状態
従来のビジネス プロジェクトと比較して、Cloud Studio のビジネス シナリオは非常に複雑であり、各モジュールには vscode カーネル、プラグイン、さまざまなファイル システム管理プログラム、動的コンテナ プロセスおよびその他の形式のアプリケーションなど、さまざまな形式があり、10 以上のアプリケーションが含まれています。プログラミング言語、数十のバックグラウンド サービス、およびさまざまなプログラムの構築および構成ツールをサポートします。
時間の経過とともに、断片化は Cloud Studio チームの開発者にとって最大の問題点になりました。具体的には、依存関係が複雑で、各モジュールのバージョンを統一するのが難しく、複数のツールを断片的に使用するとコストが高くつき、コラボレーションやコード共有が困難です。
モノレポへ移動
これらの問題を解決するために、私たちはコードベースの移行戦略を策定し、すべてのコードベースを統合コードウェアハウスに徐々に移行し、トランクベースの開発モデルを確立しました。
モノリポジトリ モデルには次の利点があります。
- 依存関係管理の改善
- コンポーネントとモジュールの一貫したバージョン管理
- 一元的な統合管理プラットフォーム(CODING CI、Bazelなどで構成)
- より便利なコラボレーション、ドキュメント共有、統合ディレクトリ管理など。
モノレポチャレンジ
モノリポジトリに切り替えた後、別の問題が見つかりました。モノリポジトリは、安定した統合された開発プロセスのための強固な基盤を築きましたが、DevOps の完全な開発プロセス (コード編集、送信、ビルド、実行、テスト) を完了することが不可能になってしまいました。図 1 に示すように、ラップトップを毎日使用することは困難になります。
- ビルドが大きくなり、時間がかかる
- 頻繁に変更される数ギガバイトのアーティファクトをラップトップにダウンロードするか、ローカルに構築する必要がある
- オフィス環境の外で迅速に開発するのは難しい場合があります。新しいプロジェクトのクローンを作成し、ローカル開発環境を最初から構成するには、数時間、場合によっては 1 日かかる場合があります。
これらすべてに加えて、一貫したツール セットを維持し、開発をラップトップ上でローカルに維持することが、私たちの注意と解決策を必要とする問題でした。
図 1 ワークスペースの解剖図
02 Cloud Studio を使用してリモート開発とブートストラップを行う
私たちが行っているのはクラウド開発プラットフォームであり、非常に多くの利点 (スケーラビリティ、クラウド リソースの享受、分離性、簡単なアクセスなど) について述べてきたので、開発のためにクラウド上で独自の大規模な倉庫を実行できるか、と自問しました。 ? この環境では、Cloud Studio 製品の機能を日々の開発に使用して、製品エクスペリエンスを継続的にフィードバックしていますが、エクスペリエンスが使いにくい場合は、問題を解決しようとしていることに気づきます。そこで私たちはブートストラップの道を選びました。
Tencent Cloud-クラウド開発環境とは何ですか?
開発者に、より速く、より簡単で、より安全な開発エクスペリエンスを提供するソリューションを探していたため、代替案としてリモート開発に注目し始めました。Tencent Cloud の高速マシン上にクラウド開発環境を構築し、数秒で構築し、すべてのコード ライブラリとツールを安全で制御された環境に維持するというアイデア。
これは、Cloud Studio 開発プラットフォームに基づいて CDE クラウド開発環境を構築するという、クラウド開発環境の本来の目的です。
クラウドスタジオとは何ですか?
Cloud Studio は、開発者に常時接続のクラウド ワークステーションを提供するブラウザベースの統合開発環境 (IDE) です。ユーザーは利用時にCloud Studioをインストールする必要がなく、ブラウザを開くだけでいつでもどこでも利用できる。クラウド開発のエクスペリエンスはローカル開発とほぼ同じで、開始の敷居が低く、非常にオープンであり、サードパーティのプラットフォームは当社が提供する SDK を通じて Cloud Studio のクラウド開発機能を簡単に統合できます。
>>メリット
ChatGPT が普及した後、エンタープライズ レベルのクラウド開発環境はどのように未来を描くのでしょうか?
3 月に Tencent Cloud クラウド開発環境ホワイト ペーパーをリリースした後、Cloud Studio の実稼働リサーチ コードと日常の開発を Tencent Cloud CDE に移行しました。ホワイトペーパーでは、リモート開発環境の主な利点として、DevOps、コンテナ化、CDE のゼロ設定しきい値のコードベースの定義、およびセキュリティを定義しています。最新の安定バージョンのカーネルと隔離された環境で各開発者のコードを実行することで、セキュリティを大幅に向上させています。たとえば、脆弱なアプリケーション コードを業務時間外に処理できるように自動スクリプトをカスタマイズしました。パッチを適用して更新します。リモート開発環境のさまざまな側面を監視するのは非常に簡単で、穴を掘ったり、壁を回避したりするなど、悪意のある動作をいつでも検出して特定できます。クラウド開発環境 (Kubernetes クラスターの背後) で実行されている Kubernetes ポッドにはコンピューターのバッテリーやリソースの制約がないため、営業時間外にディスクをスキャンして悪意のあるアーティファクトやアクティビティを検出するのは簡単ではありませんが、その価値は非常に大きくなります。
>>まずはパフォーマンス
強力な Tencent クラウド リソースを活用することで、より高速な Git、ビルド、IDE エクスペリエンス - 図 2 に示すように、環境ごとに最大 32 コアと 128 GB RAM まで弾力的に増加し、多くの追加機能が追加されます。
-
クラウド IDE の起動: よく使用される開発イメージを予熱します。Miaji はクラウド IDE を起動し、クラウド開発環境 (CDE) のコード定義に従って、開発用によく使用される言語サーバー、プラグインなどをインストールおよび構成します。最高の体験ができる。同時にカーネルを常に最新の状態に保ちます。
>>継続的に調整された IDE 起動リンク。テストに合格すると、次の図に示すように平均 2 ~ 3 秒で開くことができます。
図 2: 階層化されたアーキテクチャ
- イントラネット ダウンロードの依存関係の構築: 国内の中央倉庫をセットアップして、最も近くて最速のネットワーク ダウンロード場所を見つけます。チームの内部開発のために、ネットワーク ソリューションを最適化し、製品上でチームの依存関係ライブラリのキャッシュ機能をセットアップして、2 番目の目標を達成しました。追加の再ダウンロードを必要とせずにレベルマウントできます。
- 以下により Git のパフォーマンスが向上しました。
>>ラップトップのファイルシステムと比較してパフォーマンスが優れたLinuxファイルシステムを採用
>>Gitネットワークプロキシ、イントラネットアクセス高速化
>>Git 構成を最適化する
-
クラウド開発のパフォーマンスは、開発環境での必要なプラグインのプリロード、イメージ起動の予熱、依存ライブラリの予熱などの方法によって向上しており、次の機能も提供します。
>>より多くのコンピューティング リソースを提供し、コンパイル プロセス中に柔軟に仕様を増やし、未使用時の高仕様の占有を削減します。
-
さらに、リモート開発環境では以下も提供されます。
>>ユーザーごとに複数のクラウド開発環境
>>ラップトップ上で実行されている他のプロセスから独立して分離されています。開発は本当に並行して行うことができます。
>>環境コーディングとメンテナンス
Cloud Studio は、workspace.yaml のビジュアル定義構成をサポートしており ( Cloud Studio の上級プレーヤー: 強力な YAML テンプレート)、構成を「カスタム テンプレート」として保存します。これらのテンプレートは、チーム メンバーのモノリポジトリ ウェアハウスのクラウド開発に優れたサポートを提供します。の:
- 構成が簡単 - ビジュアルな UI インターフェイス構成により、コードを使わずにカスタマイズされた新しい環境構成を構成できます
- 任意のローカル IDE をサポート - デフォルトで起動するように事前設定された IDE タイプ
- 数分で一貫した開発環境にアクセスできます
- 各モノリポジトリに必要なプリインストール環境のツール、依存関係構成、プラグイン、およびテスト ツール
- リポジトリを事前にクローンしてストレージをウォームアップし、使用量を増やしてより速く起動します。
>>セキュリティ
-
コード ファイルが盗まれることを心配する必要はありません。Cloud Studio によって提供される永続ワークスペースは特別に暗号化されます (詳細な記事については、「Cloud Studio クラウド開発によりエンタープライズ ソース コードのセキュリティが確保される」を参照してください)。
>>管理された開発環境 - 安全で信頼できるツール プラグインのみをインストールし、認定されていないプラグインの手動インストールを禁止します。
>>安全な電子透かし - コードの作成には影響しませんが、開発環境外にコピーする準備ができた場合は、コードが持ち去られるのを防ぐためにコンテンツが暗号化されます。
>>コピー&ペーストおよびダウンロード機能を無効にしますが、現在のワークスペースでは引き続き有効です。
-
セキュリティは必要に応じてスイッチでオンまたはオフにできます。
-
環境を最新の状態に保ちます - 自動更新機能をオンにすると、夜間に最新のプラグインが自動的に更新され、セキュリティ アップグレードが実行され、環境にセキュリティ問題がないかスキャンされます。
>> より安全なツール チェーン - 事前定義されたセキュリティ環境、制御された安全なセキュリティ ツール チェーン
>>より安全なソフトウェア サプライ チェーン
>>シームレスな構成変更----基盤となるベースイメージの切り替え、バージョンの切り替えなどをサポートします。現在の開発ステータスを失うことなく、ワンクリックのホットスタートで新しい環境を楽しむことができます。
>>チームレベルのプラグインマーケット、最新のプラグインで自動更新
>>画像を公開する前にセキュリティスキャンを実行する機能
Cloud Studio が提供するワークスペースは永続的なため、エンジニアは個人設定、ファイル、コードの変更が失われることを心配する必要はありません。これにより、エンジニアはさまざまなデバイスで作業を続けることができ、複数のエンジニアが単一の環境で共同作業できるようになります。
Cloud Studio ローカライズされたクラウド開発プラットフォーム
>>主流の開発言語環境を提供
当社は、中国の開発習慣により適応できる中国の開発者向けの開発プラットフォームを作成しています。また、必要なすべての基本イメージ、プリロードされたデフォルト設定、よく使用されるプリセットのプラグインを含む、数十の基本的な開発環境用の組み込みテンプレート ライブラリも備えています。 ins と開発構成。図 3 に示すように、現在、次の開発環境言語がサポートされています。
- C/C++
- HTML
- C#
- Java および Spring フレームワーク
- js と Nodejs 周りのフレームワーク
- 行く
- Python と Flet フレームワーク
- FlutterとAndroid開発
- Vue React Angular およびその他のフロントエンド フレームワーク
図 3: すぐに使える構成
>>Webベースの開発スペースコンソール
Cloud Studio は、ログイン ユーザーがワークスペースのステータス、リソース消費を管理し、パーソナライズされた専用テンプレート、ロゴ、チーム管理、チーム リソースのステータスを作成するための専用コンソールを提供し、単純な個人開発から複雑なエンタープライズ レベルのプロジェクトまでのニーズを満たします。図 4 に示します。
図 4: Cloud Studio コンソール
03 Cloud Studio開発環境アーキテクチャ
図 5: Cloud Studio コンソール
図 5 に示すように、Cloud Studio ではすべての個人環境がコンテナ環境に配置されるため、開発者は公式に提供されるさまざまなバージョンを使用でき、Dockerfile を通じて独自の環境を簡単にカスタマイズすることもできます。また、Cloud Studio を離れた場合でも、どこでも使用できます。Cloud Studio は、コンテナに加えて、ユーザーのエディター インターフェイス、Docker、kubectl、その他の一般的な開発ツールを含む追加のすぐに使用できるソフトウェア パッケージをユーザーに提供します。
図 6 に示すように、開発オペレーティング システムとして Ubuntu を提供しており、世界で最も普及している Linux ディストリビューションとして、開発者とユーザーの使用習慣に最も適合しています。Debian 上に構築されており、Debian エコシステム内のほとんどのツール チェーンを自然に使用できるため、既存の実稼働環境インフラストラクチャのほとんどを再利用できます。
図 6 Cloud Studio のイメージ階層
ローカル コンピューターからクラウドに移行すると、クラウドの豊富なコンピューティング リソース、大規模なコンピューティング コア、高性能の大容量 GB RAM マシンを大幅に最適化して楽しむことができます。最も重要なことは、Tencent Cloud TKE、EKS、および高速で安定したクラスター機能に基づいて必要な IaaS 機能を提供する kubernetes を使用することに決めたことです。
- 強力なハードウェアでコンテナをホストする機能
- コンテナを接続して並列実行をサポート
- 開発中の再起動間のファイルの保存に使用され、NFS 永続ボリュームに永続化されます。
Kubernetes の標準化された基盤コンテナ
カスタム リソース | Kubernetes CRD を使用してワークスペース リソースを完全に記述し、ユーザーが Cloud Studio プラットフォームから分離されている場合でも、kubectl を介して直接 Cloud Studio のワークスペース ポッドを作成、スケジュール、アクセスできるようにします。
CRD では、Cloud Studio 自体で使用されるグローバル NFS 永続性だけでなく、データの任意の外部永続性をサポートするために Persistent VolumeClaim 機能を拡張しました。将来的には、 VolumeSnapshotContents の変更への対応をサポートし、それによって未使用時のストレージ コストを削減する予定です。
図 7: Cloud Studio CRD
04 チャレンジ
エンジニアにとって完璧な環境を構築するのは簡単なことではありません。その過程でいくつかの課題に直面しました。パフォーマンスとコスト効率のバランス、自動アップグレードの提供、中断のない作業の確保、誰にとっても機能する IDE 設定の事前構成などは、私たちが克服しなければならないハードルの一部でした。
IDEコアの選択
エンジニアは毎日 IDE を使用するため、優れた IDE エクスペリエンスがなければリモート環境を成功させることはできません。クラウド開発環境では、さまざまな IDE カーネル オプションが提供されています。
- Cloud Studio Web IDE コア
- VS コードのリモート SSH
- JetBrtain リモート SSH JetBrains ゲートウェイ - JetBrains IDE のリモート開発
>>リモートSSH接続方法
図 8 に示すように、Pod によって開始されたクラウド開発環境は、お気に入りのテーマや使い慣れたショートカット キーを保持したまま、お気に入りのローカル IDE を使用して接続できます。クラウド開発環境を最大限に活用しましょう。
図 8: SSH ツールを介してクラウド開発環境にアクセスする
SSH 経由でクラウド IDE ワークスペースに接続する | Cloud Studio
複数の IDE オプションを提供することに加えて、次のような実践的なエクスペリエンスを微調整することにも重点を置いています。
- プリロードインデックス
- 事前構成された設定
- プリインストールされたツール、拡張機能、カスタム アドオン
Cloud Studio は、柔軟なコンピューティング能力と永続ストレージに基づいた迅速な開発のためのクラウド開発エクスペリエンスをユーザーに提供しますが、ローカルの主流 IDE を廃止してクラウド開発に切り替えることは、初期の頃からの最大の課題の 1 つでした。特に、初期の人気のある Web ベースの IDE の遅延の問題とその後の安定性の問題は、私たちに多くの問題を引き起こしました。
その後、Web IDE とローカル IDE は共存すべきであることがわかり、クラウド開発環境のコンセプトの構築と推進に注力し、エンタープライズ R&D のコスト削減と効率化の要求、DevOps R&D の一貫性を支援する必要があることがわかりました。
環境を最新の状態に保つ
エンジニアは時間を大切にするため、手動メンテナンスを必要としない環境を提供することが重要です。そのため、営業時間外に最新のツールとセキュリティ更新プログラムを使用して環境を自動的にアップグレードします。
あらゆるニーズを満たすために、エンジニアは次の 4 つのリリース ケイデンス チャネルから 1 つを選択できます。
- 安定版 - デフォルトのもの
- rc - 次の安定バージョンの候補バージョン
- dev – 最新の成功したビルドへの夜間更新
- none - 自動更新なし
エンジニアが最も安定した環境と最先端の機能を望んでいる場合でも、まったくアップグレードを必要としない場合でも、私たちはそれをカバーします。
その後、新しいバージョンの段階的なロールアウトをサポートするために自動更新を改善しました。この機能は、バグが自動テストおよびリリース候補の内部テスト プロセスを通過した場合に爆発範囲を縮小するために追加されました。
費用対効果
多くの顧客から、構築および購入リソースがあることが判明することは珍しいことではありません。企業、Tencent Cloud Serverless、および Cloud Studio に基づく製品の自社開発と協力する過程で、当社は Cloud Studio のコストを継続的に追跡および監視し、改善し、Cloud Studio の価格性能比が Cloud Studio よりも優れていることを確認します。既製の代替品。
リソース使用率を改善し、コスト管理を改善するために、自社で構築した K8s クラスターを Tencent Cloud Serverless Container Service (旧 Elastic Container Service EKS) に移行しました。私たちの目的は、リソースをクラウドに移動し、自然なリソースを最大限に活用することです。クラウドのリソース、効率性、運用保守コスト。
クラウドへの移行を実現するために、多くのアーキテクチャの再設計を行いました。まず、ワークスペースが依存するすべての特殊な機能を再設計しました。
-
OCI フック機能の依存関係の削除: 以前のワークスペース リソースの永続性では、CRI 標準の OCI フック機能を使用して、ユーザー永続性レイヤーの保存とロードを実装しました。具体的には、コンテナーの起動プロセス中に、イメージの上位レイヤーがユーザーのために用意された ext4 仮想ディスクにはデータが保持されます。クラウドでは、基盤となるランタイムが OCI フックと互換性があるかどうか完全に予測できないため、当然そのような機能を活用することはできません。このため、ユーザー コンテナーを再設計し、2 層アーキテクチャを採用しました。標準コンテナを使用して標準環境を提供し、次にこの環境で podman コンテナを実行し、内部イメージ検査を通じてレイヤー情報を取得し、ユーザー永続レイヤーを podman が実行するための最終 rootfs にアセンブルします。
-
DaemonSet 機能への依存を排除する: Cloud Studio チームはコンテナの起動パフォーマンスを非常に重視しており、Ops の観点からの k8s は当然コンテナ イメージのダウンロード速度の問題には特別な注意を払っていません。ユーザーが要求するコンテナの読み込み速度を実現するために、従来はノードごとにDaemonSetを使用し、全ユーザーが必要とする基本イメージを予熱することでユーザーイメージの読み込み速度を確保していましたが、クラウドの概念上、当然ながらDaemonSetの特性はクラウドと相反してしまいます。この問題に対処するために、ユーザー コンテナ イメージの予熱ロジックを完全に再設計し、オンデマンドで k8s にリソース要件を提供することに加えて、キャッシュ層も導入しました。これは、事前に k8s からポッドを申請することを意味します。以前との違いは、ノードを申請するとノードのリソースは固定されますが、ポッドのバッチを申請する場合は異なります。ビジネス ニーズに基づいて、一定量のリソースの過剰販売を許容できます。そのため、申請するリソースのリクエストは非常に少なく、同時に、limit を使用してコンテナーを制限します。リソース要件のバランスを可能な限り保つために、最大リソースが保証されます。最後に、k8s スケジューリングに基づいて再スケジュール戦略が設計され、各キャッシュ ポッドがスコアリングされ、各ユーザーに対して最もパフォーマンスの高いポッドが選択されます。
これらの大きな論理変更に加えて、トラフィックのインポート戦略、リアルタイムの請求情報収集など、他にも多くの最適化ポイントがあり、最終的にクラウド ネイティブ設計に真に適合し、要件を満たすことができるクラウド ネイティブ設計を形成しました。優れたリソース使用率。ワークスペース設計の変更点を次の図に示します。
図 9: リソース使用率 - 各ポッドには必要なものがすべて揃っています
当社は競合他社よりも価値のある完全な永続化機能を提供します。NFS の導入以来、コンピューティング リソースとストレージ リソースを効率的に使用する必要があったため、いくつかの改善を実装しました。
- 非アクティブな環境をシャットダウンする: コンピューティング リソースを節約するために、自動ジョブは環境が最近使用されたかどうかを定期的にチェックし、非アクティブな環境が検出された場合はそのコンテナを削除します。
- VM の再バランス: 複数の環境が 1 つの大きな VM に配置され、VM の料金を支払うため、1 つの VM を完全に活用することのみが意味を持ちます。したがって、2 つの VM が容量の半分しか使用していない場合は、負荷を 1 台のマシンに移し、もう 1 台をシャットダウンします。
- 環境のスナップショット ディスクをシャットダウンします。Cloud Studio を実行するには、コンテナとディスクが必要です。コンテナーをシャットダウンすると、ディスクは使用されなくなるため、環境が再起動するまでディスクを低コストのストレージ オプションに変換します。
これまでコストの管理に全力を尽くし、パフォーマンスと使用量の最適化に努めてきましたが、以前の開発環境と比較すると、改善効果は非常に大きくなっています。
製品監視指標
図 10 に示すように、Cloud Studio は TKE クラスターと標準の K8S 上で実行され、フルリンク パフォーマンス インジケーターを定義します。当社は、さまざまなキャッシュ ソリューションを通じてパフォーマンスの限界を達成し、それを超えてきました。
図10:K8S(TKE)に基づくクラウド開発環境の性能指標の定義
最適化する前は、Cloud Studio のコールド スタートに約 19 秒かかりました。私たちはさまざまな典型的なシナリオを分析し、最終的に主要なブロック ポイントの時間のかかる状況をプロットしました。
図 11: チョーキングポイント
同時に、重大な障害項目である検査とノード内のコンテナーの数の関係を分析しました。
図 12: 分析
継続的な最適化後:
図 13: 最適化後
コールドスタート時間は 5 ~ 7 秒に短縮されます。2 回目の起動時間は 5 秒未満に短縮されます。
私たちの進歩
- 起動性能の最適化は継続しており、現在、予熱の最適化により、内部的には安定したコールドスタートとセカンダリスタート時間約4秒を実現しており、今後オンライン環境へも順次立ち上げていく予定です。
- 常駐ホットスポット ワークスペースにより、アクティブなワークスペースの 2 回目の起動時間が 2 秒未満に短縮されます。
- 将来的には、一般的に使用されるさまざまなテンプレートをさらにウォームアップして、ほとんどのシナリオでユーザーが約 2 秒でワークスペースをコールドスタートできるようにする予定です。
- このプランでは、ワークスペースの開始時のエラー フィードバックが最適化され、ユーザーが問題を見つけて解決しやすくなります。
- IDE 起動の最適化により、ミリ秒レベルの IDE インターフェイスの読み込みが可能になります。
05 クラウドネイティブ開発・デバッグ+クラウド開発環境
クラウド ネイティブ デバッグは、クラウド統合開発環境でテストを左側にシフトすることを考えるもう 1 つの方法です。IDE 自体から始めて、クラウド ネイティブ サービスの開発とデバッグも IDE の一部として含まれているため、どの開発者でも IDE を使用できます。 IDE エディターをクリックすると、クラウド ネイティブ アプリケーションの完全なセットをデプロイし、現在のコードを簡単に使用して、現在懸念している 1 つ以上のサービスのサービス トラフィックをハイジャックしたり、デバッグのためにブレークポイント デバッガーを開いたり、リアルタイム ジョイントを実行したりできます。他のチームメンバーと一緒にデバッグします。
2021 年末に CODING チームは Nocalhost フレームワークを CNCF に提供し、その後、Cloud Studio チームは Nocalhost と Cloud IDE を組み合わせて、開発クラスタ下での共同開発デバッグとテスト移行を実現することに取り組んできました。クラスター内の専用の名前空間と Cloud Studio チームの直交機能を通じて、チームがクラウド ネイティブの開発フェーズを簡素化し、問題をより簡単に発見できるように努めています。図 14 に示すように、John と Peter は共同で開発クラスターの名前空間でフロントエンドとバックエンドをデバッグし、サービス ポッドを Cloud IDE に置き換えてデバッグして問題を発見しました。簡単に紹介するためにビデオを撮りました。
図 14: リソースのサービス化
06 クラウド開発、さらなる機会シナリオ
未来はここにあり、クラウド開発は抽象的ですが価値のあるインフラストラクチャです。AI が利用できるようになると、さらに無限の可能性が広がります。たとえば、AI + クラウド開発 = コード インタープリターまたは AI クラウド開発環境、またはより高度なシナリオです。
私たちは Cloud Studio IDE をクラウド開発環境の製品実装と見なしています。私たちの目標は、エンタープライズレベルのエンジニアにとってリモート開発を完全にシームレスにすることです。私たちは次の点を改善するために懸命に取り組んでいます。
>>第 2 レベルのコンテナの柔軟な割り当て
非同期状態の解消やウォームアップヒット率の向上など、遅い領域を監視・特定することで、開発領域の割り当てと起動を3秒未満に短縮したいと考えています。
>>一時的な開発コンテナ
この問題が解決され、最終的な起動レベルに到達したら、開発者が Cloud Studio をビルド統合として使用できるようになることを期待しています。一時的な Devpod については、次のようなユースケースが予想されます。
- Devpod は機能開発に特化しています
- シンプルかつ高速な障害 CI デバッグ
- すぐに使えるコードレビュー環境
- モバイルクラッシュの分析
>>リソースを節約するクラウド ネイティブ デバッグの詳細
クラウド ネイティブ メッシュ ソリューションによってもたらされるトラフィック ハイジャックとダイイングにより、クラウド ネイティブ インフラストラクチャおよびクラウド開発環境下での開発とデバッグが可能になり、新しいエンタープライズ レベルの製品を生み出すことができます。
>>ワークロードの無停止自動アップグレードとメンテナンス
現在、環境ではメンテナンス時間枠が営業時間外に設定されていますが、一部のエンジニアは営業時間外に作業したり、環境内でより長時間のワークロードを実行したりすることを希望する場合があります。したがって、アクティブな接続を監視し、メンテナンスの作業負荷を延期することで改善できます。
>>シームレスな IDE エクスペリエンスの向上
エンジニアはラップトップ上で IDE をローカルに使用しますが、リモート環境の実装はバックグラウンドで隠蔽される必要があります。IDE はバックグラウンドでリモート環境にサイレント接続し、十分なネットワークが利用可能であれば、大幅なコンピューティング能力のすべての利点を提供します。リモート環境に問題がある場合でも、問題はブロックされず、ローカルでシームレスに処理できます。働く。
>>特定のチーム向けの設定
私たちは、Teams を使用する際の初回セットアップの障壁を最小限に抑える方法を探しています。私たちが改善したい領域の 1 つは、チームが構成を (コード単位で) カスタマイズできるようにして、新しいチーム メンバーがワンクリックでニーズに合わせた一貫した開発環境を入手できるようにすることです。
>>ローカルコンピュータとクラウド開発環境間のシームレスなファイル転送
私たちは、計算負荷の高いタスクや長時間実行されるコンパイル ビルドなど、計算開発のシナリオを探索しようとしています。場合によっては、開発者はラップトップと Cloud Studio クラウド開発環境の間でファイルを移動する必要があります (またはその逆)。私たちの目標は、Cloud Studio CLI をユーザーのコンピュータに自動的にインストールされるローカル ドライブにして、ファイルをシームレスに移動できるようにすることです。
>>vGPU
私たちは、Tencent Cloud gpu-manager に基づいた vGPU ソリューションを構築しようとしています。これは、次の開発ニーズに役立つ可能性があります。
- AIモデルのトレーニング
- GUI クロスプラットフォーム クライアント開発
- ゲームクライアント開発