「NGW」フロントエンド技術分野:サーバレスSSRインサイダー

まず、背景ノート

まず、背景を説明します。

サーバレスのクラウド機能:クラウドは、そのクラウドコンピューティングプラットフォームの過程で生じる資源開発を計算する抽象計算開発者のためのビジネス・プロセスのランタイム環境を提供し、開発者は、基礎となる資源配分に焦点を当てる必要はありません、展開の拡大、コード実行プラットフォームが提供するすべての必要なサービスを提供しています。SSRのレンダリングサーバー:サーバー上のフロントエンドには、サーバー側のHTMLレンダリングを意味し、一般的な初期の技術のPHPのJSP、HTML、JS同型最近の傾向の進化を生成するためには、徐々にサービスレンダリングjsのコードの先端に走る発生しましたプログラムは、そのようなメインフレームを均質なレンダリングと同様に、Vueのが反応します。

場合はサーバレスの床への技術SSRのビジネスシナリオでは、次のような利点があります

  • クラウドサービスのリソース理論的には無制限の拡大は、フロントエンドは、マシンのパフォーマンスSSR上のトラフィックの影響を考慮する必要はありません。
  • 学生は、機械のSSRフロントエンド考慮する必要はありません運用・保守、アプリケーション、展開を

現在NOWライブIVWEB SSRチームは徐々に、ビジネス機能に移行するので、テンセントプラットフォーム上にある雲と呼ばれる調査会社からの導入コストとメンテナンスコストと応答を合理化します。

二、サーバレスの進化

A Jアバディーンは、フロントエンドの開発で、製品があまりにも長いため1日の黒と白のページのロードインターフェースは彼に言った、経験はアバディーンの優れたフロントエンド開発のために、彼は難しいことではありませんこれは、貧しい人々である、と彼は速く、ページの読み込みを行うための99種類があります彼はまっすぐまっすぐアーキテクチャへの半日のアクセスのうち、プロジェクトチームを活用するために飛んだような方法、あなたはまっすぐサービス彼脚本のうち、既存のネットワークに展開します:

  1. サービスの展開まっすぐいくつかのコアを適用し、適用するどのように多くの、マシンを適用するために必要な?
  2. トラフィックのこの種は、突然の要求がないどのように、マシンは拡張のための機構がありませんか?
  3. nginxの設定変更、まっすぐにそれがどのようにアクセス静的なページへのすべての詳細を明らかに失敗した場合にどのように?

トランスは、彼が上のテンセントの同僚の雲を見たサーバレスアーキテクチャの進化PPT ....

IaaSのからFAASへ

SCFのクラウド機能を導入する前に、デフで見てみましょう传统 IaaS 业务架构云函数 FaaS 业务架构

仮想マシンのビジネス・アーキテクチャに基づいて、

[ビジネスアーキテクチャは、仮想マシンに基づいています]

このようなクラウドアーキテクチャの機能:

クラウドベースのビジネス構造関数(FAAS)

[クラウド・ベースのビジネス・アーキテクチャの機能]

2 Jの比較は、クラウドベースのビジネスアーキテクチャの機能に関連する事業ベース層に集中する開発者は、もはや必要性を得て、開発者はビジネス・ロジックに集中することができ、ベース層がいる限り、私たちのように、プラットフォームの反復を維持する責任がありますクラウドサービス展開のまっすぐは、ビジネスの痛みポイントの運用・保守の展開まっすぐを解決することができます。

サーバレスアーキテクチャの下でのApp

FAASは雲の出現はサービスに容易になりますが、アドレスFAASしません作る「必要不可欠なサービス」の問題、いわゆる基本的な公共サービスは、オブジェクトストレージ、KVストレージ、このようなメッセージのプッシュこの問題の最終的などの基本的なサービスのような形をしていますこれは、市場のクラウドサービスので、例外なく、いわゆる「必要不可欠なサービス」とは、Aのサービスモデルの上方に設けられている、ここでは、クラウド・サービス・プロバイダーに落ちバース(バックエンドとしてサービス)。

サーバレス直訳は、このセクションでは、メンテナンスのためのプラットフォームを提供し、ここでは、サーバレスと呼ばれるサーバーを必要としないと言うことはありませんが、その開発者がサーバに集中する必要はありません、開発者はビジネスロジックの開発に注力する必要があります。

サーバレスアーキテクチャの下でのApp

[アプリケーションサーバレスアーキテクチャの下]

あなたは、公共サービスのサポートで「バースサービス」の形で、サービスロジックベアラ「機能」の形で実行されているアプリケーションサービスをサポートする基本的なリソースを必要はありません。

パブリック・クラウド・インフラストラクチャ上のサーバレスの進化

[パブリック・クラウド・インフラストラクチャ上のサーバレスの進化]

サービスまっすぐの性質を考えると、A Jのまっすぐは、アクセスを低減することがまっすぐかかり、彼はすぐに雲のフロントエンドに予備調査を開始しましたので、運用・保守トラブルの展開の必要性を排除し、Serveless SSRサービスを行う、ビジネスはサーバレスのために非常に適していると思います!

