SAEの究極のアプリケーション展開効率

はじめに: アプリケーションの作成、展開、および再起動のプロセスにおけるSAE効率の最適化。

ヘッドpicture.jpg

著者|ウェンジュンアリババクラウドネイティブチーム
この記事は「サーバーレステクノロジーオープンコース」から編集されています

サーバーレスプラットフォームとして、SAEはフルマネージドアプリケーションサービスを提供し、クラウドネイティブテクノロジーのメリットを最大限に活用し、コンテナをアプリケーションキャリアとして使用し、俊敏な展開、オーケストレーション、および柔軟性の機能を提供します。SAEは、基盤となるインフラストラクチャを保護します。ユーザーにとって、認識される最低レベルのリソースはアプリケーションインスタンス自体であり、アプリケーションの作成や展開などの操作は、ユーザーとの対話の主要なインターフェイスです。

次に、アプリケーションの作成、展開、再起動の過程で行った効率最適化作業を紹介します。

アプリケーションの作成

1つ目はアプリケーションの作成です。現在、ユーザーインターフェイスは、ミラーリングまたはwarおよびjarインストールパッケージを介してアプリケーションを展開できます。最後に、プラットフォーム側で、アプリケーションは配布用のコンテナイメージにパッケージ化されます。次に、プラットフォームは、コンピューティング、ストレージ、ネットワーク、およびその他のIAASリソースに適用され、作成を開始します。コンテナ実行環境とアプリケーション例。

111.png

このプロセスには、スケジューリング、クラウドリソースの作成とマウント、イメージプル、コンテナ環境の作成、およびアプリケーションプロセスの作成に関連するステップがあります。アプリケーション作成の効率は、これらのプロセスと密接に関連しています。

これらのプロセスのいくつかを並列化して、作成全体の時間のかかる時間を削減できるかどうかを自然に考えることができますか?時間のかかる各プロセスの分析を通じて、いくつかのボトルネックが見つかり、いくつかの実行ステップは分離されて独立しています。たとえば、クラウドエラスティックネットワークカードの作成とマウント、およびアプリケーションミラーリングは独立したプロセスです。これに基づいて、独立したプロセスを並列化し、リンクの作成に影響を与えることなく、アプリケーションの作成にかかる時間を短縮します。

アプリケーションの展開

アプリケーションの展開、つまりアプリケーションのアップグレード。従来のアプリケーション展開プロセスは、次のステップに分割できることを私たちは知っています。

  1. まず、新しいバージョンのインスタンスを作成します。
  2. 次に、インスタンスが開始してビジネスプロセスの準備ができるまで待ち、トラフィックに接続します。つまり、対応するSLBバックエンドを作成します。
  3. 最後に、古いバージョンのインスタンスがSLBバックエンドから削除され、破棄されます。

バッチリリースのシナリオでは、ローリングアップグレードのためにインスタンスの次のバッチをサイクルし続けます。このプロセス中に、アプリケーションインスタンスが再構築され、インスタンスIPもフロートすることがわかります。

前述のように、アプリケーションインスタンスを作成するプロセスには、スケジューリング、クラウドリソースの作成とマウント、イメージプル、コンテナ環境の作成、およびアプリケーションプロセスプルが含まれます。アプリケーションの展開では、すべてのプロセスを実行する必要はありません。 、必要なのは、新しいイメージに基づいて新しいアプリケーション実行環境とプロセスを作成することだけだからです。

そのため、インサイチュ展開の機能実装しました。ローリングアップグレードプロセスでは、アップグレードする元のアプリケーションインスタンスとそれに接続されたクラウドネットワークおよびクラウドストレージリソースが保持され、インスタンスの実行環境のみが更新され、スケジュールやクラウドリソースの作成などは行われません。処理する。このようにして、元の展開プロセスは次のように簡略化されます。

ストリーム抽出、SLBバックエンドから実行中のインスタンスを削除->インプレースでインスタンスをアップグレード->トラフィックにアクセス

適切にアップグレードした後も、アプリケーションインスタンスは元のIPを保持します。テスト後、2インスタンスアプリケーションの場合、展開効率は4倍に向上し、展開時間はほぼ1分から10秒に短縮されます。

222.png

アプリケーションの再起動

最後に、これから起動するインプレース再起動機能を簡単に紹介します。

一部のO&Mの場合、インスタンスの再起動は必要な操作です。アプリケーションの再起動に関しては、インスタンスを再構築する代わりに再起動のみを実行できるLinuxシステムに似ていることを願っています。具体的な方法は、コンテナ環境でコンテナエンジンAPIを介して開始-停止操作を実行できることです。インサイチュアップグレードと比較して、インプレース再起動はイメージの更新と実行環境の作成のプロセスを節約し、ECSと比較して、コンテナの再起動はより軽く、第2レベルに到達できます。

この機能はまもなくリリースされる予定ですので、ご期待ください。

 

 

元のリンク
この記事は、AlibabaCloudの元のコンテンツです。

おすすめ

転載: blog.csdn.net/yunqiinsight/article/details/109238598