IDC 中搭建 Serverless 應用平臺:通過 ACK One 和 Knative 玩轉云資源

作者:元毅、莊宇

如何打造云上(公共云)、云下(IDC 數據中心)統一的云原生 Serverless 應用平臺,首先我們來看一下 ChatGPT 4 會給出什么樣的答案:

如何打造云上、云下統一的云原生 Serverless 應用平臺?

打造云上、云下統一的云原生 Serverless 應用平臺需要考慮幾個關鍵要素,包括技術架構設計、開發生態系統的構建、以及運維管理等多個方面的協同工作。以下是一些步驟和建議:
1. 統一的 API 和服務界面:
為了實現云上云下的一體化,需要定義統一的 API 和服務界面,確保不同環境中的應用可以無縫遷移和互操作。
2. 容器化:
利用容器技術(如 Docker)將應用打包,使得它們可以在任意環境中以相同的方式運行。
3. Kubernetes:
采用 Kubernetes 作為容器編排工具,以便在云上云下實現一致的應用部署、管理和擴縮能力。
4. 服務網格:
利用服務網格技術(如 Istio)來管理服務間通信,實現復雜微服務架構中的服務發現、負載均衡、故障處理和安全性。
5. Serverless 框架:
選擇或開發適合的 Serverless 框架(如 Knative 或 OpenFaaS),以提供無服務架構的能力,如事件驅動、自動擴縮容等。
6. 開發者平臺和 CI/CD:
構建一個集成了開發、測試、部署工具的平臺,并采用 CI/CD 流程自動化代碼的集成和部署。
7. 分布式云和混合云策略:
確保平臺支持分布式云和混合云策略,這樣應用既可以在公有云上運行,也可以在私有云或者邊緣計算環境中運行。
8. 數據一致性和存儲解決方案:
設計高效的數據存儲和同步機制,確保云上云下數據的一致性和可靠性。
9. 監控和日志:
集成監控和日志系統,以便實時跟蹤應用狀態并在必要時進行調試或故障排除。
10. 安全性:
確保系統滿足安全要求,包括網絡安全、數據加密、訪問控制以及合規性。
11. 用戶和開發者文檔:
提供詳細的用戶和開發者文檔,幫助用戶理解平臺的使用方法和最佳實踐。
12. 社區和生態系統:
構建一個強大的社區和生態系統,鼓勵開發者參與,貢獻代碼,共同改進平臺。通過上述步驟,你可以創建一個能夠平滑地在云上云下運行的 Serverless 應用平臺,減少運維壓力,加快應用的交付速度,并提升應用的可擴展性和彈性。

是不是感覺 AI 回答的很全面,沒錯,不過總結來說上面的回答其實關鍵就 2 點:分布式云/混合云策略以及標準化的技術方案。

分布式云趨勢

根據 Gartner 報告中,到 2025 年,50% 的大型企業將在他們選擇的地域通過『分布式云』服務實現業務模式轉型。另外根據 IDC 報告中,2021 年 86% 企業采用分布式云混合云架構,僅有 14% 客戶選擇單獨公共云。Gartner 報告指出,安全、運維復雜性、財務復雜性是分布式云架構的主要挑戰。

圖片

客戶的訴求

  • 技術選型的訴求:如何選擇標準化的 Serverless 技術方案,做到云上、云下技術棧統一
  • 成本的訴求:如何降低資源以及運維成本
  • 穩定性的訴求:如何保證服務運行的穩定性
  • 彈性訴求:云下 IDC 集群也可以彈性擴展資源,無限擴容 Serverless 應用

為什么是 Knative

Knative 是一款基于 Kubernetes 的開源 Serverless 應用編排框架, 以其云原生、跨平臺的 Serverless 應用編排優勢,成為廣受歡迎的開源 Serverless 框架。

