クラウドネイティブシナリオでサーバーレスアプリケーションプログラミングモデルを体験する

クラウドネイティブシナリオでサーバーレスアプリケーションプログラミングモデルを体験する

背景

Alibaba Cloud Serverless Kubernetes (ASK) は、Alibaba Cloud が開始したサーバーレス Kubernetes コンテナ サービスです。基礎レイヤーは ECI (Elastic Container Instance) に基づいており、ECS ノードを購入せずに安全で分離されたコンテナ アプリケーションを直接作成できます。 ASK は Kubernetes の一貫性テストに合格しており、コミュニティ Kubernetes と完全に互換性のあるユーザー エクスペリエンスを提供します。

Knative は、Kubernetes をベースにしたオープンソースのサーバーレス アプリケーション オーケストレーション フレームワークです。その目標は、クラウドネイティブでクロスプラットフォームのサーバーレス アプリケーション オーケストレーション標準を開発することです。 Alibaba Cloud Knative は ASK をベースにしています。コミュニティ Knaitve と完全に互換性がある一方で、FC および ECI ワークロードの統合アプリケーション オーケストレーションも提供し、イベント駆動型および自動弾力性をサポートし、統合されたサーバーレス アプリケーション プログラミング モデルを提供します。

建築

次回は、弾幕サービスのデモを通して紹介します。デモには主に、ホームページ、イベント駆動、メッセージ処理の 3 つの部分が含まれています。

HomePage は主に箇条書きコメントの送受信に使用されます。イベント駆動型は、イベントを受信し、フィルタリングして転送するために使用されます。メッセージ処理。集中砲火メッセージを処理するために使用されます。 HomePage とメッセージ処理は、それぞれ Knative Serving を通じて FC と ECI にデプロイされ、イベント駆動は Knative Eventing を通じて ECI にデプロイされます。

弾幕サービスデモの主なプロセスを図に示します。ユーザーはフロントエンドを通じてホームページに集中メッセージを送信します。その後、HomePage は Kafka に大量のメッセージを送信します。イベント駆動型システムは、集中砲火メッセージを受信し、それをメッセージ処理にルーティングして処理します。弾幕処理が終わると、弾幕結果がテーブルストレージに送信されます。最後に、フロントエンドは弾幕の結果を取得し、ページに表示します。

次に、barrage サービスのデモの展開を開始します。操作には次のものが含まれます。

まずメッセージ処理をデプロイし、次にイベント駆動をデプロイし、次にホームページをデプロイし、デプロイが完了したら、箇条書き画面サービスにアクセスします。

ステップ1: メッセージ処理を展開する

このサービスは、イベント ドライバーによって送信された弾丸チャット要求を受信し、要求の数に基づいて自動的にスケールアップおよびスケールダウンし、弾丸チャット メッセージが処理された後に結果をテーブル ストレージに送信するために使用されます。デプロイ前に、まずワークロードがないことを確認し、デプロイ後の結果を観察できるようにします。

クラスターの質問を選択します。クラスター管理ページの左側のナビゲーション バーで、[ワークロード] > [ステートレス]を選択します。デフォルトの名前空間を選択し、現在ワークロードがないことを確認します。

次に、Knative を介して、ECI タイプのワークロードにエラスティック メッセージ処理をデプロイします。ここでは yaml 形式でデプロイします。 yaml の内容は次のとおりです。

  1. apiVersion:serving.knative.dev/v1kind:Servicemetadata:name:test-barrage-processspec:template:metadata:annotations:autoscaling.knative.dev/maxScale:"100"autoscaling.knative.dev/minScale:"0"k8s.aliyun.com/eci-image-snapshot-id:imc-uf636kjjx8xr4e75npexlabels:danmu.role:"manager"spec:containerConcurrency:2serviceAccountName:barrage-install-sacontainers:-args:-/managerenv:-name:OTS_ENDPOINTvalue:https://barrage.cn-hangzhou.tablestore.aliyuncs.com-name:TABLE_NAMEvalue:barrage-name:OTS_INSTANCENAMEvalue:barrage-name:OTS_KEYIDvalue:xxx-name: OTS_SECRET 値: xxx - 名前: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - 名前: ROLE 値: manager - 名前: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - 名前: TRACE_NAME 値: "process" - 名前: PARENT_SPAN 値: "barrage-sender" - 名前: SUB_SPAN 値: "process" - 名前: TRACING 値: "http://tracing-analysis-dc-sh.aliyuncs.com/adapt_g2it2kg78n@5cf06035aec2eb9_g2it2kg78n@53df7ad2afe8301/api/traces" イメージ: registry-vpc.cn-shanghai.aliyuncs.com/knative-sample/barrage-manager:forrester-yuanyi_4cd77c84-20210618215458 名前: ユーザーコンテナ ポート: - コンテナポート: 8000 名前: http1

