日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
帶你體驗(yàn)云原生場(chǎng)景下Serverless應(yīng)用編程模型

帶你體驗(yàn)云原生場(chǎng)景下 serverless 應(yīng)用編程模型

作者:佚名 2021-10-26 10:52:51

網(wǎng)絡(luò)

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

創(chuàng)新互聯(lián)致力于網(wǎng)站制作、成都網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計(jì),集團(tuán)網(wǎng)站建設(shè)等服務(wù)標(biāo)準(zhǔn)化,推過標(biāo)準(zhǔn)化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進(jìn)行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場(chǎng)競(jìng)爭(zhēng)中脫穎而出。 選擇創(chuàng)新互聯(lián),就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!

背景

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

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

架構(gòu)

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

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

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

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

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

第一步:部署消息處理

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

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

接著通過 Knative 把彈消息處理部署到 ECI 類型工作負(fù)載。這里我們通過yaml的方式進(jìn)行部署,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最大請(qǐng)求并發(fā)數(shù)
OTS_ENDPOINT:表示配置的表格存儲(chǔ)訪問地址
TRACING:表示配置的調(diào)用連地址
那么接下來我們部署該服務(wù)。

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

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

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

第三步:部署HomePage

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

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

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

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

打開自定義域名頁(yè)面,確認(rèn)無(wú)自定義域名

接下來我們通過 Knative 把HomePage部署到FC類型工作負(fù)載。這里我們通過yaml的方式進(jìn)行部署, 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類型的工作負(fù)載、通過鏡像方式部署,并指定訪問域名為: barrage.demo.knative.top
配置表格存儲(chǔ)訪問地址: OTS_ENDPOINT
kafka 相關(guān)參數(shù)配置:kafka服務(wù)地址、彈幕消息 topic
調(diào)用連地址配置:TRACING
那么我們來部署該服務(wù)。

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

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

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

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

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

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

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

小結(jié)

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


網(wǎng)頁(yè)題目:帶你體驗(yàn)云原生場(chǎng)景下Serverless應(yīng)用編程模型
網(wǎng)址分享:http://www.5511xx.com/article/cdccsos.html