作為一個通用的 Serverless 框架,Knative 由 3 個核心組件組成:

  • Serving: 管理 Serverless 工作負載,可以和事件很好地結合,并提供基于請求驅動的自動擴縮容的能力。在沒有服務需要處理時,可縮容至零個實例。Serving 組件的職責是管理工作負載以對外提供服務。自動伸縮是 Knative Serving 組件最為重要的特性之一,目前伸縮邊界無限制。同時,Knative Serving 還支持灰度發布。
  • Eventing: 提供了事件的接入、觸發等一整套事件管理的能力。Eventing 組件針對 Serverless 事件驅動模式具備一套完整的設計,包括外部事件源的接入、事件注冊和訂閱、以及對事件的過濾等功能。事件模型可以有效地解耦生產者和消費者的依賴關系。生產者可以在消費者啟動之前產生事件,消費者也可以在生產者啟動之前監聽事件。
  • Function: Knative Functions 為您提供了一個簡單的方式來創建、構建和部署Knative服務。您無需深入了解底層技術棧(如 Kubernetes、容器和 Knative),通過使用 Knative Functions,即可將無狀態、事件驅動的函數作為 Knative 服務部署到 Kubernetes 集群中。

圖片

分布式云容器平臺 ACK One

分布式云容器平臺 ACK One(Distributed Cloud Container Platform for Kubernetes)是阿里云面向混合云、多集群、分布式計算、容災等場景推出的企業級云原生平臺。

圖片

打造云上、云下統一云原生 Serverless 應用平臺

容器服務 ACK One 當前已支持托管 Knative 能力,用戶可以借助 ACK One + Knative 打造云上、云下統一云原生 Serverless 應用平臺,并通過 Knative 輕松使用云資源,云下 IDC 集群也可以彈性擴展資源,無限擴容 Serverless 應用。

圖片

優勢:

  • ACK One 注冊集群接入 IDC 自建集群,提供與 ACK 一致的運維體驗
  • Knative 使用體驗一致,組件免運維
  • ACK One 注冊集群為 IDC 自建集群提供云上彈性能力,結合彈性容器實例 ECI,隨時按需使用云上資源
  • 公共云 ACK 集群+ 云下 IDC 機房自建集群,提供更高穩定性保障

基于 ACK One+Knative 部署 LangChain-Chatchat

LangChain-Chatchat 是一個開源的利用 langchain 思想實現的基于本地知識庫的問答應用。我們看一下如何基于 ACK One + Knative 部署 LangChain-Chatchat 應用。

前提條件

  • 已通過容器服務 Kubernetes 版接入一個注冊的 Kubernetes 集群。具體操作,請查看創建注冊集群 [ 1]
  • 只支持線下集群是 Calico 路由反射模式或者 Cilium BGP 路由模式。

部署 Knative 服務

  1. 登錄容器服務管理控制臺 [ 2] ,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標注冊集群名稱,然后在左側導航欄,選擇應用 > Knative。

  3. 在?Knative?頁面的服務管理頁簽下,選擇命名空間為?default,然后單擊使用模板創建,將以下 YAML 示例粘貼至模板,最后單擊創建,創建一個名為?knative-llc-demo?的服務。

apiVersion: serving.knative.dev/v1
kind: Service
metadata:name: knative-llc-demo
spec:template:metadata:annotations:autoscaling.knative.dev/maxScale: '100'autoscaling.knative.dev/minScale: '1'k8s.aliyun.com/eci-extra-ephemeral-storage: 80Gik8s.aliyun.com/eci-use-specs: 'ecs.gn5-c4g1.xlarge,ecs.gn5i-c8g1.2xlarge,ecs.gn5-c8g1.2xlarge'spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/chatchat:0.2.7imagePullPolicy: IfNotPresentports:- containerPort: 8501name: http1protocol: TCPname: lcc

服務管理頁簽,獲取服務的訪問網關默認域名

圖片

  1. 將?knative-llc-demo?服務的網關地址與需要訪問的域名進行 Host 綁定,在 Hosts 文件中添加綁定信息。綁定示例如下:
39.104.58.99 knative-llc-demo.default.example.com # 網關IP和域名請以您的實際數據為準。
  1. 完成 Host 綁定后,在服務管理頁簽,單擊?knative-llc-demo?服務的默認域名,訪問 LangChain-Chatchat。如圖所示,可通過域名直接對 LangChain-Chatchat 進行訪問。

圖片

小結

當前阿里云容器服務 ACK One 已支持托管 Knative 能力,為云上、云下提供標準化的 Serverless 應用能力。通過 ACK One 注冊集群接入 IDC 自建集群,提供與 ACK 一致的運維體驗,并獲得云上彈性能力,結合彈性容器實例 ECI,隨時按需使用云上資源,無限擴展 Serverless 應用。想獲得詳細介紹,可閱讀阿里云 ACK One 注冊集群 [ 3] 和 ACK One Knative [ 4]

