开源 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 ...
随机推荐
- 回顾redis底层数据结构
参考,欢迎点击原文:https://blog.csdn.net/qq_38286618/article/details/102530020 https://www.cnblogs.com/jaycek ...
- 使用nodejs从控制台读入内容
在写算法题的时候,基本上都需要输入输出语句,在大多数练题网站上当想用js书写算法题时,发现不知道怎么输入,其实Node是提供了一个readline模块来实现此功能的 tip 笔者用过的练题网站只有le ...
- jQuery(常用API)
jQuery简介 1.基本使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- Python简单程序设计(计算程序设计(存款利息)篇)
如题: 解题方式如下:
- Phaser3 学习资料整理
新年新征程,今年开启H5小游戏. 接触过egret和layair,两位的工具链还是比较丰富的,但是我没能好好写出一个demo. 偶尔接触到Phaser,发现体验不错. 于是整理一些资料,方便自己和那些 ...
- vue核心基础-过渡动画
第一种方法:引入类名 .v-enter{ opacity: 0; } .v-enter-to{ opacity: 1; } .v-leave{ opacity: 1; } .v-leave-to{ o ...
- 为什么SOTA网络在你的数据集上不行?来看看Imagnet结果的迁移能力研究
论文通过实验证明,ImageNet上的模型并不总能泛化到其他数据集中,甚至可能是相反的,而模型的深度和宽度也会影响迁移的效果. 如果需要参考,可选择类别数与当前任务相似的数据集上的模型性能.论文通 ...
- 算法学习笔记【4】| 动态规划(Atcoder DP 26题)
动态规划(Atcoder DP 26题) on Atcoder on Luogu 洛谷博客观看体验更佳: Atcoder DP contest 题解 Frog 1 $N$ 个石头,编号为 $1,2,. ...
- Python爬虫爬取ECCV Conference Papers(一)
爬取到2020年所有论文标题 代码: 1 import re 2 import requests 3 from bs4 import BeautifulSoup 4 import lxml 5 imp ...
- HTTP报文结构
HTTP报文结构 HTTP报文头 HTTP相应报文 请求方法 状态码