开源 Serverless 里程碑:Knative 1.0 来了
简介:近期Knative发布了1.0版本,达到了一个重要的里程碑。Knative自2018年7月首次发布以来, 版本不断的迭代发展,除了无数的错误修复、稳定性和性能增强之外,按时间顺序还进行了一些改进,下文将进行简单介绍。
作者:元毅
导读
Knative 是基于 Kubernetes 之上提供的一款开源 Serverless 应用框架,帮助用户部署和管理现代化的 Serverless 工作负载,打造企业级 Serverless 平台。Knative 具备如下优势:
- 在几秒钟内建立可扩展、安全、无状态的服务。
- 具有更高级别 Kubernetes 应用抽象的 API。
- 可插拔组件,让您可以使用自己的日志记录和监控、网络和服务网格。
- 在 Kubernetes 运行的任何地方都可以运行 Knative,无需担心供应商锁定。
- 开发者无缝体验,支持 GitOps、DockerOps、ManualOps 等。
- 支持常用工具和框架,例如 Django、Ruby on Rails、Spring 等。
Knative 1.0
近期 Knative 发布了 1.0 版本,达到了一个重要的里程碑。Knative 自 2018 年 7 月首次发布以来, 版本不断的迭代发展,除了无数的错误修复、稳定性和性能增强之外,按时间顺序还进行了以下改进:
- 支持多个 HTTP 路由层(包括 Istio、Contour、Kourier 和 Ambassador)
- 支持事件驱动 Eventing 概念以及常见的订阅方法(包括 Kafka、GCP PubSub 和 RabbitMQ)
- “鸭子类型 " 的抽象,允许处理具有共同字段(如 status.conditions 和 status.address)的任意 Kubernetes 资源
- 支持额外功能插件的命令行客户端
- 6 周一次的定期发布流程
- 支持 HTTP/2、gRPC 和 WebSockets
- Broker 和 Trigger,以简化事件的发布和订阅,同时将生产者和消费者解耦
- 支持事件组件向非 Knative 组件传递,包括集群外组件或主机上的特定 URL
- 支持自动提供 TLS 证书(通过 DNS 或 HTTP01 挑战)
- 定制事件交付选项,包括对无法交付的事件进行重试和 dead-letter 死信队列
- 对 Broker 和 Channel 的事件追踪支持,以改善调试工作
- 由 Knative Build 催生的 Tekton 项目
- 支持并行和顺序组件,用于编排事件的工作流
- 事件源的文档以及如何贡献说明,目前涵盖了大约 40 个不同的事件源
- “无中断” 平滑升级,在小版本升级期间无请求中断
- 重新设计Serving的 API,以匹配Deployment、CronJob 等使用的 PodTemplateSpec,简化 Kubernetes 用户的使用
- 支持将事件目标地址注入 PodTemplateSpec 的对象中
- 支持基于并发数或 RPS 的水平 Pod 自动扩缩容
- 使用领导者选举实现控制平面组件的高可用性
- 提供一个帮助管理员安装 Knative 的 Operator
- 快速入门,供开发者在本地试用 Knative
- 使用 DomainMapping 简化服务的管理和发布
Knative 到底有多少拥趸
从 Knative 诞生到 1.0 发布至今,不断的会面对一系列这样的问题:Knative 到底有多少企业在使用?是否生产可用?
根据 CNCF 2020 中国云原生调查报告,Knative 已经成为 Kubernetes 上最广泛安装的无服务器。
图片 1 (图片来源详见文末相关链接)
另外 Knative 社区近期也发起了一项统计:当前哪些云厂商或企业在提供或者使用 Knative。目前已统计如下(并且这项列表还在持续更新中):
图片 2 (图片来源详见文末相关链接)
我们可以看到,几乎所有的大厂都支持或者集成 Knative, 如阿里云、谷歌云、IBM、Red Hat等,并且大部分都提供了生产级别能力(Production),而随着 Knative 1.0 的发布,相信有更多的用户去拥抱 Knative。
阿里云 Knative
阿里云容器服务从 Knative 0.6.0 版本开始产品化集成,持续跟进 Knative 社区功能迭代,当前已全面支持 Knative 1.0 版本。在此期间,阿里云 Knative 与容器服务Kubernetes生态、消息、存储等云产品进行了全方位的融合。包括:
- 丰富的消息云产品事件源:Kafka 、MNS 、RocketMQ
- 服务访问:SLB
- 存储:NAS 、云盘等
- 可观测性:日志服务、ARMS
- IaaS 资源:ECS 、ECI
此外为了降低用户使用 Knative 门槛,通过容器服务 UI 控制台提供一键部署能力,在 Serverless Kubernetes(ASK) 中将 Knative 管控组件全托管,极大的节省了用户的资源以及运维成本。
在产品化持续迭代中,也带来了更丰富的客户应用场景,当前在阿里云 Knative 典型的应用场景(包括但不限):
- AI 音视频编/解码场景
- GPU 等异构计算场景
- 大数据及 AI 深度学习、机器视觉
- 传统管理软件
- ...
行业涵盖智慧医疗、在线教育、数字空间建模等领域。阿里云容器服务 Knative 正在为用户持续不断的提供企业级 Serverless 平台能力。
小结
如果你正面对复杂、多样的 Kubernetes 资源(Deploymemt、Service、Ingress 等)无从下手的难题,Knative 或许可以帮你轻松应对;如果你正面对成本压力、运维负担,Knative 可以为你减负。欢迎有兴趣的同学一起交流。
本文为阿里云原创内容,未经允许不得转载。
开源 Serverless 里程碑:Knative 1.0 来了的更多相关文章
- 开源 serverless 产品原理剖析 - Kubeless
背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...
- 分享 KubeCon 2019 (上海)关于 Serverless 及 Knative 相关演讲会议
有幸参加了 KubeCon 2019 上海大会,并参加了 Knative 及 Serverless 相关的几场分享会,收获满满.这里简单介绍一下各个演讲主题的主要内容.详细的演讲主题文档可以在Kube ...
- Java 开源博客——B3log Solo 0.6.6 正式版公布了!
Java 开源博客 -- B3log Solo 0.6.6 正式版公布了!欢迎大家下载. 该版本号引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也很欢迎大家參与 ...
- Java 开源博客——B3log Solo 0.6.7 正式版公布了!
Java 开源博客 -- B3log Solo 0.6.7 正式版公布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也很欢迎大家參与进来 :-) 特性 基于标签的文章分类 P ...
- Java 开源博客——B3log Solo 0.6.1 正式版发布了!
Java 开源博客 —— B3LOG Solo 0.6.1 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,并加入了一款 Metro 风格的皮肤. 特性 基于标签的文章分类 Ping Goog ...
- 微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布!!!
微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布 Weixin-App-Shop 是捷微团队开发的微信小程序商城开源项目,涵盖了微信商城的全部功能,能够快速发布简单易用的小 ...
- 《开源网店系统iWebShop2.0模板开发教程》的说明
<开源网店系统iWebShop2.0模板开发教程>是网上广为流传的一个文档,有点问题. 其中的第4章: ========================================== ...
- Java 开源博客——B3log Solo 0.6.7 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.7 正式版发布了!欢迎大家下载. 另外,欢迎观摩 B3log 团队的新项目:Wide,也非常欢迎大家参与进来 :-) 特性 基于标签的文章分类 ...
- Java 开源博客——B3log Solo 0.6.6 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.6 正式版发布了!欢迎大家下载. 该版本引入了数据库连接池:Druid. 另外,欢迎观摩 B3log 团队的新项目:Noty,也非常欢迎大家参与 ...
- Java 开源博客——B3log Solo 0.6.5 正式版发布了!
Java 开源博客 -- B3log Solo 0.6.5 正式版发布了!欢迎大家下载. 该版本主要是改善细节体验,也是 B3log Solo 的最后一个大版本. 这个版本发布后,B3log Solo ...
随机推荐
- Performance Improvements in .NET 8 -- JIT部分翻译
相关视频 动态PGO 基准测试设置 在本文中,我包括微基准测试以突出讨论的各个方面.其中大部分基准测试都是使用BenchmarkDotNet v0.13.8实现的,除非另有说明,否则每个基准测试都有一 ...
- [.NET项目实战] Elsa开源工作流组件应用(二):内核解读
@ 目录 定义 变量 内存寄存器类 寄存器中的存储区块类 变量到存储的映射类 上下文对象 活动上下文(ActivityExecutionContext) 工作流执行上下文(WorkflowExecut ...
- FFmpeg开发笔记(三)FFmpeg的可执行程序介绍
外界对于FFmpeg主要有两种使用途径,一种是在命令行运行FFmpeg的可执行程序,该方式适合没什么特殊要求的普通场景:另一种是通过代码调用FFmpeg的动态链接库,由于开发者可以在C代码中编排个性 ...
- IPython刷新函数模块
技术背景 IPython是一个非常灵活好用的python终端工具,而且比Python自带的终端工具还多了命令行高亮和自动索引的功能,也是常用的Jupyter Notebook的基础工具.在使用IPyt ...
- verilog之display
verilog之display 1.函数简介 $display是用于显示不同格式的变量的函数,用于测试过程中观察数据数据的特点.该观测不如波形图直观,但是如果可以详细的设置好观测点,有时可以达到事半功 ...
- Spring Cloud相关组件说明
1.Spring Cloud版本 现有Spring Cloud有两代实现,分为Spring Cloud Netflix和Spring Cloud Alibaba,由于SpringCloud Netfl ...
- KingbaseES 配置root.sh实现数据库服务开机自启动
案例说明: KingbaseES数据库在部署完成后,支持数据库服务开机自启动,部署完成后,root用户(Linux)执行安装软件目录下的root.sh脚本后,可以实现数据库服务开机自启动. 适用版本: ...
- KingbaseES V8R6 集群运维案例 -- 集群断电重新加电后恢复
官方文档介绍: https://help.kingbase.com.cn/v8/highly/availability/cluster-use/cluster-use-2.html#id35 全局 ...
- 循环队列(LoopQueue)
循环队列相比普通的队列,元素出队时无需移动大量元素. 代码 ArrayQueue.h 点它 代码清单 #ifndef C___LOOPQUEUE_H #define C___LOOPQUEUE_H # ...
- 详解SSL证书系列(8)了解HTTPS及和HTTP的区别
上一篇我们介绍了HTTP协议的三大缺点,那么怎么避免和解决HTTP的缺点呢,是时候请出我们的HTTPS了,那HTTPS和HTTP有什么区别呢? HTTP加上加密处理和认证以及完整性保护后即是HTTPS ...