自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

帶你體驗云原生場景下 Serverless 應(yīng)用編程模型

網(wǎng)絡(luò) 云原生
阿里云 Serverless Kubernetes(ASK) 是阿里云推出的無服務(wù)器 Kubernetes 容器服務(wù),底層基于 ECI(Elastic Container Instance)讓您無需購買 ECS 節(jié)點就能直接創(chuàng)建安全隔離的容器應(yīng)用。

背景

阿里云 Serverless Kubernetes(ASK) 是阿里云推出的無服務(wù)器 Kubernetes 容器服務(wù),底層基于 ECI(Elastic Container Instance)讓您無需購買 ECS 節(jié)點就能直接創(chuàng)建安全隔離的容器應(yīng)用。 ASK 通過了 Kubernetes 的一致性測試,給您提供了完全兼容社區(qū) Kubernetes 的使用體驗。

Knative 是一款基于 Kubernetes 的開源 Serverless 應(yīng)用編排框架,其目標是制定云原生、跨平臺的Serverless應(yīng)用編排標準。阿里云 Knative 基于 ASK 之上,在完全兼容社區(qū) Knaitve 的同時對 FC、ECI 工作負載進行統(tǒng)一應(yīng)用編排,支持事件驅(qū)動、自動彈性,為您提供統(tǒng)一的 Serverless 應(yīng)用編程模型。

架構(gòu)

接下來我們通過一個彈幕服務(wù) demo 進行介紹。該 demo 主要包括 HomePage、事件驅(qū)動、消息處理這 3 部分。

HomePage 主要用于發(fā)送和接收彈幕。事件驅(qū)動用來接收事件,并進行事件過濾、流轉(zhuǎn)。消息處理,用于處理彈幕消息。其中 HomePage、消息處理通過 Knative Serving 部署分別到 FC、ECI,事件驅(qū)動通過 Knative Eventing 部署到ECI。

彈幕服務(wù) demo 主要流程如圖,用戶通過前端發(fā)送彈幕消息到 HomePage,HomePage 接著將彈幕發(fā)送到 Kafka,事件驅(qū)動接收彈幕消息,然后路由到消息處理進行加工,待彈幕加工完之后,將彈幕結(jié)果發(fā)送到表格存儲中,最后前端獲取彈幕結(jié)果在頁面展示。

接下來我們開始部署該彈幕服務(wù) demo, 操作包括以下內(nèi)容:

首先部署消息處理,然后部署事件驅(qū)動,接著部署 HomePage,待部署完成之后進行彈幕服務(wù)訪問

第一步:部署消息處理

該服務(wù)用于接收事件驅(qū)動發(fā)送的彈幕請求,并根據(jù)請求數(shù)進行自動擴縮容,待彈幕消息處理完成之后將結(jié)果發(fā)送到表格存儲。部署之前,我們先確認當(dāng)前無工作負載,以便觀察部署之后的結(jié)果。

選擇 ask 集群
在集群管理頁左側(cè)導(dǎo)航欄中,選擇工作負載 > 無狀態(tài)。選擇 default命名空間,確認當(dāng)前無工作負載

接著通過 Knative 把彈消息處理部署到 ECI 類型工作負載。這里我們通過yaml的方式進行部署,yaml內(nèi)容如下:

  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-uf636kjjx8xr4e75npex      labels:        danmu.role: "manager"    spec:      containerConcurrency: 2      serviceAccountName: barrage-install-sa      containers:        - args:            - /manager          env:            - name: OTS_ENDPOINT              value: https://barrage.cn-hangzhou.tablestore.aliyuncs.com            - name: TABLE_NAME              value: barrage            - name: OTS_INSTANCENAME              value: barrage            - name: OTS_KEYID              value: xxx            - name: OTS_SECRET              value: xxx            - name: POD_NAME              valueFrom:                fieldRef:                  fieldPath: metadata.name            - name: ROLE              value: manager            - name: POD_NAMESPACE              valueFrom:                fieldRef:                  fieldPath: metadata.namespace            - name: TRACE_NAME              value: "process"            - name: PARENT_SPAN              value: "barrage-sender"            - name: SUB_SPAN              value: "process"            - name: TRACING              value: "http://tracing-analysis-dc-sh.aliyuncs.com/adapt_g2it2kg78n@5cf06035aec2eb9_g2it2kg78n@53df7ad2afe8301/api/traces"          image: registry-vpc.cn-shanghai.aliyuncs.com/knative-sample/barrage-manager:forrester-yuanyi_4cd77c84-20210618215458          name: user-container          ports:            - containerPort: 8000              name: http1 

主要參數(shù)說明:

minScale和maxScale:表示服務(wù)配置的最小和最大Pod數(shù)量
containerConcurrency:表示配置的Pod最大請求并發(fā)數(shù)
OTS_ENDPOINT:表示配置的表格存儲訪問地址
TRACING:表示配置的調(diào)用連地址
那么接下來我們部署該服務(wù)。

在集群管理頁左側(cè)導(dǎo)航欄中,選擇應(yīng)用 > Knative。
在服務(wù)管理頁簽右上角,單擊【使用模版創(chuàng)建】。選擇default 命名空間,將上面的 yaml 內(nèi)容粘貼到模版,點擊創(chuàng)建。

第二步:部署事件驅(qū)動

事件驅(qū)動用于接收事件并進行事件流過濾、流轉(zhuǎn)。這里我們使用 Kafka 事件源作為事件驅(qū)動,用于從 Kafka 接收彈幕消息,然后把彈幕路由到消息處理。我們通過yaml的方式進行部署, yaml內(nèi)容如下:

