私はAlibaba Cloudのクラウド開発プラットフォームに携わっています

私はAlibaba Cloudのクラウド開発プラットフォームに携わっています

[[387325]]

今年、大手クラウドベンダーは開発者側で徐々に「クラウド」開発へと動き始めました。最も注目すべき製品はクラウド IDE であり、それが生み出したトレンドがクラウド開発です。現段階では、Cloud IDE を大企業内で日常的な開発ツールとして広く推進することはできませんが、Cloud IDE クラウド開発は、特定のシナリオでは非常に魅力的です。

  1. 関数の作成(Tmall Genie 関数の開発)、デモの作成とプレビュー、コードレビュー、コードリポジトリの統合など、すぐに使用してそのままにしておきます。
  2. 高度にカスタマイズされた統合チームビジネス環境により、チームメンバーは複雑な環境を構成することなく作業を開始できます。
  3. クラウド上に構築されており、開発段階で多くのクラウド製品サービスを統合します。
  4. 迅速な反復のための統合CI/CD
  5. サーバーレスアーキテクチャアプリケーションのテスト(クラウドIDEもクラウド環境であり、リアルタイムで機能をデバッグできます)

国内外の多くのメーカーが利益を競い合っています。

  • マイクロソフトは避けることのできない最初の企業です。 Microsoft は開発ツールと IDE の分野で豊富な経験を持ち、Visual Studio、Vscode など多くのスター製品を生み出してきました。特に、Vscode は Cloud IDE の開発に直接影響を与えてきました。さらに、昨年マイクロソフトが買収したもう一つの主力製品であるGithubは、Cloud IDEとGithubオープンソースコミュニティを統合し、「1つのクラウド、複数の端末」というコード側のエコシステム貢献を実現するCodespaceを立ち上げました。 codespace は、サーバーレス アーキテクチャ、業界事例のサポート、DevOps 統合など、Alibaba Cloud のクラウド開発プラットフォームに類似した機能を多く提供していませんが、Microsoft は将来的に Azure コンポーネントと連携してリンクを完成させ、エコシステム全体のクローズド ループを実現する可能性が非常に高いです。
  • Google の Firebase は、BAAS に重点を置いた製品です。バックエンド サービス向けに、リアルタイム データベース、認証、クラウド機能、メッセージ プッシュ、分析、​​クラウド ストレージなどのサービスを提供します。サーバーなしで上記のサービスの多くを迅速に開発して使用できます。個人的なアプリケーションや起業家プロジェクトに特に適しています。ただし、国内ネットワークの特殊性により、一部のサービスは中国国内で正常に利用できず、ネットワーク RT も比較的大きくなります。 Firebase では Cloud IDE は提供されていませんが、ローカル開発、デバッグ、およびデプロイメントには「ローカル開発 + Firebase SDK + CLI」が推奨されています。

クラウド開発とエラスティックコンピューティングの分野では、Alibaba Cloud には Alibaba Cloud Development Platform、FC コンソールの CloudIDE、Serverless Devs など多くの製品があります。クラウド開発プラットフォームが弱肉強食の生態学的競争で生き残りたいのであれば、独自のコアバリューと、ISV の主要な要求に対応する手段が必要です。では、他の製品と比べて何が違うのでしょうか?

Alibaba Cloud開発プラットフォームとは

