点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

初识 Knative:跨平台的 Serverless 编排框架

  • 2019-06-05
  • 本文字数:1999 字

    阅读完需:约 7 分钟

初识 Knative:跨平台的 Serverless 编排框架

01 Knative 是什么

Knative 是 Google 在 2018 的 Google Cloud Next 大会上发布的一款基于 Kubernetes 的 Serverless 框架。Knative 一个很重要的目标就是制定云原生、跨平台的 Serverless 编排标准。Knative 是通过整合容器构建(或者函数)、工作负载管理(和动态扩缩)以及事件模型这三者来实现的这一 Serverless 标准。


Knative 社区的主要贡献者有 Google、Pivotal、IBM、Red Hat。可见其阵容强大, CloudFoundry、OpenShift 这些 PAAS 提供商都在积极的参与 Knative 的建设。

02 Knative 出现的背景

在 Knative 之前社区已经有很多 Serverless 解决方案,如下所示这些:


  • kubeless

  • Fission

  • OpenFaaS

  • Apache OpenWhisk


除了上面这些社区的开源解决方案以外各大云厂商也都有各自的 FAAS 产品的实现比如:


  • AWS Lambda

  • Google Cloud Functions

  • Microsoft Azure Functions

  • 阿里云的函数计算


业务代码部署到 Serverless 平台上就离不开源码的编译、部署和事件的管理。然而无论是开源的解决方案还是各公有云的 FAAS 产品,大家的实现方式都各不相同,缺乏统一的标准导致市场呈现碎片化。因此无论选择哪一个方案都面临供应商绑定的风险。


没有统一的标准、市场的碎片化这对云厂商来说用户 Serverless 上云就比较困难,对于 PAAS 提供商来说很难做一个通用的 PAAS 平台给用户使用。基于这样的背景 Google 牵头联合 Pivotal、IBM、Red Hat 等发起了 Knative 项目。


我们看一下在 Knative 体系下各个角色的协作关系:



  • Developers


Serverless 服务的开发人员可以直接使用原生的 Kubernetes API 基于 Knative 部署 Serverless 服务


  • Contributors


主要是指社区的贡献者


  • Operators


Knative 可以被集成到任何支持的环境中,比如:云厂商、或者企业内部。目前 Knative 是基于 Kubernetes 来实现的,有 Kubernetes 的地方就可以部署 Knative


  • Users


终端用户通过 Istio 网关访问服务,或者通过事件系统触发 Knative 中的 Serverless 服务

03 Knative 核心组件

作为一个通用的 Serverless 框架 Knative 由三个核心组件组成:


  • Build:提供从源码到镜像的通用构建能力

  • Eventing:提供了事件的接入、触发等一整套事件管理的能力

  • Serving:管理 Serverless 工作负载,可以和事件很好的结合并且提供了基于请求驱动的自动扩缩的能力,而且在没有服务需要处理的时候可以缩容到零个实例


Build 组件主要负责从代码仓库获取源码并编译成镜像和推送到镜像仓库。并且所有这些操作都是在 Kubernetes Pod 中进行的。


Eventing 组件针对 Serverless 事件驱动模式做了一套完整的设计。包括外部事件源的接入、事件注册和订阅、以及对事件的过滤等功能。事件模型可以有效的解耦生产者和消费者的依赖关系。生产者可以在消费者启动之前产生事件,消费者也可以在生产者启动之前“监听事件”。


Serving 组件的职责是管理工作负载以对外提供服务。对于 Knative Serving 组件最重要的特性就是自动伸缩的能力,目前伸缩边界支持从 0 到无限大。Serving 还有一个比较重要的功能就是灰度发布能力。


Knative 虽然是基于 Kubernetes 实现,不过这并不代表 Kubernetes 的所有功能都能在 Knative 中使用。因为 Knative 针对 Serverless 场景做了专门的设计,比如一个 Pod 中只能有一个 Container,一个 Container 只能有一个 Port 等。具体这些详细的内容我们会在后续的文章中陆续介绍。

04 Knative 的优势

Knative 一方面基于 Kubernetes 实现 Serverless 编排,另外一方面 Knative 还基于 Istio 实现服务的接入、服务路由的管理以及灰度发布等功能。Knative 是在已有的云原生基础之上构建的,有很好的社区基础。Knative 一经开源就受到了大家的追捧,其中的主要缘由有:


  • Knative 的定位不是 PAAS 而是一个通用的 Serverless 框架,大家可以基于此框架构建自己的 Serverless PAAS

  • Knative 对于 Serverless 架构的设计是标准先行。比如之前的 FAAS 解决方案每一个都有一套自己的事件标准,相互之间无法通用。而 Knative 首先提出了 CloudEvent 这一标准,然后基于此标准进行设计

  • 完备的社区生态:Kubernetes、ServiceMesh 等社区都是 Knative 的支持者

  • 跨平台:因为 Knative 是构建在 Kubernetes 之上的,而 Kubernetes 在不同的云厂商之间几乎可以提供通用的标准。所以 Knative 也就实现了跨平台的能力,没有供应商绑定的风险

  • 完备的 Serverless 模型设计:和之前的 Serverless 解决方案相比 Knative 各方面的设计更加完备。比如:

  • 事件模型非常完备,有注册、订阅、以及外部事件系统的接入等等一整套的设计

  • 比如从源码到镜像的构建

  • 比如 Serving 可以做到按比例的灰度发布


