在去年年底的一次YC Startup School采访中,YC软件工程师Kyle Corbitt,询问了亚马逊的首席技术官Werner Vogels,关于容器和Kubernetes的问题。Werner在台上待了44多分钟,显得很困惑,他详述了AWS的最低限度可行的容器产品, 然后突然转了一个弯,说道:“容器的一个问题是,它几乎让你又回到了云出现之前的那个时代。”他说,“虽然容器对开发人员来说是一个很好的抽象,但客户仍需要做很多工作。没有人关心在底层运行的容器,因为它似乎只是你需要额外支付的税款。“

所有开源无服务器Kubernetes的路径均指向Knative
当然,Werner这里是在谈论他自己的书。AWS已经半心半意地将Kubernetes作为其承诺的服务,这不仅因为Kubernetes是“谷歌为每个人提供的基础设施,“而且因为AWS认为Kubernetes会分散人们对下一个更具影响力、更具粘性且更容易计费的阶段即“serverless”的注意力。”因此,当AWS继续在Lambda上沿用微软的战略——拥抱、扩展再消灭时,谷歌正在通过即将推出的“Knative”将其在Kubernetes上的筹码加倍。

Kubernetes上的serverless化,从何开始

是谁最先开始了在Kubernetes上的serverless化?那些在他们自己的数据中心操作的人都曾遇到过CNCF的“云原生”图景。除了“小道地图”能指导对容器好奇的人,还有一个徽标PDF (和相应的单页SPDY /笔记本电池基准测试工具),能够引导爱好者行走在CNCF的“云原生图景的推荐路径”之上。CNCF现在甚至展示“Serverless 图景”。如果你按下下拉式按钮并进入开源的”可安装“平台,你将会遇到一些“Kubernetes上的serverless化”的有力竞争者。

让我们根据开始的时间排序,依次浏览每个开源serverless产品。

Apache OpenWhisk,一种多功能、具有行业优势的Serverless解决方案

上图的第一个开源无服务器平台看起来很像一个正在孵化的ASF项目,例如IBM Blue。

OpenWhisk 参数 详情
开始时间 2016年2月(首次公开提交)
速度 2,300多个提交,240多个观察者,3,700多个星,700多个分叉,1,200个松散成员(kubernetes中只有160多个成员)
许可 Apache 许可证2.0
状态 生产使用良好(是IBM Cloud Functions的基础,与Adobe产品一同使用)
代码行(LOC) 〜64000行(仅限平台),用Scala编写
主要作者 Rodric Rabbah,MarkusThömmes,James Dubee,Carlos Santana,Christian Bickel,Perry Cheng。Chetan Mehrotra,Tyson Norris,其中几位来自IBM和Adobe。(Perry和Rodric由此开创了纯无服务器云——nimbella.com)
安装过程 多个部署目标包括k8s
主要特点 “生产就绪”,工业设计
安全/多租户 严格,一直到容器(linux cgroup和命名空间)

OpenWhisk是第一个由大型供应商开源发布的合法Serverless/基于事件的架构。它来自纽约州约克镇的IBM研究团队,用Scala编写,它看起来非常非常严格。它甚至还有一个项目维基百科,托管在Confluence上。我很难准确地说出OpenWhisk在商业环境中的受欢迎程度,但似乎IBM很乐意向人们推销基于OpenWhisk的“云功能”。OpenWhisk甚至被捐赠给了Apache基金会。虽然它可以在Kubernetes上使用,但是某位原创作者称它是为“大规模部署扩展而不仅仅是检查”而创建的。这非常有趣,尤其如果你是一家Java公司,使用容器或kubernetes API(命名空间)作为多租户边界对于您的首席信息安全官来说是场噩梦。

Fission,第一个真正的Kubernetes Serverless 平台

接下来,开源Serverless竞赛的领跑者是一个完全基于Kubernetes的项目,这个项目来自Platform9,名为“Fission”。