Alibaba Cloud Cloud Workbench (https://workbench.aliyun.com/) は、Alibaba Cloud が開発者や企業向けに提供するクラウドベースの R&D 作業プラットフォームです。これは、R&D チームがオンライン作業 (オンライン チーム、オンライン環境、オンライン コード、オンライン コラボレーション) とサーバーレス R&D モデルを実現するのに役立ち、R&D チームが業界のアーキテクチャ経験とアーキテクチャ サービスを効率的に共有および普及するのに役立ち、それによって R&D 効率が大幅に向上し、R&D コストが削減されます。

クラウド開発プラットフォーム アーキテクチャを使用するアプリケーションは、当然クラウド ネイティブかつサーバーレスであり、オンライン開発、デバッグ、コラボレーション、CI/CD を当然サポートします。クラウド開発プラットフォームは Alibaba Cloud の基盤インフラストラクチャ上に構築されているため、開発者は Alibaba Cloud が提供するインフラストラクチャの利点 (オーケストレーション、コード リポジトリ、DevOps ツールの監視とアラーム、複数のリモート コンピュータ ルームと VPC ネットワークの分離、複数のバージョンとグレースケール) を自然に享受できます。これらのインフラストラクチャは、ほとんどの中小企業が独自に構築するのは非常に困難であり、限界費用が高くなります。ただし、クラウド開発プラットフォームを通じてこれらのサービスを使用すると、ほとんどが無料または使用量に応じて有料になるため、当然ながら効率が向上し、コストが削減されます。クラウド開発プラットフォームは、異なるビジネス シナリオと異なるテクノロジ スタックを持つアプリケーション向けに 3 つの技術アーキテクチャを抽象化し、クラウド ベースと製品を組み合わせて技術的な保証を提供し、アーキテクチャに関する心配を解消します。

クラウドネイティブサーバーレスアーキテクチャ

クラウドネイティブとサーバーレスについては多くの説明があります。簡単に言えば、クラウド ネイティブとは、クラウド向けに生まれたソフトウェア、ハードウェア、アーキテクチャを指します。これには、クラウドや弾力性向けに設計された CPU や GPU だけでなく、クラウドや弾力性向けに設計されたミドルウェアやこれらのミドルウェアを使用するアプリケーションも含まれます。クラウド ネイティブは実践であるだけでなく、概念でもあります。開発者の開発環境もクラウドで生まれ、成長し、製品の設計、開発およびデバッグ環境、展開、テストおよびグレースケール、POC 検証、リソース消費などがすべてクラウドに基づいて行われるようにする必要があります。クラウド開発プラットフォームは、クラウドネイティブのコンセプトを実装し、製品のライフサイクル全体をクラウドでカバーすることを目指した製品です。

サーバーレスは文字通りサーバーレスを意味し、実際には運用とメンテナンスが不要なアーキテクチャとして理解できます。開発者は、基盤となるハードウェア (マシン、ネットワーク、トラフィック) の調達や運用、保守について心配する必要がなく、ビジネス ロジックの開発に集中できます。クラウドは、容量を弾力的に拡張し、ボリュームに応じて課金します (これは、ピーク トラフィックの差が大きいモバイル アプリケーションで特に顕著です)。

クラウド開発プラットフォームは、さまざまなタイプのビジネスを分析し、クラウド製品マトリックスに基づいてクラウドネイティブのサーバーレス アーキテクチャ (FAAS + BAAS) を生成し、ビジネス規模の継続的な拡大と急速な反復に対応します。

ステートレス アプリケーション向けに最も軽量な FC アーキテクチャを提供します。 APIGW + FC + NAS などの一般的な組み合わせにより、自動的な弾力的な拡張と縮小、複数バージョンの共存、グレースケールと A/B テスト、ファイルの永続性とローカル状態の保存を実現し、ほとんどの単純なビジネス シナリオのニーズを満たします。現在のオンライン アプリケーションのほとんどはこのアーキテクチャに基づいており、Web サービスとクラウド機能 (Tmall Genie) の形式で実行されます。 FC ベースのアーキテクチャは、基盤となる PAAS 部分を開発者から保護します。開発者は、Cloud IDE でコードを開発およびデバッグし、テストに合格した後、Cloud IDE 内の対応する環境にデプロイするだけで済みます。

ステートレス アプリケーションとは、サードパーティが提供するステートレス コンピューティング コンテナー内で実行されるアプリケーション (機能) です。さらに、アプリケーション (関数) はコールド スタートを経験する可能性があり、コンテナーを再利用せずに通常の外部サービスを提供できます。この時点で、アプリケーション (関数) はステートレスであるとみなすことができます。したがって、アプリケーションがローカル crontab、メモリ内データベース、ローカル ファイル ストレージなどに依存している場合、そのアプリケーションはステートフル アプリケーションであり、FC ベースのアーキテクチャを使用する前にいくつかの変更が必要になります。

サービス指向の SAE アーキテクチャは、ステートフルまたはマイクロサービス アプリケーション クラウド開発プラットフォーム向けに提供されており、ステートフル アプリケーションの起動の問題 (SLB および Docker イメージ経由) を解決できます。また、Spring Cloud、Dubbo、HSF などの主流のマイクロサービス開発フレームワークと互換性があり、サービス登録、検出、呼び出し、統計を完了できます。

サービス指向の ASK アーキテクチャは、より専門的なエンタープライズ チームがエンタープライズ レベルの Kubernetes コンテナ化アプリケーションのライフサイクル管理を実行できるように設計されていますが、ここでは詳しく説明しません。

クラウド開発プラットフォームは、一般的なビジネス シナリオの出現を通じて、いくつかの汎用クラウド サーバーレス アーキテクチャを抽象化し、多数のクラウド製品の難しい選択や、マッチングとアーキテクチャの困難な選択において、開発者や企業に何らかの支援やインスピレーションを提供しようとします。クラウド開発プラットフォームをベースに「成長する」製品がサーバーレス アーキテクチャであり、アーキテクトや運用保守担当者の生産性を最大限まで高めます。すべてのアーキテクチャは「クラウド開発プラットフォーム」によって完成され、開発者はエンドサイドとサーバーサイドの共通業務を担当します。すべての有料リソースは従量課金制で支払われます。

移動ステーション

ウェブサイトの移転とは、既存のプロジェクトをクラウド開発プラットフォームに移行し、サーバーレス アーキテクチャに直接アップグレードすることを意味します。理想的には、開発者がコードを変更することなくウェブサイトを直接アップグレードできますが、現実はしばしば残酷です。言語が異なれば特性や機能も異なるため、コスト効率のトレードオフに基づいて、共通言語のクラウド開発プラットフォームに対してさまざまなウェブサイト移行戦略が提供されます。

  • サーバーレス フレームワークに基づくゼロコード Web サイト移行: Nodejs (完全なフレームワーク サポート) と Python (同期と非同期の両方の WSGI サポート)
  • コンテナベースのローコード(ゼロコード)移行:Python、Java、PHP

サーバーレスフレームワーク

サーバーレス フレームワークは、クラウド開発プラットフォーム上の抽象化レイヤーであり、さまざまな言語フレームワークと言語ランタイム (非 FC ランタイム) の基盤となる API をスムーズにします。 FC が単純な関数しか実行できないという制限を取り除き、複雑なユーザーレベル コード (単純でない関数) をエージェントを介して FC ランタイムに接続し、ビジネス側コードの変更なしの移行を実現します。

サーバーレス フレームワークに基づくプロジェクト移行には、実際にはユーザーのビジネス プロセス モデルに対する特定の要件があります。

  • 1台のマシンが1つのビジネスプロセスに対応
  • 長時間の接続は不要
  • アプリケーションのステートレス性
  • レイヤー7転送のみサポート

Serverless フレームワークを使用して移行されたプロジェクトは、HTTP および HTTPS プロトコルのみをサポートし、現在 TCP または UDP サービスはサポートしていません。

コンテナベースのローコードサイト移行

コンテナはクラウド時代の重要なシンボルの一つです。クラウド開発プラットフォームは、コンテナの統一配信標準に基づいて、3 つのサーバーレス コンピューティング サービス (FC、SAE、ASK) のいずれかに既存のアプリケーションを展開することをサポートします。クラウド開発プラットフォームは、さまざまな言語に基づいた基本イメージを提供するため、既存のアプリケーションを最小限の変更でデプロイし、クラウドネイティブのサーバーレス アプリケーションにすることができます。

3 つの異なるアーキテクチャで実行するには、1 つのイメージのみが必要です。クラウド開発プラットフォームを使用して異なる言語でイメージを提供する場合、関連する事前構成ファイルを変更するだけで移行を実現できます。

リアルタイムデバッグ

サーバーレス アプリケーションをリアルタイムでデバッグできないという問題に対処するために、クラウド開発プラットフォームでは、開発状態でオンライン ランタイムをシミュレートできるクラウド IDE デバッグ環境の事前セットアップという別のソリューションを提供しています。これにより、開発者はアプリケーションを開発し、リアルタイムでプレビューし、ログをリアルタイムで確認できるようになります。

異なるテクノロジー スタックに異なるランタイム コンテナーを提供するには、抽象的なユニバーサル適応レイヤーに依存して、さまざまな種類の要求とパスの処理メカニズムを解決し、「コールド スタート」環境の初期化をシミュレートし、ドメイン名のセキュリティ保証とプライバシーおよびタイムアウト戦略をテストし、APIGW の互換性処理を返す必要があります。ランタイム コンテナのホット アップデートとプル戦略の柔軟なカスタマイズを実現するには、ストレージ層に依存する必要があります。これらはすべて、IDE のワークベンチ拡張機能を通じて意識することなく実行されるため、開発者はクラウド テストの利便性を体験し、より長いクラウド保持を目指すことができます。

クラウド ブレークポイント デバッグは、クラウド開発プラットフォームのもう 1 つの利点です。アタッチ機能を使用すると、Cloud IDE は任意のポートでサービスをデバッグすることができ、ランタイムのデバッグにも使用されます。デバッグランタイムに接続することで、ランタイム出力ログとコンテキストをリアルタイムで表示し、従来の開発と同じエクスペリエンスを得ることができます。

DevOps が非公開に

サーバーレスの利点は、運用とメンテナンスがほとんどまたはまったく必要ないことです。開発者は、クラウド開発プラットフォームを使用して、ビジネスの反復から開始し、複数の環境 (テスト、プレリリース) での検証 (ストレス、パフォーマンス、安定性テスト) 後にグレースケール (パーセンテージ) でオンラインになり、関連する監視指標と機能検証を観察した後、完全なオンライン展開を実行できます。これらはすべて Cloud IDE で実行できます。ビジネス トラフィックがピークになると、基盤となる FAAS はそれに応じてスケールアップまたはスケールダウンし、弾力性を実現します。その後、ユーザーからのフィードバックやビジネスの反復に基づいてさらなる開発が行われます。

軽量 DevOps にはいくつかの利点があります。

  • ビジネス反復サイクルの短縮: アプリケーションのライフサイクル全体をカバーするワークフローと自動化機能により、アプリケーションの継続的な配信機能とチーム間のコラボレーション効率が大幅に向上し、ビジネス配信サイクルが短縮されます。
  • より合理的な人材の配分
  • より安定したアプリケーション配信品質

軽量 DevOps には確かにメリットがありますが、企業にとっては、既存の CI/CD プロセスとどのように互換性を持たせるかという致命的な問題があります。企業が既存の運用・保守システムを直ちに放棄し、クラウド開発プラットフォームが提供する展開フローを採​​用することは不可能です。ほとんどの企業には、社内コードホスティング、チームコラボレーション、権限管理とリスク管理、企業独自の CI/CD などを含む独自の開発ワークフローがあります。このシステムをいかに低コストで元のシステムと互換性を持たせるかが、サーバーレス アプリケーションが「ローカライズされ、プライベート化」され、企業や開発者に受け入れられ、認知されるための最も重要なポイントです。

クラウド開発プラットフォームは、プラグインの形で会社の元のリリース プロセスに組み込まれたローカル デプロイメント スイートを提供し、開発者が意識することなく元の開発プロセスに影響を与えることなく、低い侵入性、高いスケーラビリティ、柔軟な互換性を備えた迅速なプロジェクトの反復を可能にします。ローカル デプロイメント キットを使用すると、企業は運用と保守の互換性の問題を心配することなく、サーバーレス アーキテクチャを大胆に試すことができます。同時に、クラウド開発プラットフォームの OpenAPI カスタム ツールに基づく DevOps ツールとインテリジェンスを実装し、北方向と南方向の両方のニーズを満たすこともできます。

クラウド開発プラットフォームでは、開発者の種類をまとめ、次の 3 つのレベルに分類しています。

  1. クラウド開発プラットフォームは、これまでの経験のない初心者開発者向けに、作成、実装、テスト、構築、展開までの統合された研究開発環境を提供し、クラウド開発プラットフォーム上でのサーバーレス アプリケーションのワンストップ実装をサポートします。
  2. R&D システムを備えた ISV の場合、R&D とテストはローカルで完了します。クラウド開発プラットフォームと ISV 間の分業インターフェースは、コード リポジトリ Codeup にあります。クラウド開発プラットフォームは、CICD 機能の完全なセットを提供します。開発者がコードを Codeup に送信すると、CICD 機能とリソース オーケストレーションがクラウド開発プラットフォームに引き渡されます。
  3. R&DシステムやCIシステムを持つISV向けに、インフラオーケストレーションやCD機能を提供します。
  4. 第 2 層および第 3 層では、クラウド開発プラットフォームは OpenAPI インターフェイスを提供することで ISV 統合をサポートし、ISV の既存の R&D システムとシームレスに統合できるようにします。

一般産業向けソリューション

クラウド開発プラットフォームは、業界のシナリオとソリューションを通じてテクノロジーとビジネスを結び付けます。さまざまな業界で最も成功した技術実践事例を抽象化して業界シナリオソリューションにカプセル化することで、開発者はクラウド開発プラットフォームで提示された業界シナリオソリューションに基づいてアプリケーションを作成でき、商用化の効率が大幅に加速され、初期の技術アーキテクチャ分野での研究と準備の総合的なコストが削減されます。

Tmall Genie アプリケーション、WeChat および Alipay ミニプログラム マーケティング、フロントエンドとバックエンドの分離アプリケーション、ブログ、マイクロサービスなど、一般的なシナリオ要件に抽象化して一般的なケースを分析します。クラウド開発プラットフォームは、2 つの方向から前処理を実行します。

Alibaba Cloud 製品マトリックスに基づいてクラウドネイティブのサーバーレス アーキテクチャを分析および生成します。

  1. 依存リソースをパッケージ化してアップロードする
  2. その後、タスクは ROS を通じて 1 つずつ生成、作成、インストールされ、業界アプリケーションが初期化されて、最終的に公式ソリューション マーケットにリリースされます。

ソリューションの自動インスタンス化を通じて、クラウド開発プラットフォームのコア機能を実現しました。

  • 業界がエコロジカルなフォーマットを開発し、経験の蓄積を標準化できるよう支援します。
  • 業界のアプリケーション開発エクスペリエンスを迅速に配布および複製するためのエコシステムの開発を業界が支援します。
  • 業界の開発エコシステムが高度なクラウドネイティブのサーバーレス アーキテクチャにシームレスにアップグレードできるように支援します。
  • Alibaba Cloud をユーザーのビジネスにシームレスに統合できるように支援します。

Nodejs ソリューションの例:

クラウドコラボレーション

実際に、オンライン化は新しいトレンドであることがわかりました。クラウド時代において、私たちはすべてのリソースをクラウドに移行する方法を模索しています。これには、もちろんコードのクラウドへの移行だけでなく、クラウド上でのコラボレーションと開発も含まれます。実際のチームをクラウドにマッピングし、クラウド上で開発を行うことで、地域、時間、デバイスに依存しないグローバルなコラボレーションを実現できます。さらに重要なのは、クラウド開発ではクラウド内の開発ライフサイクル全体のクローズドループリンクを実現できるため、開発側でクラウド製品を統合するのがより便利になることです。クラウド開発は、従来のローカル開発を放棄することを意味するものではありません。両者は互いに補完し合うことができます。ローカル + クラウド開発の連携強化により、ローカルの柔軟でカスタマイズされた開発環境で迅速に反復できるだけでなく、クラウドでリアルタイムにデバッグ、展開、共同作成を行うことができ、軽量な展開と操作のメリットも得られます。

クラウド開発プラットフォームは、チームメンバーにチーム所有者、チーム管理者、アプリケーション管理者、アプリケーション開発者の 4 つの役割を提供します。これらは、異なる管理、操作、開発権限に対応しています。現在、Alibaba Cloud Developer Growth Plan、一部の大学での共同教育、Alibaba Front-end Trainee Programなど、多くの活動シナリオではクラウドコラボレーション機能とそこから派生した「教育-開発-課題提出」モデルが活用されており、コラボレーションコストが大幅に削減されています。

やっと

従来のオフラインR&Dモデルからクラウドネイティブ時代への移行において、クラウドネイティブ統合R&Dの「ラストマイル」問題を解決することがクラウド開発プラットフォームの使命です。クラウド開発プラットフォームは、開発者の要求を満たすために、システムの安定性、クラウド製品アーキテクチャの柔軟性、コードの移植性などの分野での取り組みを継続的に深め、開発者が運用保守やアーキテクチャの煩雑な問題を考慮することなくコアビジネス目標に集中できるようにし、「クラウド+ターミナル」開発モデルを採用します。

<<:  クラウドコンピューティングの利点

>>:  エッジコンピューティングに必要な 6 つのコンピュータハードウェア要件

推薦する

addressnode-$7/4IP/1gメモリ/15gSSD/1.5Tトラフィック/ダラス

addressnode サーバーはダラスにあり、openvz をベースとし、純粋な SSD ハード ...

今週のニュースレビュー:アリババがUCを買収、WeChatが売春勧誘アカウント2000万件と一般アカウント3万件を停止

1. 見出しか「盗まれた」見出しか?今日頭条は集団著作権保護を受ける可能性がある一夜にして著作権紛争...

ビジネスは継続され、移行が完了しましたが、Linode はどのようにしてライブ移行を実現するのでしょうか?

開発者がクラウド コンピューティング プラットフォームにワークロードを展開する場合、多くの場合、これ...

企業のウェブサイトを構築する際は、どのような原則に従うべきでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています公式サイト...

大手アナリスト会社IDC:オラクルのクラウド事業は引き続き力強い成長を続けている

オラクルは本日、IDCがOracle Cloudの開発の勢いと成長率を評価したことを発表しました。 ...

ウェブサイトの改訂の合理的な方法に関する私の意見

多くのSEO担当者の目には、ウェブサイトの再設計は非常に神秘的なものです。彼らは皆、ウェブサイトの再...

マイクロソフト、Windows 10 向け Android および iOS クイック移植ツールを開発

今朝早くに開催された Build 2015 開発者会議で、Microsoft は、コードを変更するだ...

オンラインショッピングから電車の切符まで、Taobaoと12306はなぜこんなに悪いのでしょうか?

【編集部注】12306列車の乗車券購入システムは休日になると必ず麻痺し、大きな影響を及ぼします。国慶...

張青:キーワードリサーチの重要性を分析する5つのポイント

今日は、キーワード調査の重要性についてお話ししましょう。適切なキーワードを選択して最適化することによ...

SUSE: マルチモードITインフラの実現に貢献

[51CTO.com からのオリジナル記事] 企業のデジタル変革のトレンドは疑う余地がありません。オ...

Guokr.comの創設者、ジ・シサン:華やかさの裏に隠れた地味な技術者

Guokr.com の創設者、ジ・シサン氏ジ・シサン中国語名:季小花生年月日: 1977年出身地: ...

UC声明:百度が独占を利用して神馬検索を攻撃した疑い

新浪科技は4月30日夜、UC優士が今晩、百度によるUCブラウザと神馬検索の「誤操作」の可能性について...

2019年モバイルアプリケーショントレンドレポート!

世界のアプリ経済は急成長期にあります。App Annie によると、アプリストアでの消費者支出は 2...

クラウドコンピューティングデータセンターにおける仮想化技術の適用を分析する3つの側面

本稿では、クラウド コンピューティング データ センターのリソース使用率とユーザー QOS を向上さ...

tripodcloud: 信頼性の高い米国の cn2 gia vps、12% 割引、3 つのネットワークへの直接接続 (China Telecom CN2 GIA\China Unicom AS4837\China Mobile CMI)

Tripodcloud は本当に変わったビジネスです。2001 年の設立以来、宣伝やプロモーションを...