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

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

背景

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

推薦する

越境EC担当者が学ぶべきGAウェブサイト分析の16の高度なセグメント

GA を使用して Web サイトを分析することは、金鉱を掘るようなものです。 GA の操作に慣れてい...

bgpto: シンガポール cn2 gia 専用サーバー、100Mbps cn2 gia 帯域幅、25% 割引、デュアル e5、112.5 ドルから

bgpto も古いブランドで、シンガポールサーバー、日本サーバー(東京、大阪)、香港サーバー、米国サ...

#DMCA なし# hostsolutions-30% 割引コード/VPS/専用サーバー/ルーマニア/著作権を無視

Hostsolutions は、今回もプロモーションを実施しています。今回は、VPS と SSD ハ...

00 デジタルパスワード: 世界の 9 100 の .com ドメイン名の変更

eName.cnは4月30日、インターネット時代に革命をもたらそうとしているデジタルドメイン名が今年...

実用的なヒント付き Google AMP 完全ガイド

AMPとはAMP は、正式名称を Accelerated Mobile Pages といい、Goog...

400 フォンが企業ウェブサイトの主役になった理由について簡単に説明します

昨今、あらゆる分野の発展はインターネットと切り離せないものとなっていますが、企業にとってはなおさらで...

Justhost: モスクワ データライン データセンターの無制限トラフィック VPS の簡単なレビュー

多くの人が justhost をよく知っているはずです。使用したことがある人は、基本的にその選び方を...

床塗料のキーワードランキングを向上させる6つの戦略

現在でも、バックリンクは、Baidu や Google などの検索エンジンがウェブサイトの人気度を測...

SEO のニーズを満たすために技術的な手段を使用し、SEO のための技術を学ぶことの利点について説明します。

SEO では多くの場合、シンプルなアイデアの方が高度なテクノロジーよりも優れていますが、テクノロジー...

Apple iPhoneの爆発的普及の裏にある真実

数日前、鄭州のある男性は、10月2日の夕方、購入したばかりのiPhone 7で動画を撮影していたとこ...

ecvps5.95USD/月512MB RAM 完全管理型 VPS

ecvpsは2009年に設立されたVPS事業です。社長は香港出身です。ネットユーザーによると、社長は...

onenetwork 月額 16 ドル - 1G メモリ (xen)/60G ハードディスク/10T トラフィック/12 コア CPU

oneNetworkは1997年に設立されたと言われる長い歴史を持つホスティング会社です。現在、彼ら...

アリババがモバイルデータ統計プラットフォームを700万ドルで買収したと報じられている

新浪科技は3月23日午前、アリババがモバイル開発者データ統計プラットフォームを7000万ドルで買収し...

2022 年のクラウド エッジ コンピューティングの最もホットなトレンド

「エッジ コンピューティング」という用語は、今日のビジネス リーダーにとって目新しいものではありま...