私は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 つのコンピュータハードウェア要件

推薦する

中国で昨日大規模なインターネット障害が発生、中国電信と中国聯通はバックボーンネットワークの障害を否定

中国は再び大規模な「インターネット障害」を経験している。 12日午前10時40分頃、多数の中国ネット...

中国オンライン広告年次インサイトレポート

パンデミック後の環境:全体的な環境は非常に不安定ですが、影響は軽減されており、広告主はマーケティング...

ブロックチェーンは金融サービスに新たな価値をもたらす

金融とテクノロジーの相互作用がより深くなるにつれ、クラウドコンピューティング、ビッグデータ、ブロック...

ECサイト構築時に注意すべきこと

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

Amazon Web Services の専門家の視点: 最新アプリケーションの証明可能なセキュリティ - 最高水準のクラウド セキュリティを構築する唯一の方法

セキュリティはすべての企業にとって最優先事項です。セキュリティの強化、包括的なコンプライアンス管理の...

ソウルもビリビリから「悪循環を断ち切る」方法を学びたい?

ソウルのソーシャルネットワーキングの本来の目的は、商業化の道に逆らう運命にある。ユーザー数の伸び悩み...

SEO は死んだのか? SEO の今後の方向性は?

「Forbes: SEO は終わり、ソーシャル リアルタイム コンテンツが人気」という記事があります...

テンセントクラウドは平頂山銀行と提携し、インターネット金融エコシステムを共同で構築

6月5日、テンセントクラウドと平頂山銀行は戦略的協力協定を締結した。両者は金融テクノロジーなど複数の...

Kubernetes と OpenEBS における永続ボリュームと永続ボリュームクレームの理解

[[438582]] [51CTO.com クイック翻訳]概要: Kubernetes のボリューム...

スピンサーバーダラスデータセンターのハイエンドサーバーの簡単な評価、簡単に参照できるようにテストデータを共有

spinserversからの最新ニュースによると、ダラスにかなりの数のキャビネットが追加され、その中...

SEO最適化で注意すべき要素の解釈

SEO 業界は、ウェブサイトのプロモーションにおいて最も人気のある技術業界の 1 つになりました。現...

SinaがソーシャルQ&Aサイト「Weishen」を立ち上げ、マイクロQ&Aが人気になる可能性

A5ウェブマスターネットワークは7月13日、新浪が昨日、ソーシャル質疑応答ウェブサイト「微神」を正式...

クラウド vs. エッジ: どちらのコンピューティングが勝利するでしょうか?

今日の企業が直面している最も差し迫った課題の 1 つは、最先端のテクノロジーと目標達成に役立つ実用的...

ハイパースケールクラウドコンピューティングプロバイダーはAIクラウドサービスへの投資に注力している

今日、AI クラウド サービスは、データ サイエンティストや開発者を惹きつけ、自社のプラットフォーム...

ウェブサイトの最適化方法は作業効率を向上させることができますか?

検索エンジンのアルゴリズムが変化し続けるにつれて、ウェブサイトのランキングを決定する要素はますます増...