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.rhkb.cn/news/267033.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 多表查询 连接查询 内连接

介绍 内连接查询是两张表中交集的部分 连接模式 隐式内连接 SELECT 字段列表 FROM 表1,表2 WHERE 条件显式内连接 SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件案例 有两张表一个表为学生表,另一个表为班级表,现在需要查询学生时候在查…

2023中国PostgreSQL数据库生态大会:洞察前沿趋势,探索无限可能(附核心PPT资料下载)

随着数字化浪潮的推进,数据库技术已成为支撑各行各业数字化转型的核心力量。2023中国PostgreSQL数据库生态大会的召开,无疑为业界提供了一个深入交流、共同探索PostgreSQL数据库技术未来发展趋势的平台。本文将带您走进这场盛会,解析大会的亮…

Laravel Octane 和 Swoole 协程的使用分析二

又仔细研究了下 Octane 源码和 Swoole 的文档,关于前几天 Laravel Octane 和 Swoole 协程的使用分析中的猜想,得到进一步验证: Swoole 的 HTTP Server 启动后会创建一个 master 进程和一个 manager 进程;master 进程又会创建多个…

XUbuntu22.04之解决:仓库xxx没有数字签名问题(二百一十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Linux 系统安装/卸载 Nginx教程

优质博文:IT-BLOG-CN 一、安装Nginx 【1】首先通过Nginx官网确定需要安装的版本,如果Linux联网则直接在Linux服务上使用wget命令将Nginx安装包下载到/usr/local/目录下: [rootxxx local]# wget -c http://nginx.org/download/nginx-1.22.1.…

qt 5.15版本安装

1.qt5.15版本安装 2.安装慢时,切换到清华镜像源:.\qt-unified-windows-x64-online.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt/ 3.没有qt 5.15版本在旁边进行筛选,只选archive

雅马哈伺服器TS-S系列说明具体详情内容可参看PDF目录内容

雅马哈伺服器TS-S系列说明具体详情内容可参看PDF目录内容

c++结构体内存对齐

结构体内存对齐 试试运行下面的例子 #include <stdio.h> #include <stdlib.h>using namespace std;struct A{char c;int i; };struct B{char c; int i; double d; };struct C{char c;int i;double d;char c1; };int main(){printf("sizeof(A): %d\n"…

netlink原理及应用

什么是netlink netlink是一种基于网络的通信机制&#xff0c;允许内核内部、内核与用户态应用之间甚至用户态应用之间进行通信&#xff1b;netlink的主要作用是内核与用户态之间通信&#xff1b;它的思想是&#xff0c;基于BSD的socket使用网络框架在内核和用户态之间进行通信…

CloudCanal x Hive 构建高效的实时数仓

简述 CloudCanal 最近对于全周期数据流动进行了初步探索&#xff0c;打通了Hive 目标端的实时同步&#xff0c;为实时数仓的构建提供了支持&#xff0c;这篇文章简要做下分享。 基于临时表的增量合并方式基于 HDFS 文件写入方式临时表统一 Schema任务级的临时表 基于临时表的…

0基础跨考计算机|408保姆级全年计划

我也是零基础备考408&#xff01; 虽说是计算机专业&#xff0c;但是本科一学期学十几门,真的期末考试完脑子里什么都不进的...基本都是考前一周发疯学完水过考试...&#x1f605; 想要零基础跨考可以直接从王道开始&#xff01;跟教材一点一点啃完全没必要&#x1f978; 现在…

ThreadLocal 为什么会内存泄漏吗?是怎么产生的?

ThreadLocal是什么 ThreadLocalMap 如何避免泄漏 ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射&#xff0c;各个线程之间的变量互不干扰&#xff0c;在高并发场景下&#xff0c;可以实现无状态的调用&…

vscode 引入外部依赖包

背景 我要在vscode中写一些antlr代码生成的cpp代码&#xff0c;但是在引入头文件#include "antlr4-runtime.h"的时候&#xff0c;出现报错&#xff0c;显示没有这个头文件&#xff0c;显然这是我们没有导入相关的包&#xff0c;因此我首先尝试了将antlr4的依赖源码在…

安全防御综合实验

需求&#xff1a; 1、办公区设备可以通过电信链路和移动链路上网&#xff08;多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换&#xff09; 2、分公司设备可以通过总公司的移动链路和电信链路访问DMZ区的http服务器 3、分公司内部的客户端可以通过公网地址访问到…

node.js和electron安装

文章目录 一、node.js安装1.node.js下载安装2.设置镜像 二、其它问题1.文件夹创建错误2.electron安装错误 一、node.js安装 1.node.js下载安装 参考B站视频node.js安装&#xff0c;没有按视频中设置镜像 2.设置镜像 参考&#xff1a;https://npmmirror.com/ npm config se…

化肥工业5G智能制造工厂数字孪生可视化平台,推进化肥行业数字化转型

化肥工业5G智能制造工厂数字孪生可视化平台&#xff0c;推进化肥行业数字化转型。随着科技的不断发展&#xff0c;数字化转型已经成为各行各业发展的必然趋势。在化肥工业领域&#xff0c;5G智能制造工厂数字孪生可视化平台的应用正在逐渐普及&#xff0c;为行业数字化转型提供…

RV1126芯片概述

RV1126芯片概述 前言1 主要特性2 详细参数 前言 1 主要特性 四核 ARM Cortex-A7 and RISC-V MCU250ms快速开机2.0Tops NPU14M ISP with 3帧 HDR支持3个摄像头同时输入4K H.264/H.265 视频编码和解码 2 详细参数

Hive SQL 开发指南(二)使用(DDL、DML,DQL)

在大数据领域&#xff0c;Hive SQL 是一种常用的查询语言&#xff0c;用于在 Hadoop上进行数据分析和处理。为了确保代码的可读性、维护性和性能&#xff0c;制定一套规范化的 Hive SQL 开发规范至关重要。本文将介绍 Hive SQL 的基础知识&#xff0c;并提供一些规范化的开发指…

GitHub Copilot extension activation error: ‘No access to GitHub Copilot found‘

好不容易学生认证通过了&#xff0c;打开vscode用copilot结果一直报这个错误。我的原因是&#xff1a;还未给copilot授权&#xff0c; 通过了学生认证后要进入这里进行授权&#xff1a;

Apache Flink连载(三十五):Flink基于Kubernetes部署(5)-Kubernetes 集群搭建-1

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 ​编辑