Fission 参数 详情
开始时间 2016年8月
速度 3,900多个星,340多个分叉,140多个观察者,340多个分叉,800多个松散成员
许可 Apache 许可证2.0
状态 版本1.0
代码行(LOC) ~25000行,golang
主要作者 Soam Vasani(VMWare/Platform 9,SF),现在是Ta-Ching Chen(VMView,台湾)。还有Vishal Biyani(来自印度 Pune InfraCloud)
安装过程 基于helm的w/clean quickstart
主要特点 易用性,商业支持?
安全/多租户 命名空间级别的软多租户,比K8s本身稍微宽松一些?

Fission似乎主要是由少数几位工程师创造的。这些人与Platform9的联合创始人一起,试图在VMWare上摒弃虚拟化技术。在这些选项中,Fission借助一些强大的流行玩意儿,实现了一个非常轻松的quickstart安装过程。Fission通过预热动态加载器、实时重新加载、记录/重放、金丝雀部署和prometheus指标集成,实现了低于100毫秒的“冷启动”。如果您欣赏前VMWare杰出员工运营一家OpenStack + K8s初创公司的行为,那么您可以使整个集群专门运行Fission工作负载,这件好事不应该被错过。

Kubeless,在Serverless中使用Kubernetes API的早期先驱

在Fission之后很快出现了“Kubeless”,它在Kubernetes Custom Resource Definitions的路径上被看做是一个早期的幻想家。(什么是CRD或CRD +自定义控制器?我认为是K8s扩展机制,它利用基础Kubernetes集群结构实现更高级别的功能。或者是,除了Envoy之外,为Istio提供动力的东西。)