歡迎使用釘釘搜索 ACK One 客戶交流群的群號:35688562?或 Knative 交流群:23302777?加入我們。

參考鏈接:

[1]?創建 ACK One 注冊集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/create-a-cluster-registration-proxy-and-register-a-kubernetes-cluster-deployed-in-a-data-center

[2]?容器服務管理控制臺

https://cs.console.aliyun.com

[3]?阿里云 ACK One 注冊集群

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/overview-9

[4]?ACK One 注冊集群 Knative*

https://help.aliyun.com/zh/ack/distributed-cloud-container-platform-for-kubernetes/user-guide/knative-overview*

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711247.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CesiumJS-3】加載傾斜模型數據(3DTilest)以及修改位置

引入傾斜模型數據 // 加載3DTiles數據let tileset;try {tileset await Cesium.Cesium3DTileset.fromUrl("/api/3DTiles/b3dm_qx/tileset.json");viewer.value.scene.primitives.add(tileset); // 傾斜模型添加到場景中viewer.value.zoomTo(tileset); // 視角定位到傾…

【音視頻處理】使用ffmpeg實現多個視頻合成一個視頻(按宮格視圖)

先上結果 環境 硬件:通用PC 系統:Windows 測試有效 軟件:ffmpeg 解決 0、命令 ffmpeg.exe -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:v]scaleiw/2:ih/2,pad2*iw:2*ih[a]; [1:v]scaleiw/2:ih/2…

GO學習記錄

這里寫目錄標題 00 環境二級目錄三級目錄 00 環境 參考的&#xff1a;https://www.liwenzhou.com/posts/Go/install/ 編譯運行&#xff1a; go mod init <項目名> // 在目錄下創建項目 go mod init hello // 編譯二級目錄 三級目錄

BioTech - 大分子藥物設計 概述

歡迎關注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/136302202 大分子藥物設計領域主要包括3個方面&#xff0c;即大環類藥物設計、蛋白質與多肽類藥物設計、核酸藥物設計等&#xff0c;具體如下&…

selenium控制控件出現StaleElementReferenceException

