Kubernetes上领先的开源Serverless解决方案有哪些

在去年年底的一次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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值