Kubeless 参数 详情
开始时间 2016年11月
速度 960多个提交,170多名观察者,4,000多个星,400多个分叉,350多个松散成员(#kubeless on K8s Slack)
许可 Apache 2.0
状态 运行时(runtime)是“稳定的”,但是…维护模式?有人会用这个吗?
代码行(LOC) 12000, golang
主要作者 Tuna Ng(已离职,现为TomoChain区块链首席工程师),Andres Martinez Gotor(Bitnami),Sebastien Goasguen(前Bitnami人,现就职于TriggerMesh)
安装过程 YAML和curls
主要特点 CLI兼容AWS Lambda CLI,基于核心K8s构造
安全/多租户 基于CRD,因此内部身份验证依赖于K8s API /命名空间/ RBAC。外部身份验证基于HTTP头。

Kubeless令人困惑的一点是,虽然它仍然在被维护并且最终用户表示出了兴趣,其创作者无一例外都转战到了其他项目。原来的领导现在成了“区块链工程师“,另一个关键领导者已经成立了一家“serverless化”的新公司TriggerMesh(它本身是GitLab中的serverless集成的众多驱动力之一)。所以,很难说Kubeless的发展方向是什么,但如果你正忙着编写自己的控制器并在CRD中徜徉,Kubeless可能是一个有用的东西。12000行的 golang“意味着K8s API的概念证明”,多好啊?

OpenFaaS,Kubernetes上的简单serverless

OpenFaaS非常吸引人。它是唯一拥有除Apache 2.0以外的许可证的竞争者,它尤其以社区为中心,在最初对标Docker Swarm之后,它于2017年中期添加了Kubernetes支持,并且非常精简。

OpenFaaS 参数 详情
开始时间 2016年12月
速度 3,850个提交,450 +观察者,15000 +个星,1600 +分叉,1,200 +松散成员
许可 MIT
状态 最终用户页面有很多标志,包括一些著名的大牌
代码行(LOC) 〜5000,golang,还有更多的分散在其它库中
主要作者 Alex Ellis(在英国ADP工作了10年以上,现就职于VMWare),现在已经有180多个社区贡献者
安装过程 YAML+ helm模板
主要特点 简单! AWS-SNS触发系统,包含Istio集成,CRD支持,REST API,ARM支持(32位和64位),“功能+模板商店“ 和 “OpenFaaS云”
安全/多租户 所有容器都是非root用户,包括只读文件系统的选项。还有专用命名空间、可管理的K8s RBAC角色和“默认身份验证”(在OpenFaaS云上使用GitHub或GitLab+ OAuth 2.0 授权)

OpenFaaS是一个专职的单身工程师的心血结晶,该工程师此前已牢固地打造了一个周边社区。OpenFaaS以其简单、紧密的代码库和完美的消息传递而著称,如“更简单的serverless功能”,“一键安装”,“随着需求的增加而自动扩展包括扩展到零”。很不错吧?它的维护者在2017年7月还添加了一个Kubernetes介绍到文档中,如果你还不是K8s企业,以下陈述可能会给你留下一个很好的印象:“只有serverless的解决方案,才可以与Kubernetes和Docker Swarm原生集成”,“由价值驱动”,“以社区为中心”,“与40年前相比,现有160多名贡献者。”最近该项目的faas-netes 运算符甚至几乎完全由来自Weaveworks的Stefan Prodan重建,从而与Kubernetes实现更紧密的集成。
一个小小的问题是 - 不要因为OpenFaaS的“Docker Captain”血统,便错误地将它排除在外(就像你的作者做的那样!)。如果你在Google Docs调查中打勾,支持OpenFaaS Slack生态系统,他甚至会自动邀请您参加社区贡献者会议。这很吸引人。

Knative,又被戏称为:所有你的OSS serverless(和Ingress)均属于我们

最后是Knative。如果你按相反的时间顺序阅读本文,你会在这里停下来。Knative是lambda的有力竞争者。如果在此期间你没有密切关注2018年中期的Google Cloud NEXT会议,你很容易错过Knative。与时俱进吧!Knative即将到来,而且带着Istio。

Knative 参数 详情
开始时间 2018年1月
速度 2400+提交,183 +观察者,2100 +星,490 +分叉,1,200+ 松散成员(特别地,并非#knative on K8s Slack – 它们是不同的生态系统)
许可 Apache 2.0
状态 v0.4.0 (阿尔法,贝塔?)
代码行(LOC) 服务:~87000,事件~25000
主要作者 大量的Google员工,以及“来自~48家不同公司的约300名贡献者”。
安装过程 一套“酵母”式的Isitio CRD,然后便是干净的yamls
主要特点 Istio,终于有一个用例了!耶!自动伸缩,透明构建,用户空间遥测,修订,流量分割等。
安全/多租户 继承Istio?期望他们能做到这一点
需注意点 谷歌请求T-Mobile在Knative预发布(pre-launch)上构建商店定位器原型。参见:https://youtu.be/qzPG4O-DhYw?t=617

坊间消息是,谷歌有超过90名工程师正着力构建Knative,Knative是GCP和GKE之间即将到来的深度“云功能”集成的基础。如果你很勇敢,你甚至可以要求参加beta测试计划,而这能让你获取knative就像点击Google Cloud控制台中的按钮一样简单。
下面是与项目密切接触的人的话。Oren Teich, “所有这些都重新融入了Knative”。还有一位Google老员工在Knative公告HN帖子中说道:“当然,这些都只是早期的,但考虑到我们的目标是将共性(我们所做的80%都大致相同)编写出来并且改善客户工作负载的可移植性,我希望看到使用Knative构建的新产品,或者现有产品以Knative为基础。“在同一个帖子中,Pivotal的一位高级软件工程师指出,“我认为FaaS是一种具有一些额外功能的PaaS(扩展到零无疑是它最引人注目的功能)。”

其他开源serverless平台

仔细观察#serverless空间,你还会注意到还有很多其他产品,比如 -来自Oracle的Fn, Pivotal的Riff, VMWare的 Dispatch, Galatic Fog, Nuclio, Virtual Kubelet (严肃地说,这也是serverless?),PipelineAI, Nuclio,可能还有更多。对不起,乍一眼看的话,它们中的大多数都很快就会不敌Knative。
托管的无服务器怎么样?Google Cloud Functions, Huawei FunctionStage, Cloudflare Workers, Azure Functions, Serverless(.com)。当然,在创造真正的商业价值的同时,购买它们吧。但我还是回到我的YAML吧。

查看英文原文:The Leading Open Source Serverless Solutions for Kubernetes

Kubernetes上领先的开源Serverless解决方案有哪些相关推荐

  1. 如何利用 Google 开源工具 Ko 在 kubernetes 上构建并部署 Go 应用

    Ko 是 Google 开源的一款用于构建并部署 Go 应用的工具. 这是一款简单.快速的 Go 应用镜像构建器.并与 Kubernetes 集成,能够将应用快速部署到 Kubernetes 上.是云 ...

  2. SpringCloud 应用在 Kubernetes 上的最佳实践 — 高可用(熔断)

    作者 | 宿何 导读:前几篇我们主要站在应用发布的场景,描述在发布过程中会遇到的灰度.监控.回滚.优雅上下线等保障发布能顺利进行的注意事项.作为一个程序员 GG,可灰度的发布顺利上线往往意味着准点下班 ...

  3. 开源 serverless 产品原理剖析 - Kubeless

    背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...

  4. 开源 serverless 产品原理剖析 - Kubeless 1

    背景 Serverless 架构的出现让开发者不用过多地考虑传统的服务器采购.硬件运维.网络拓扑.资源扩容等问题,可以将更多的精力放在业务的拓展和创新上. 随着 serverless 概念的深入人心, ...

  5. knative_使用knative在kubernetes上实现无服务器

    knative If you're already using Kubernetes, you've probably heard about serverless. While both platf ...

  6. 基于Kubernetes物联网平台Shifu开源,云原生技术助力万物互联

    物联网应用开发及管理平台Shifu正式开源,进入开源协同迭代新阶段.Shifu为客户全场景设备托管,一体化软件开发提供了透明框架.开发者登录GitHub搜索"Shifu",点击&q ...

  7. Kubernetes 上的服务网格技术大比较: Istio, Linkerd 和 Consul

    云原生应用通常是由一组运行在容器中的分布式微服务架构起来的.目前越来越多的容器应用都是基于 Kubernetes 的,Kubernetes 已经成为了容器编排的事实标准. 大多数采用了微服务架构的公司 ...

  8. [KubeCon+CloudNativeCon China 2018] 在Kubernetes上运行区块链服务(BaaS)

    笔者注:本文是在2018年11月15日由Linux基金会CNCF主办的KubeCon & CloudNativeCon China 2018大会的"Running Blockchai ...

  9. 在Kubernetes上运行SAP UI5应用(下): 一个例子体会Kubernetes内容器的高可用性和弹性伸缩...

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章 在Kubernetes上运行SAP UI5应用(上),我介绍了如何在Docker里运行一个简单的SAP UI5应用 ...

最新文章

  1. Dockerfile构建实践
  2. 完整的Python 3和树莓Pi大师课 Complete Python 3 and Raspberry Pi Masterclass
  3. SaaS加速器 I 商业中心:提供商业助力 共享商业成功
  4. 1.1 基础-取近似值
  5. adb 输入回车命令_adb adb shell 相关命令
  6. 网络工程师第五站-有线、无线同网段混合组网(多FAT案例)
  7. fiddler安装_Fiddler的安装和APP抓包
  8. 关公战秦琼java,IDE 之争是在争啥
  9. 【图像融合】拉普拉斯金字塔融合
  10. MTK:GPIO的配置与接口说明
  11. RH850 Clock+LED
  12. 个人学习计划(计算机专业),大学生个人学习计划范文
  13. response.sendRedirect 加域名或者不加域名的重定向加locahost或者不加localhost
  14. ITRON的任务管理
  15. JavaWeb学习(第一天)-1-HTML部分
  16. 我的运动、通勤好搭档,南卡Runner Pro 4骨传导耳机深度测评
  17. 如何设置select-option的多项起始默认值
  18. AlexNet网络的搭建
  19. CTFHub技能树 Web-SSRF 302跳转 Bypass
  20. python nodejs开发web_用nodejs和python实现一个爬虫来爬网站(智联招聘)的信息

热门文章

  1. 一个由印度人编写的VC串口类
  2. 公司Windows Office升级项目总结
  3. 各种系统启用snmp协议的方法
  4. J0ker的CISSP之路:复习-Information Security Management(4)
  5. c#中与vb中CType相同功能的函数(强类型转换)
  6. 服务器端执行javascript脚本
  7. [WTL] STLport安装指南
  8. 零基础Java学习之初始化块
  9. Python_note8 程序设计方法学+Python第三方库安装+os库
  10. 织梦 百度sitemap制作教程