第三步:部署HomePage

該服務(wù)用于接收前端彈幕消息,并將彈幕消息發(fā)送到 Kafka,同時從表格存儲中接收彈幕結(jié)果。這里通過 Knative 函數(shù)方式部署之后,會自動在FC中創(chuàng)建服務(wù)、函數(shù)、自定義域名。操作之前我們先確認FC中無彈幕服務(wù)、函數(shù)以及自定義域名。

登錄FC控制臺
在頂部菜單欄,選擇地域(上海)。

打開服務(wù)及函數(shù)頁面,確認無彈幕服務(wù)及函數(shù)

在左側(cè)導(dǎo)航欄中,單擊自定義域名,確認無域名信息。

打開自定義域名頁面,確認無自定義域名

接下來我們通過 Knative 把HomePage部署到FC類型工作負載。這里我們通過yaml的方式進行部署, yaml內(nèi)容如下:

  1. apiVersion: serving.knative.dev/v1kind: Servicemetadata:  name: demo-barrage  annotations:    workload.serving.knative.aliyun.com/class: "fc"spec:  template:    metadata:      annotations:        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:            - name: OTS_ENDPOINT              value: https://barrage.cn-hangzhou.ots.aliyuncs.com            - name: TABLE_NAME              value: barrage            - name: OTS_INSTANCENAME              value: barrage            - name: OTS_KEYID              value: xxx            - name: OTS_SECRET              value: xxx            - name: KAFKA_SERVER              value: "106.15.11.179:9093,47.100.131.71:9093,47.102.44.91:9093"            - name: KAFKA_USER              value: "alikafka_pre-cn-xxx"            - name: KAFKA_PWD              value: "xxx"            - name: KAFKA_TOPIC              value: "barrage-info"            - name: TRACING              value: "http://tracing-analysis-dc-sh.aliyuncs.com/adapt_g2it2kg78n@5cf06035aec2eb9_g2it2kg78n@53df7ad2afe8301/api/traces"            - name: TRACE_NAME1              value: "sender"            - name: TRACE_NAME2              value: "receiver"            - name: TRACE_NAME3              value: "result"            - name: PARENT_SPAN              value: "barrage-sender"            - name: SUB_SPAN1              value: "sender"            - name: SUB_SPAN2              value: "result" 

主要參數(shù)說明:

fc 相關(guān)參數(shù)配置包括: 部署fc類型的工作負載、通過鏡像方式部署,并指定訪問域名為: barrage.demo.knative.top
配置表格存儲訪問地址: OTS_ENDPOINT
kafka 相關(guān)參數(shù)配置:kafka服務(wù)地址、彈幕消息 topic
調(diào)用連地址配置:TRACING
那么我們來部署該服務(wù)。

登錄容器服務(wù)管理控制臺。
在集群管理頁左側(cè)導(dǎo)航欄中,選擇應(yīng)用 > Knative。
服務(wù)管理頁簽右上角,單擊【使用模版創(chuàng)建】。選擇default 命名空間,將上面的 yaml 內(nèi)容粘貼到模版,點擊創(chuàng)建。
部署完成之后,我們在函數(shù)計算控制臺驗證一下。

登錄函數(shù)計算控制臺。
在頂部菜單欄,選擇地域。
在左側(cè)導(dǎo)航欄中,單擊服務(wù)及函數(shù),選擇可以看到彈幕服務(wù)已經(jīng)部署完成
打開服務(wù)及函數(shù)頁面,可以看到HomePage已經(jīng)部署完成。

第四步:服務(wù)訪問

以上服務(wù)都已部署完成,接著我們通過自定義域名進行服務(wù)訪問。http://barrage.demo.knative.top

接下來我們發(fā)送彈幕,這里可以自定義設(shè)置需要發(fā)送的彈幕消息,并發(fā)數(shù)以及持續(xù)時間。這里我們使用默認配置進行發(fā)送。

設(shè)置Message、Concurrency以及Duration,點擊【Send】

我們可以看到不斷有彈幕消息展示出來。

小結(jié)

阿里云 Knative 在 Serverless Kubernetes 之上,提供了面向容器+函數(shù)的統(tǒng)一編程模型,給你帶來統(tǒng)一的Serverless 應(yīng)用編程模型。歡迎有興趣的同學(xué)一起交流。

責(zé)任編輯:梁菲 來源: 阿里云云棲號
相關(guān)推薦

2022-11-24 13:43:40

2025-03-19 10:43:46

2021-09-06 16:55:56

騰訊云Serverless零售

2021-09-06 17:04:29

騰訊云Serverless云原生

2019-10-17 17:01:51

云計算開源模型

2019-07-18 12:37:20

高性能計算云原生公共云

2023-08-24 08:49:27

2021-08-13 07:00:41

云原生k8sspringboot

2021-08-26 07:20:05

云原生K8sSpringboot

2020-09-18 13:09:15

云原生云安全網(wǎng)絡(luò)安全

2012-10-29 10:49:15

Windows 8SkyDrive

2021-06-09 05:44:45

云原生 CICD

2023-08-07 08:48:13

2021-10-29 10:12:34

云原生勒索軟件網(wǎng)絡(luò)攻擊

2015-06-09 23:58:16

IBM

2024-05-13 08:00:00

2022-08-24 16:47:01

云原生安全通信

2022-02-21 09:00:00

云原生應(yīng)用開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號