关于 Knative 出现的背景、要解决的问题、核心概念以及其优势就介绍到这里,后续我们会有一系列的文章由浅入深的来介绍 Knative 的使用以及剖析其内部实现。

作者简介

阿里云智能事业群技术专家 冬岛


本文转载自公众号阿里巴巴云原生(ID:Alicloudnative)


原文链接


https://mp.weixin.qq.com/s/Lt_3WheDI93WbQbBdOULZw


2019-06-05 08:009860
用户头像
阿里云容器平台 ACK,企业云原生转型最佳搭档

发布了 43 篇内容, 共 21.5 次阅读, 收获喜欢 79 次。

关注

评论

发布
暂无评论
发现更多内容

被boss直聘转发过多而“封杀”的2021年全套java高级面试题有多牛

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

马士兵老师亲自总结3000+道Java面试题,刷完吊打架构师面试官

Java 程序员 架构 面试 计算机

Alibaba22届校招启动!连夜整理一份七大专题Java架构速成笔记

Java~~~

Java 架构 面试 阿里 校招

上线仅仅三小时,豆瓣评分均9.0的“四本程序员必刷书籍”火了

Java 编程 面试 IT 计算机

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

Java 程序员 架构 面试 IT

【LeetCode】股票的最大利润Java题解

Albert

算法 LeetCode 8月日更

MySQL 系列教程之(二)Windows 安装 MySQL5.7.17

若尘

MySQL 8月日更

腾讯跟阿里两位王者之间的对比

Linux服务器开发

腾讯 阿里 C/C++ Linux服务器开发 Linux后台开发

网络攻防学习笔记 Day105

穿过生命散发芬芳

态势感知 网络攻防 8月日更

解除限制!Alibaba不在低调,P8大神纯手撸300页Java高并发手册

Java~~~

Java 架构 面试 高并发 架构师

校友名片小程序设计方案

CC同学

小程序云开发 校友小程序

MySQL 系列教程之(三) MySQL 基本概念和操作

若尘

MySQL 8月日更

震惊!300多页美团百亿级系统架构设计实录首公开

Java 编程 架构 面试 架构师

前方高能!Alibaba最新出版的JDK源码剖析手册(究极奥义版)开源

Java~~~

Java 架构 jdk 面试 架构师

一夜标星过百万,轻松霸榜GitHub的手绘图解HTTP笔记,竟来源阿里

Java~~~

Java 架构 面试 网络 HTTP

DAPP钱包开发模式详细介绍

Geek_23f0c3

dapp 钱包系统开发 DAPP智能合约交易系统开发

猎杀时刻!阿里高工总结698页Spring学习笔记,疯狂狩猎大厂offer

Java~~~

Java spring 架构 面试 微服务

这份阿里P8级别内部疯传的“Linux私房菜”让你一次吃个饱

Java 编程 程序员 IT 计算机

终于拿到了阿里2021年度九大Java技术文档——面试题+文档+白皮书

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

netty系列之:使用UDP协议

程序那些事

Java Netty nio udp 程序那些事

Alibaba12年技术老兵整理的“MySQL 学习笔记”带你轻松拿捏MySQL

Java~~~

Java MySQL 数据库 架构 面试

一切努力似乎都徒劳?|靠谱点评

无量靠谱

Alibaba内部首发“面试百宝书+超全算法面试手册”PDF版下载

Java~~~

Java 架构 面试 微服务 JVM

爆款阿里P5到P7晋升之路,九大源码文档助我超神果然努力幸运并存

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

秒杀系统设计-超卖问题

泽睿

秒杀 秒杀系统

“硬钢字节”阿里大牛分享内部数据结构与算法(诛仙版)源码笔记

Java~~~

Java 架构 面试 算法 数据结构与算法

京东T7架构师用470页就把微服务架构原理与开发实战文档讲完了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

缓存知识总结

十二万伏特皮卡丘

网络安全证书合集系列

网络安全学海

网络安全 证书 信息安全 渗透测试 安全漏洞

FastApi-14-文件上传-2

Python研究所

FastApi 8月日更

初识 Knative:跨平台的 Serverless 编排框架_云原生_阿里云容器平台_InfoQ精选文章