三、SCFクラウド開発機能

Jテンセントクラウドクラウド機能(サーバレスクラウド機能、SCF)機能の入念な調査は、クラウド私たちの細かい粒度「機能」に事業分割、および機能の実行環境の開発者が心配する必要はないというプラットフォームの責任を見つけることができます以下は、クラウドによって実行される機能のJ理解です。

クラウド機能実行処理

これらの「クラウド機能」の実行中のクラウドプラットフォームは、通常の状況下では、外部サービスに実際にある、すなわちHTTPを経由してアクセスイベントをクラウドの機能の実行をトリガするために、「HTTP要求に応答」のサーバレス機能の下に示すように、:

クラウド利用者の要求リンク機能

[クラウドユーザの要求リンク機能]

これ以上の機能の実行より:パラメータ、コンテキスト、戻り値、副作用示すように、。

4つの要素が実行する機能します

[フォー要素が実行する機能]
  1. 「パラメータ」:HTTPリクエストクラウド機能の参照要求ヘッダー、リクエストボディ
  2. 「コンテキスト」:IDが含まれ、環境変数の機能が要求された機能などを実行します
  3. 「副作用」:機能を実行するために、クラウドには、データベース、オブジェクトストレージ、データ監視などの外部サービスを呼び出すことができます
  4. "戻り値":である、などのHTTP応答{リターンコード:0、MSG: "成功"}

A Jはまた、特定のコンフィギュレーション後の機能に応じて、完全にこのURLにアクセスし、結果を取得するには、対応したクラウド機能の実行を引き起こす可能性、クラウドプラットフォームは、あなたの**「起動URL」**を与える、展開を曇らせることを学びました。

四、NGWサーバレス方式で均質な線形アウト

:ちょうどA Jはまっすぐ開発のサーバレスを進めるために、彼は突然の環境の元まっすぐに大きなアクセスサーバレス環境下では、環境の元まっすぐはこれです、ことがわかりました

  1. 「サービスは同じモードではありません」:当初の計画は、これに対処する方法を、聞くためにではなく、関数としてポートを実行するために、元のプログラムの必要性を意味し、TSW実行興亜アプリケーションはまっすぐを実施方法のまっすぐを使用していましたか?
  2. 「CIエンジニアリング」:どのようにクラウド機能がパッケージ化され、リリースエンジニアリングん、既存のCIプロセスへのチームへのアクセス?
  3. 「プログラムのデバッグ」:元のプログラムのデバッグは、ローカルで行うことができ、およびクラウド機能まっすぐがどのようにローカルのデバッグを行うには?
  4. 「リンクアクセス」:クラウドの放出機能した後、アクセスにどのように事業ドメインをURL、そしてURLを得るのだろうか?
  5. 「オールド・ビジネスへの移行」:古いビジネスは、クラウド機能にシームレスに移行行うことができないのですか?新しいスキームのまっすぐは、プログラムの古いまっすぐと互換性があります行うことができますか?

エンジニアリングパッケージ

サーバレスクラウドプラットフォーム機能のために取り外さフロントパック外のWebPACK、我々はパッケージに基づいて、元の製品に何らかのアクションを実行する必要があり、以下に示すように、コア「ジップ機能は、クラウドにアップロードすること」です。

示さクラウド機能パッケージ

[クラウドパッケージ化機能アイコン]

あなたはCIのプロセスにアクセスする必要がある場合は、デプロイCIプロセスに不可欠を提供することが必要であるため、ここでは、パッケージとアップロードのzipクラウド機能へのCLIツールの導入を必要とします。

均質な環境のサーバレス

A Jのアカウントに、元のビジネスプランTSWの使用のまっすぐ(撮影github.com/tencent/tswを)んが、サーバレスで、私たちはTSWの実装における機能がクラウドに移動することはできませんが、我々は、そのうちの成分を抽出する必要がありますTSW AJAX HTTP、モニタリング報告書、TSWロガーや他の一般的な構成要素として、理由は次のとおりです。

  1. 運用・保守の業務痛みのポイントを解決するために、クラウド古いビジネス機能まっすぐ、まっすぐにシームレスな移行を促進
  2. グレートTSWは、ほぼ20メガバイト圧縮した後、解凍アウトはるかに大きく、クラウド機能の性能を助長されていません

古いプログラムはまた、これらに依存しているため、また、だけでなく、このTSWグローバルようwindow.REQUESTプラグを達成するために、独自のオブジェクトを注入しました。

「ストリーミング」と「ブロックスタイル」

元のプログラムは、サービスを提供するために、興亜ローカルポートをリッスンする必要があり、機能ブロックの雲パラメータへのアクセスが終了し、興亜の不一致の参照ストリーミングので、どのような雲のパラメータの機能を扱うためにそこに必要があります。実際にA Jパラメータを動的IncomingMessage ServerResponse雲と機能が返される関数の戻り値に設定ServerResponseクラウドにおけるレンダリングの最終結果から得られた描画するため興亜アプリ線形通過できるHTTPに従って構成されています。

