IDC 中搭建 Serverless 应用平台:通过 ACK One 和 Knative 玩转云资源
作者:元毅、庄宇
如何打造云上(公共云)、云下(IDC 数据中心)统一的云原生 Serverless 应用平台,首先我们来看一下 ChatGPT 4 会给出什么样的答案:
如何打造云上、云下统一的云原生 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 服务
登录容器服务管理控制台 [ 2] ,在左侧导航栏选择集群。
在集群列表页面,单击目标注册集群名称,然后在左侧导航栏,选择应用 > Knative。
在 Knative 页面的服务管理页签下,选择命名空间为 default,然后单击使用模板创建,将以下 YAML 示例粘贴至模板,最后单击创建,创建一个名为 knative-llc-demo 的服务。
在服务管理页签,获取服务的访问网关和默认域名。

将 knative-llc-demo 服务的网关地址与需要访问的域名进行 Host 绑定,在 Hosts 文件中添加绑定信息。绑定示例如下:
完成 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 注册集群
[2] 容器服务管理控制台
[3] 阿里云 ACK One 注册集群
[4] ACK One 注册集群 Knative*
版权声明: 本文为 InfoQ 作者【阿里巴巴云原生】的原创文章。
原文链接:【http://xie.infoq.cn/article/b2daf8a3e2a3dcb6e6a6d8bf3】。文章转载请联系作者。
评论