共计 3976 个字符,预计需要花费 10 分钟才能阅读完成。
作者:元毅、庄宇
如何打造云上(公共云)、云下(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 服务
- 登录容器服务治理控制台 [ 2],在左侧导航栏抉择 集群。
- 在 集群列表 页面,单击指标注册集群名称,而后在左侧导航栏,抉择 利用 > Knative。
- 在 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: 80Gi
k8s.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.7
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8501
name: http1
protocol: TCP
name: lcc
在 服务治理 页签,获取服务的 拜访网关 和默认域名。
- 将 knative-llc-demo 服务的网关地址与须要拜访的域名进行 Host 绑定,在 Hosts 文件中增加绑定信息。绑定示例如下:
39.104.58.99 knative-llc-demo.default.example.com # 网关 IP 和域名请以您的理论数据为准。
- 实现 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-pl…
[2] 容器服务治理控制台
https://cs.console.aliyun.com
[3] 阿里云 ACK One 注册集群
https://help.aliyun.com/zh/ack/distributed-cloud-container-pl…
[4] ACK One 注册集群 Knative*
https://help.aliyun.com/zh/ack/distributed-cloud-container-pl…*