転送のためNGWゲートウェイ

アカウントにサービスの可用性およびリンクアクセスする前に、痛みを取るA J、アクセスNGW(ノードゲートウェイ)を決定します。

NGWリンクの下のサーバレスまっすぐ

[NGWリンクの下のサーバレスまっすぐ]

これは、NGWによって行うことができます。

  1. キャッチすべてのロジックを実現:クラウド機能がクラッシュすることがあり、このタイムマシンを静的ページへのアクセスに行きます
  2. 階調論理:線形プロセス階調テストの既存のネットワーク上では、部分的にNGWを通して配置することができます
  3. リンクログが戻っ:長い間、悪いチェック特定のリンク情報のフロントエンドを、何が今そこにあるNGW可能です

雲ローカルデバッグ機能

ステートレスクラウドモデル関数は、それは非常に簡単ローカルデバッグのために、我々は唯一の地元のコンストラクタに参加する必要があります文脈のまっすぐを直接デバッグすることができ、実際の実装におけるA Jは、リスニングポート興亜からローカルサービスを介して行われ関数の最後の実行結果、正面に戻りを通過ポートパラメータを構成するために、使用要求、コンテキスト、。

同型まっすぐプロセス

下記のステップに導く完全なA Jサーバレスまっすぐプログラムの終了時:

新しいプログラム同型まっすぐ三つのステップ

[新3ステップのプログラムの下で同形まっすぐ]

3つのコアステップがあります。

  1. 「初期化」:初期化機能クラウド環境は、クラウド・パラメータに機能を受け入れ、処理します
  2. 「興亜は」:興亜アプリケーションの形態で均質なビジネスロジックに反応します
  3. 「クリア」:リターンは興亜レスポンスストレートの結果を処理し、環境のクラウド機能をクリーンアップ

パフォーマンスのボトルネックや最適化クラウド機能

直ちに、圧力測定の圧力の上昇式崖ドロップのパケット発生を受けるだけでなく、いくつかの機能の実行が接触するように、雲の機能を非常に長い時間を要することが判明して、測定された圧力の完了J A新しいスキームまっすぐ後同僚は、それはコールドスタートである何、「コールドスタートの問題」を見ていることが判明しましたか?クラウドアーキテクチャは機能から見ることができ雲がすぐに実行されていない後、機能がトリガされ、それはコールドスタートを起動すると呼ばれている環境の初期化プロセスを、必要とする状況は、実行直後に要求を受信する機能ということがあります次の要求、再初期化機能、クラウド環境のないこの時間が、直接起動し、ホットこのタイトルを起動します。

クラウド圧力計測機能実行時間プロファイル

[クラウド測定圧力時間プロファイル機能が実行しました】

前と最適化後のパケット受信率(最適化後右へ)

[パケットが前後の速度の最適化(右リアの最適化)を受けます]

低圧の状況で問題をコールドスタートすることは明白ではありませんが、高い同時実行の場合には、余分なバックパック、ここでのSCFの同僚は、最適化した影響を及ぼします:コールドスタート、より多くのMinInstancesを減らし、インスタンスの最小数を増やしますカン朱瞬間同時実行。また、メモリの問題は、こちらの連絡先へのSCFの同僚は、基本的には問題の4xxされていない、最適化され、関連する最適化ノードのメモリモデルを実施していることが分かりました。

この間違った測定メモリ制限4xxの問題を引き起こす、より多くの圧力より大きな圧力

[メモリ制限4xxの問題を引き起こす、より大きな圧力この圧力測定誤差]

最適化のパフォーマンスへのメモリモデルの後

[最適化性能にメモリモデル後】

この時点で、A Jは最終的にプログラムの設計と開発の初期サーバレスまっすぐを完了し、徐々に事業の利用を促進します。

ステータスと次のステップ

現在、NGW +サーバレスSSRが手Q、ブラウザやライブ手-Qグループギフトやその他の項目近くNOWライブに適用されている、実際の事業開発、展開、および運用・保守は、80%以上減少しノードビジネスワークロード。


A J次の計画:

  1. 完全なクラウド管理機能バージョン
  2. WebPACKのではさらに、デバッグ経験アウト地元のストレートを最適化
  3. クラウド機能の性能をさらに最適化するために、同僚とテンセント雲
  4. パーフェクトは、さらに最初の画面の読み込み速度を向上させるためのレンダリングプログラムをストリーミングチャンクに反応します。
  5. パーフェクトノードクラウドサービス機能、フロントエンドプログラムを実行する計画BFF
  6. 直接リンクを改善するには、ログアウトし、サービス監視機能を強化するために戻りました

[コミュニティ]世間の注目IVWEB号は、生活の頂上につながる、週に最新の記事を入手します!

おすすめ

転載: juejin.im/post/5dce7140f265da0bf80b5246