原文:https://blog.csdn.net/weixin_34198453/article/details/89100604
所有开源无服务器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