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

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

背景

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

推薦する

618マーケティング、アリババの包囲戦略!

7億人のユーザーを抱えるタオバオエコシステムは、グローバル新製品発売プラットフォームの天猫を先頭に、...

クラウドコンピューティング市場を拡大し強化するには、現実的でなければならない

近年、我が国の経済活動の焦点は経済全体の安定にあります。産業基盤の優位性を活かし、産業チェーンのアッ...

企業のウェブサイトを最適化するにはどうすればいいでしょうか?

インターネットの急速な成長と発展に伴い、ますます多くの伝統的な企業が徐々にインターネット分野に移行し...

ローカルポータルトラフィックの分析(II):アプリケーショントラフィックとアクティビティマーケティングトラフィック

2. アプリケーショントラフィックの取得方法とメリット、デメリット、誤解アドバンテージ: A. アプ...

Goodx: 修正済み - 年間 12 ドル / KVM / 1000M ポート / 無制限トラフィック / アジア最適化

修正され、KVM 仮想化に基づく VPS が提供されます。ロサンゼルス データ センター、1000M...

百度珠光:1つのウェブサイト+1つの電話検索マーケティングの敷居は低い

記者は百度のマーケティング・広報担当シニアディレクターの朱光氏にインタビューした。今年3月、Goog...

OpenVirtuals - 年間 20 ドル / 512 MB メモリ / 180 g ハード ドライブ / 2 T トラフィック / アトランタ

OpenVirtuals.com は、大容量ハード ドライブを備えた VPS をいくつか設定していま...

クラウドコンピューティングの今後はどうなるのでしょうか?分散クラウド

パブリック クラウドにより、IT チームがデータを操作し、クラウド ネイティブな方法で新しいアプリケ...

Extravm Japan Tokyo VPSの簡単なレビューでExtravmの仕組みを説明します

ExtraVM は、日本 VPS (東京) を含む複数のデータセンターで VPS サービスを提供して...

2013 年に医療ウェブサイトのランキングを最適化する方法

医療分野で働いている友人は、自分のウェブサイトのランキングについて非常に心配しているに違いないと思い...

Kubernetes 向けサーバーレスサービスである Amazon Fargate が中国で利用可能に

最近、Amazon Web Services は、Sinnet および NWCD との緊密な協力によ...

モモ版「Douyin」がリリース。動画ソーシャルアプリ「Duiyan」は人気になれるか?

今年、 Momoの新年の大ヒット作「Duiyan APP」が先日正式にリリースされました。今回、Mo...

サーバー - 4.97 ユーロ/Openstack/1G メモリ/30g SSD/2T トラフィック/オランダ

servers.com は、2005 年に設立された XBT Holding SA のブランドです。...

新しいサイトが古いサイトをすぐに追い越したいのであれば、反撃しなければならない

競合他社が多い成熟した業界に参入する場合、新しいウェブサイトである私たちが古いウェブサイトに挑戦しよ...