主なパラメータの説明:

minScale と maxScale: サービスに設定されている Pod の最小数と最大数を示します。
containerConcurrency: 設定されたポッドの最大同時リクエスト数を示します
OTS_ENDPOINT: 設定されたテーブルストレージアクセスアドレスを示します
TRACING: 設定されたコールリンク アドレスを示します。次に、サービスをデプロイします。

クラスター管理ページの左側のナビゲーション バーで、 [アプリケーション] > [Knative]を選択します。
[サービス管理] タブの右上隅で、 [テンプレートを使用して作成] をクリックします。デフォルトの名前空間を選択し、上記の YAML コンテンツをテンプレートに貼り付けて、「作成」をクリックします。

ステップ2: イベント駆動型を展開する

イベント駆動型は、イベントを受信し、イベント ストリームをフィルター処理および転送するために使用されます。ここでは、Kafka イベント ソースをイベント ドライバーとして使用して、Kafka からの集中メッセージを受信し、集中メッセージをメッセージ処理にルーティングします。 yaml を通じてデプロイします。 yaml の内容は次のとおりです。

ステップ3: ホームページを展開する

このサービスは、フロントエンドの箇条書きメッセージを受信し、その箇条書きメッセージを Kafka に送信し、テーブル ストレージから箇条書きメッセージの結果を受信するために使用されます。 Knative 関数モードでデプロイすると、サービス、関数、カスタム ドメイン名が FC に自動的に作成されます。操作の前に、まず FC に弾幕サービス、機能、カスタムドメイン名がないことを確認します。

FC コンソールにログインし、上部のメニュー バーから [地域 (上海)] を選択します。

サービスと機能ページを開き、箇条書きのメッセージサービスと機能がないことを確認します。

左側のナビゲーション バーで[カスタム ドメイン名]をクリックし、ドメイン名情報がないことを確認します。

カスタムドメイン名ページを開き、カスタムドメイン名がないことを確認します

次に、Knative を通じて HomePage を FC タイプのワークロードにデプロイします。ここでは yaml 形式でデプロイします。 yaml の内容は次のとおりです。

  1. apiVersion:serving.knative.dev/v1kind: Servicemetadata: name:demo-barrage アノテーション:workload.serving.knative.aliyun.com/class: "fc"spec: template: metadata: アノテーション:fc.revision.serving.knative.aliyun.com/code-space: "image" fc.revision.serving.knative.aliyun.com/role-arm: "acs:ram::xxxx:role/knative-fc" fc.revision.serving.knative.aliyun.com/domain: '{"domain":"barrage.demo.knative.top","path":"/*"}' spec: containers: - image: registry.cn-shanghai.aliyuncs.com/knative-sample/barrage-main:forrester-yuanyi_4cd77c84-20210618214527 env: - 名前: OTS_ENDPOINT 値: https://barrage.cn-hangzhou.ots.aliyuncs.com - 名前: TABLE_NAME 値: barrage - 名前: OTS_INSTANCENAME 値: barrage - 名前: OTS_KEYID 値: xxx - 名前: OTS_SECRET 値: xxx - 名前: KAFKA_SERVER 値: "106.15.11.179:9093,47.100.131.71:9093,47.102.44.91:9093" - 名前: KAFKA_USER 値: "alikafka_pre-cn-xxx" - 名前: KAFKA_PWD 値: "xxx" - 名前: KAFKA_TOPIC 値: "barrage-info" - 名前: TRACING 値: "http://tracing-analysis-dc-sh.aliyuncs.com/adapt_g2it2kg78n@5cf06035aec2eb9_g2it2kg78n@53df7ad2afe8301/api/traces" - 名前: TRACE_NAME1 値: "sender" - 名前: TRACE_NAME2 値: "receiver" - 名前: TRACE_NAME3 値: "result" - 名前: PARENT_SPAN 値: "barrage-sender" - 名前: SUB_SPAN1 値: "sender" - 名前: SUB_SPAN2 値: "result"

主なパラメータの説明:

fc関連のパラメータ設定には、fcタイプのワークロードのデプロイ、イメージを介したデプロイ、アクセスドメイン名をbarrage.demo.knative.topとして指定することが含まれます。
テーブルストレージアクセスアドレスを設定します: OTS_ENDPOINT
Kafka 関連のパラメータ設定: Kafka サービス アドレス、箇条書きメッセージ トピック
コールリンクアドレス設定: TRACING
それではサービスをデプロイしましょう。