attempts0while attempts<2:try:ywbh_text self.getElement(self.driver, //*[id"board_data"]/tbody/tr[1]/td[2])ywbh_text.click()config.zscjhbgbz_ywbh ywbh_text.textprint("保存業務編號&#xff1a;"ywbh_text.text"到conf中 zscjhbgbz_…

DolphinScheduler——奇富科技的調度實踐

目錄 一、技術架構 二、業務挑戰 2.1 調度任務量大 2.2 運維復雜 2.3 SLA要求高 三、調度優化實踐 3.1 重復調度 3.2 漏調度 3.3 Worker服務卡死 3.4 任務重復運行 四、服務監控 4.1 方法耗時監控 4.2 任務調度鏈路監控 五、用戶收益 原文大佬的這篇調度系統案例…

nginx使用詳解--緩存

Nginx 是一個功能強大的 Web 服務器和反向代理服務器&#xff0c;它可以用于實現靜態內容的緩存&#xff0c;緩存可以分為客戶端緩存和服務端緩存。 客戶端緩存 客戶端緩存指的是瀏覽器緩存, 瀏覽器緩存是最快的緩存, 因為它直接從本地獲取(但有可能需要發送一個協商緩存的請…

【XR806開發板試用】全網首發,對接騰訊云平臺的血淚史

1.前面的話 在上次連夜肝出了華為云平臺的帖子:https://aijishu.com/a/1060000000287434 之后,論壇里的反響平平,好評沒有,點贊更無,抱著已完成任務成功白嫖一塊板子的心態,把板子收在了盒子里,第二天,助手小姐姐跟我說為何不把騰訊云的做了,對于這個要求我其實是拒絕的,但是小…

鴻蒙開發之組件間方法傳遞(方法回調)

目前使用的方式有兩種&#xff0c;一種是父子組件方法傳遞&#xff0c;一種是系統提供的emitter。 一、父子組件方法傳遞 1.1 使用場景 當我們父組件中有一個方法&#xff0c;需要子組件在修改完數據后回調父組件的方法時候。有點抽象&#xff1a;這樣解釋一下&#xff0c;父…

深度學習-Pytorch運算的基本數據類型

深度學習-Pytorch模型運算的基本數據類型 用pytorch構建模型&#xff0c;并訓練模型&#xff0c;得到一個優化的模型&#xff0c;那么模型構造的數據類型怎樣的&#xff1f; 數據分析 數據分析-Pandas如何轉換產生新列 數據分析-Pandas如何統計數據概況 數據分析-Pandas如…

Three.js-04軌道控制器

1.導入 說明&#xff1a;相機圍繞目標進行軌道運動。也就是可以通過鼠標拖拽進行移動視角。 import { OrbitControls } from three/addons/controls/OrbitControls.js; 2.使用 說明&#xff1a;構造controls對象&#xff0c;再調用update方法&#xff1b;為了使效果更為明顯…

十二、Qt自定義Widget組件、靜態庫與動態庫

一、自定義Widget組件 1、自定義Widget組件 使用步驟采用提升法&#xff08;promotion&#xff09;重新定義paintEvent事件 2、實現程序 &#xff08;1&#xff09;創建項目&#xff0c;基于QWidget &#xff08;2&#xff09;添加類&#xff0c;為Widget組件提升類 #inclu…

Spring Boot 集成 Quartz 實現定時任務

Spring Boot 集成 Quartz 實現定時任務 在Spring Boot應用中&#xff0c;我們經常需要執行一些定時任務&#xff0c;如每天發送報表、定時更新數據庫等。雖然Spring Framework自帶了一個簡單的定時任務功能&#xff08;Scheduled&#xff09;&#xff0c;但在一些復雜場景下&a…

Vue3 在SCSS中使用v-bind

template 先創建一個通用的頁面結構 <template><div class"v-bubble-bg"></div> </template>js 在JS中先對需要用的數據進行定義&#xff1a; 可以是參數&#xff0c;也可以是data <script setup>const props defineProps({bgCol…

cURL 命令中有$的問題

最近學會使用cURL來快速訪問網絡資源&#xff0c;確實很好用&#xff0c;但在使用過程中遇到一個奇怪的問題&#xff0c;多方查詢也沒有找到現成答案&#xff0c;最后經摸索終于解決&#xff0c;特記錄如下。 我們一般訪問網站使用Chrome瀏覽器獲取的cURL命令大概是這個樣子&am…

gpt批量原創文章生成器,不限制內容的生成器

在當今的數字化時代&#xff0c;內容創作是網站持續發展的重要組成部分。然而&#xff0c;對于擁有大量內容需求的網站來說&#xff0c;手動創作文章可能會耗費大量時間和精力。為了解決這一問題&#xff0c;許多GPT&#xff08;生成式預訓練模型&#xff09;文章生成軟件應運而…

【重溫設計模式】外觀模式及其Java示例

設計模式及外觀模式介紹 在編程世界中&#xff0c;設計模式就如同自然界的法則&#xff0c;是一種反復出現在各種情況下的通用解決方案。設計模式可以分為創建型、結構型和行為型三大類&#xff0c;每一類都有其獨特的應用場景和解決問題的方式。今天&#xff0c;我們要重點解…

【HbuilderX】 uniapp實現 android申請權限 和 退出app返回桌面

目錄 android申請權限&#xff1a; 監聽用戶是否開啟權限或關閉權限&#xff1a; 退出app返回桌面&#xff1a; android申請權限&#xff1a; 首先在 manifest.json 內添加你所需要用到權限 添加權限插件 permission.js 一次就好1/權限插件 - Gitee.comhttps://gitee.co…

數據庫分庫分表中間件選擇

目前分庫分表的中間件有三種設計思路&#xff0c;分別是&#xff1a; 采用分散式架構&#xff0c;適用于用Java開發的高性能輕量級OLTP應用程序&#xff0c;以Sharding-JDBC為代表。采用中間層Proxy架構&#xff0c;提供了靜態輸入和所有語言支持&#xff0c;適用于OLAP應用程…

MATLAB環境下基于小波和濾波器組的音頻信號處理

音頻分類研究的重點&#xff0c;一方面在于音頻特征的提取和選擇&#xff0c;通常來說數據集和特征集在分類系統中有著極為重要的作用&#xff0c;離開了對數據集的處理、對特征集中特征的提取和選擇&#xff0c;分類結果必將產生巨大誤差。對于提高音頻分類系統的分類準確度和…