作者 | 李志伟、游杨

来源 | 华章计算机

头图 | 下载于视觉中国

✎ 导读

什么是Knative?本文将对Knative的产生背景及发展历程,架构设计,受众群体等做详细介绍。

Knative是由谷歌发起,有Pivotal、IBM、Red Hat等公司共同参与开发的Serverless开源解决方案(项目地址是https://github.com/knative)。官方给Knative的定位为“基于Kubernetes的平台,用来构建、部署和管理现代Serverless工作负载”通过Knative可将云原生应用开发在三个领域的最佳实践结合起来,这三个领域的最佳实践是指服务构建部署的自动化、服务编排的弹性化以及事件驱动基础设施的标准化。

Knative的产生背景及发展历程

Serverless的理念受到了业界广泛的认可。众多云厂商也都相继发布了各自的Serverless产品的托管服务。但Serverless发展的主要障碍依然没有铲除。Serverless标准不统一,应用无法跨平台或跨云厂商迁移,直接导致应用程序与具体云厂商绑定,这极大地影响了企业在技术选型时对Serverless的选择。

随着Kubernetes生态的发展壮大,基于Kubernetes的开源Serverless解决方案也大量出现,基于Kubernetes云原生平台的Serverless的标准化需求也更加强烈。Knative的主要目标就是将Serverless标准化。

Knative开源项目将Serverless平台中的服务管理、事件驱动、构建部署进行了标准化。它既可以以托管服务形式运行在公有云中,也可以部署在企业内部的数据中心,从而很好地解决多云部署以及供应商锁定的问题。

在两年多时间里,Knative不断发展演进。

  • 2018年7月,在Google Cloud Next 2018大会上,谷歌正式发布了Knative。

  • 2019年4月,在Google Cloud Next 2019大会上,谷歌正式发布了谷歌云的无服务器计算产品Cloud Run。Cloud Run是Knative的托管服务,也是Knative第一个商用的托管服务。

  • 2019年8月,0.8版本发布,这是Serving第一个RC版本。

  • 2020年7月,0.16.0版本发布。

Knative的架构设计

Knative的架构设计遵循了标准化、可替代、松散组合、不绑定的总体设计原则。它以Kubernetes扩展的形式实现了服务构建和部署的自动化、服务编排的弹性化以及事件驱动基础设施的标准化。

Knative以Kubernetes扩展的形式提供了一整套中间件,用来构建新一代以代码为中心、基于容器的应用程序。这些应用程序可以运行在任何云环境中。

1)Knative整合Kubernetes平台的最佳实践,将能力主要聚焦在容器的部署、路由和流量管理、按需自动化扩缩容、事件绑定服务。

2)Knative由Serving和Eventing两大组件构成。其中,Serving组件负责实现请求驱动计算,支持缩容到零;Eventing组件负责事件的交付和管理。

3)Knative建立在Kubernetes生态的基础之上。它整合了Kubernetes和Istio的能力,没有重新造轮子,从Kubernetes生态中获益的同时进一步推动了Kubernetes的应用,如图1所示。

Knative是一个云原生Serverless框架,可以运行任何无状态容器应用。这也意味着Knative可以通过容器整合各类FaaS平台的运行时框架,实现兼容各类FaaS平台已有的应用程序。

图1  Knative与Kubernetes生态

Knative的主要受众群

不同的受众使用Knative的方式是不同的,如图2所示。

图2 Knative的受众群及分工

1)开发人员:开发人员通过Knative组件提供的Kubernetes原生API部署Serverless风格的函数、应用和容器。

2)运维人员:Knative可以被集成到现有的云厂商或企业内部运维的Kubernetes服务上,支持在任何兼容的Kubernetes版本上安装运行。

3)社区贡献者:Knative是一个多元化、开放且包容的社区。它拥有清晰的项目范围定义、轻量的管制模型以及每个可插拔组件间整洁的分隔线,以此为基础建立起高效的工作流。社区贡献者可以提供项目代码和文档。

Knative的商业托管服务产品

Knative是一个拥有众多厂商参与的社区,其中很多厂商已经提供Knative的商业托管服务产品。以下是Knative部分商业托管服务产品的清单。

  • Gardener:通过在Gardener vanilla Kubernetes集群中安装Knative,实现无服务器运行时附加层。

  • Google Cloud Run for Anthos:通过Serverless开发平台来扩展Google Kubernetes Engine。利用Cloud Run for Anthos,你可以通过Kubernetes的灵活性获得Serverless的开发体验,从而在自己的集群上部署和管理Knative服务。

  • Google Cloud Run:由谷歌云全托管的基于Knative的Serverless计算平台。你无须管理Kubernetes集群,通过Cloud Run可以在几秒钟内将容器应用到生产环境中。

  • Managed Knative for IBM Cloud Kubernetes Service:IBM Kubernetes Service的托管附加组件,便于你在自己的Kubernetes集群上部署和管理Knative服务。

  • OpenShift Serverless:OpenShift容器平台可以让有状态、无状态的Serverless工作负载自动在单个多云容器平台上运行。开发人员可以使用一个平台来托管其微服务、传统应用和Serverless应用程序。

  • Pivotal Function Service (PFS):一个用于在Kubernetes上构建和运行函数、应用程序和容器的平台,基于RIFF的开源项目。

  • TriggerMesh Cloud:一个全托管的Knative和Tekton平台,支持AWS、Azure和Google事件源和代理。