コンテナ サービス管理コンソールにログインします。
クラスター管理ページの左側のナビゲーション バーで、 [アプリケーション] > [Knative]を選択します。
[サービス管理]タブの右上隅で、 [テンプレートを使用して作成] をクリックします。デフォルトの名前空間を選択し、上記の YAML コンテンツをテンプレートに貼り付けて、「作成」をクリックします。
デプロイが完了したら、Function Compute コンソールで確認します。

Function Compute コンソールにログインします。
上部のメニューバーで、[地域] を選択します。
左側のナビゲーション バーで、 [サービスと機能]をクリックします。 「サービスと機能」を選択すると、弾丸スクリーン サービスがデプロイされていることがわかります。 「サービスと機能」ページを開くと、ホームページがデプロイされていることがわかります。

ステップ4: サービスへのアクセス

上記のサービスが展開されました。次に、カスタム ドメイン名を通じてサービスにアクセスします。 http://barrage.demo.knative.top

次に、弾幕を張ります。ここでは、送信する集中メッセージ、同時メッセージの数、および期間をカスタマイズできます。ここでは、送信にデフォルトの設定を使用します。

メッセージ、同時実行数、期間を設定し、[送信]をクリックします。

集中砲火メッセージが絶えず表示されているのがわかります。

まとめ

Alibaba Cloud Knative は、Serverless Kubernetes 上のコンテナと関数の統一されたプログラミング モデルを提供し、統一された Serverless アプリケーション プログラミング モデルを実現します。興味のある学生はぜひご連絡ください。

<<:  Kafka のプロデューサー、コンシューマー、ブローカーの基本概念

>>:  SUSE: オイラーオープンソースコミュニティと連携してクラウドネイティブの実装を加速

推薦する

gigsgigscloud: フィリピンの VPS、1000M 帯域幅、中国本土への直接接続、月額わずか 6.8 ドル

GIGSGIGSCloud は、フィリピン、香港 (CN2 を含む)、シンガポール、ロサンゼルス (...

フォーラムを使用して外部リンクを効果的に構築する方法

「コンテンツは王様、外部リンクは女王」という言葉は、すべてのウェブマスターが知っていると思います。こ...

AIが新たな応用シナリオを切り開き、ファーウェイクラウドModelArts Proが新たな開発パラダイムを創出

私たちは、すべてが感知され、すべてがつながり、すべてがインテリジェントになる時代に入りつつあります。...

cycloneservers-$3.84/KVM/1g メモリ/2CPU/30g ハードディスク/2T トラフィック/ロサンゼルス

cycloneservers は 2009 年に設立されたブランドで、シアトル、ロサンゼルス、ノース...

個人による SEO は業界から消えていきます。今後 SEO に必要なのはチームです。

私はウェブサイト最適化の分野で約3年間働いています。インターネットが好きだったので、友人の指導のもと...

ロングテールキーワードを獲得する4つの方法の例

キーワードの選択は、すべての最適化担当者が実行する必要がある最適化タスクの 1 つです。キーワードの...

Weiboマーケティングは本当に時代遅れなのでしょうか?私はそうは思わない

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeChatが使われるよ...

ウェブサイト構築における「ユーザーエクスペリエンス効果」の重要性は過小評価できない

これまで、ウェブサイトの良し悪しを判断する際、主にウェブサイトの重みと検索エンジンのランキングに基づ...

トップ 10 B2C ウェブサイトのショッピング カート プロセス設計の比較分析

ショッピング カートは、サイト全体のコンバージョン率とユーザー エクスペリエンスの向上に非常に役立つ...

数え切れないほどの降格を経験したウェブマスターが体験談を語る

ウェブマスターや SEO 担当者が最も恐れていることは何でしょうか? おそらく、人々の生活を死よりも...

vpsdime - 年間 30 ドル / メモリ 1g / ハード ドライブ 40g / トラフィック 1T / G ポート / データ センター 3 つ

vpsdimeからOVZを購入した人は多いですよね?それでもまだ良いです。Windows VPS 用...

クアドラネット-アジア最適化ラインVPSクラウド/Gaofushuai

Quadranetのロサンゼルスデータセンターは中国ではよく知られています。これまでは主にサーバーの...

張青:ウェブマスターツールのエラーウェイトが一夜にして0から3になった話

今日、ブロガーの友人であるミプのブログの管理者から連絡があり、彼女のブログに異常な現象が起きていると...