本文摘编自《Knative实战:基于Kubernetes的无服务器架构实践》。

对于Knative,你有哪些了解?

#欢迎来评论区讨论#

CSDN云计算 将选出三名优质留言

携手【机械工业出版社华章分社】送出

《Knative实战》一本

截至4月19日14:00点


2020-2021中国开发者调查报告重磅来袭,直接扫码或微信搜索「CSDN」公众号,后台回复关键词「开发者」,快速获取完整的报告内容!


更多精彩推荐
☞如何部署一个Kubernetes集群☞继云计算巨头失火后,微软决定送数据中心去“泡澡”!☞走过 30 年:银行数据库的下一步是国产化
点分享点收藏点点赞点在看

赠书 | 什么是 Knative?相关推荐

  1. 赠书 | 如何部署一个Knative Service

    我们以一个go语言编写的程序代码为例,创建一个简单的Web服务,当该服务接收到HTTP GET请求时会根据环境变量TARGET传递的内容向response输出Hello $TATGET! 内容. 1. ...

  2. 赠书活动 | Kubernetes、云原生、云计算领域不可不读的9本书,免费包邮哦!

    点击上方"程序猿技术大咖",关注并选择"设为星标" 回复"加群"获取入群讨论资格! 文末有赠书活动说明,正版好书等您来拿! 从时间线来看,容 ...

  3. 什么是Knative?

    导读:什么是Knative?本文将对Knative的产生背景及发展历程,架构设计,受众群体等做详细介绍. 作者:李志伟.游杨 来源:华章计算机(ID:hzbook_jsj) Knative是由谷歌发起 ...

  4. 【五一赠书】盘点云计算领域不可不读的 9 本书

    点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 云计算时代已真正到来.现在,很多传统软件企业.IT服务企业以及新兴云计算创业公司纷纷加入到这场云计算的大 ...

  5. 从HelloWorld看Knative Serving代码实现

    为什么80%的码农都做不了架构师?>>>    摘要: Knative Serving以Kubernetes和Istio为基础,支持无服务器应用程序和函数的部署并提供服务.我们从部署 ...

  6. 赠书 | 干货!用 Python 动手学强化学习

    01 了解强化学习 新闻报道中很少将强化学 习与机器学习.深度学习.人工智能这些关键词区分开来,所以我们要先介绍什么是强化学习,再讲解其基本机制. 强化学习与机器学习.人工智能这些关键词之间的关系: ...

  7. 赠书 | 图解机器学习算法,看这文就够了!

    机器学习指的是计算机根据给定的问题.课题或环境进行学习,并利用学习结果解决问题或课题等的一整套机制(图 1-1). 图 1-1 分类的示意图 与机器学习共同成为热门话题的还有人工智能和深度学习.这里梳 ...

  8. 赠书 | GNN 模型在生物化学和医疗健康中的典型应用

    计算生物化学和医疗健康的数据常常通过图来表示. 例如,分子和化合物可以自然地表示为以原子为节点.以键为边的图.蛋白质相互作用(Protein-ProteinInteractions,PPI)记录了两个 ...

  9. 赠书 | JavaScript 武力值飙升!用 TensorFlow.js 轻松在浏览器里搞深度学习

    近年来,AI 与人类的生活越来越紧密,慢慢变得无处不在.那么提到 AI ,我们会想到什么?小编最先想到的是机器人.早在小学作文中,我就写到 2021 年到处都是机器人,机器人汽车到处飞.结果 2021 ...

最新文章

  1. android 的listactivity
  2. 神经网络与机器学习 笔记—时序模式、非线性滤波
  3. ABAP性能优化之向内表添加纪录
  4. Git warning: LF will be replaced by CRLF in readme.txt的原因和解决方案
  5. 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
  6. 初中信息技术python教案_初中信息技术优质课教案 python程序设计开发第二课 第5课变量 教案...
  7. jersey客户端_项目学生:带有Jersey的Web服务客户端
  8. 华师 计算机系统 作业,华师网络学院作业答案-计算机组成原理问答题
  9. luogu P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
  10. zabbix自动发现redis端口并监控redis性能
  11. 汽车在哪扇门后面(博弈论的诡计)
  12. win iis mysql php_Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
  13. [原创]Base32加密解密工具
  14. Flutter入门进阶之旅(六)Layout Widget
  15. 前端学习路线之html5 (一)
  16. 苹果V10附件参数配置
  17. 小米游戏本 七代 deepin 网卡ac 8265 wifi 驱动 安装
  18. 学习linux第二十五天
  19. Boundary Smoothing for NER
  20. 远控免杀专题(16)-Unicorn免杀(VT免杀率29/56)

热门文章

  1. 苹果电脑mac_清理Mac苹果电脑DNS缓存
  2. python打包出现乱码_python解压zip包中文乱码解决方法
  3. python鼠标事件 详解_Python selenium键盘鼠标事件实现过程详解
  4. 加密选项_Zoom终于为免费账户也提供了端到端通讯加密的选项
  5. json string 格式_GO小知识之如何做JSON美化
  6. 东汉才女班昭:中国最早的女数学家
  7. Science:“熬夜会变傻”终于有科学依据了
  8. 人工智能时代来临,还需要那么多人吗?
  9. 此人数学15分考入清华,28岁成清华教授,其家族出了20多位院士
  10. 理解 shared_ptr实现copy-on-write(COW)