企业是否想使用Kubernetes创建运行无服务器功能的平台?这些框架向人们展示了其创建方式。有人将其称之为“无服务器”,或者是“事件驱动的计算”,或是“功能即服务(FaaS)”,其思想是相同的:动态分配资源以运行单独的功能,其本质上是微服务,这些功能在响应中被调用事件。无服务器计算平台允许应用程序开发人员专注于应用程序,而不是基础设施及其所有管理细节。

Kubernetes

大多数云计算提供商都提供了某种无服务器平台,但是企业可以只使用两种要素来构建自己的平台。其中之一就是Kubernetes,它是容器编排系统,已成为构建组件化、弹性应用程序的标准平台。第二个是用于在Kubernetes中构建无服务器应用程序模式的众多系统中的任何一个。  

Kubernetes的大多数无服务器框架都具有以下共同特征:

•在本地或远程部署到任何支持Kubernetes的环境,其中包括OpenShift之类的环境。  

•支持以任何语言编写的运行代码,并且框架中预先包装了一些常见的运行代码。

•通过多种事件触发代码执行:HTTP端点、队列消息。  

在Kubernetes上构建无服务器的主要优势之一是可以更好地控制基础平台。许多无服务器产品限制了它们运行的功能的行为,有时使某些类型的应用程序不切实际。使用Kubernetes,企业可以创建满足其需求的无服务器平台,将基础设施留给Kubernetes运营商,让开发人员专注于编写基本代码。   以下是将无服务器功能带入Kubernetes的五个主要项目:  

1.Fission  

Fission是由Managed-Kubernetes公司Platform 9创建和维护的。其主要优点是允许企业创建FaaS应用程序,而无需构建容器,只需提供定义文件。

Fission可以安装或不安装Helm图表,并且可以安装在两个版本中。有一个完整版本的消息队列和InfluxDB支持日志记录,还有一个具有基本功能的精简版本。前者是为生产部署而设计的,而后者则是为了进行测试。

要将代码添加到Fission部署中,请使用基于YAML的规范文件。使用Fission的命令行工具,企业可以为函数以及用于触发其入口点的路由创建YAML文件。spec文件还允许企业为代码提供环境变量、辅助容器、卷和Kubernetes容差控件。  

Fission还提供“工作流”。工作流由Helm图表安装,将一个功能的输出传递给另一个功能。这些功能甚至不必使用相同的语言。需要注意,尽管工作流系统支持许多常见的原始二进制类型以降低开销(例如整数或通用字节流),但这会以性能为代价,因为每个功能的输出都呈现为交换格式。

最初与FaaS关联的缺点之一是,第一次调用功能时,启动与之关联的容器会有明显的延迟。Fission使容器保持预热状态,以大程度地减少功能首次运行时的延迟。

Fission为开发人员和管理人员提供了其他便利。可以将服务部署到没有外部互联网访问的集群中,并且可以根据需要将代码重新加载到集群中。还可以记录并重放功能活动,以帮助调试。  

Fission项目是在高度自由的Apache许可下提供的,因此可以根据需要自由修改。  

2.Knative  

Knative最初是由谷歌公司创建的,用于在Kubernetes上运行无服务器应用程序,而Knative则专注于生产中无服务器部署所共有的模式。但是,Knative需要直接专业知识来管理许多Kubernetes组件才能有效使用。  

除了Kubernetes,Knative还需要路由系统或服务网格(例如Istio),但也可以使用其他选项(例如Ambassador和Gloo)。这意味着需要做更多的工作,但是该项目提供了在各种云计算服务和Kubernetes环境(包括普通Kubernetes)中使用每个选项的详细指南。

Knative主要通过利用或扩展现有的Kubernetes工具和功能来工作。应用或功能通过YAML文件进行配置,并作为企业构建的Docker容器交付。通过kubectl命令行应用程序可以添加、修改或删除定义。有关Knative应用的指标,需要使用Grafana。缩放可以使用Knative自己的自动缩放器,也可以使用任何其他与Kubernetes兼容的缩放器,其中包括定制的缩放器。  

Knative正在大力开发中,其许多专用工具仍处于粗糙状态。其中包括knctl,这是专门用于Knative的CLI,如果企业只想专注于Knative,则可以避免使用Kubernetes的其他工具来管理Knative的麻烦。通过消除容器构建步骤在Knative上构建Go应用的工具。

3.Kubeless

Kubeless由Bitnami公司创建,Bitnami是通用Web应用程序堆栈的便捷安装程序的开发商。Kubeless使用Kubernetes的本地自定义资源定义来处理功能,因此Kubernetes和Kubeless功能之间的抽象程度略有下降。  

大多数常见的语言运行时都带有平台:.NET、Java、Python、Node.js、PHP、Ruby、Go,甚至还有用于云原生开发的新Ballerina语言。运行时只是Docker映像,尽管Kubeless有一种特定的打包格式,用于使用Dockerfiles构建自定义运行时。  

另一个便捷的Kubeless功能是其CLI,该命令与AWS Lambda CLI相同。如果企业想从AWS Lambda迁移而又想保留一些现有的管理脚本,或者不必学习全新的命令集,这将非常方便。

Kubeless还充当Serverless Framework的插件,Serverless Framework是一种用于在各种体系结构上构建无服务器应用程序的系统。如果企业已经使用Serverless或Kubeless,则添加其中之一比使用其他功能要容易。

Kubeless还充当Serverless Framework的插件,Serverless Framework是一种用于在各种体系结构上构建无服务器应用程序的系统。如果企业已经使用Serverless或Kubeless,则添加其中之一比使用其他功能要容易。  

4.OpenFaaS  

OpenFaaS的主题是简化了无服务器功能。简单来说,开发人员的意思是“没有比部署Docker容器困难得多”。

OpenFaaS可以部署到Kubernetes或Docker Swarm集群(用于本地测试或低需求使用)。企业可以使用OpenFaaS CLI将Docker映像构建,推送和部署到集群中以运行功能。现有的模板提供了预制的方式来部署用Go、Python、Node.js、.NET、Ruby、Java或PHP 7编写的应用程序,尽管企业始终可以自己采用应用程序。OpenFaaS CLI还为企业提供了管理集群中机密的方法,而内置的Web UI允许企业创建和管理新功能。  

OpenFaaS的另一个版本OpenFaaS Cloud重新打包了OpenFaaS,为多个开发人员提供功能,包括与Git集成(包括GitHub和GitLab的自托管版本)、持续集成(CI)/持续部署(CD)、机密管理、HTTPS,以及将事件馈送到Slack和其他服务器的功能。OpenFaas Cloud可作为免费的开源产品获得,并且具有托管版本,当前可以免费使用。  

5.OpenWhisk  

Apache OpenWhisk被称为通用无服务器平台。Kubernetes只是可用于在OpenWhisk中运行容器的几个选项之一,因为OpenWhisk还支持Mesos和Docker Compose。尽管如此,Kubernetes是首选,因为它具有用于应用程序部署的工具,尤其是Helm图表。IBM Cloud Functions基于OpenWhisk项目,因此也可以使用OpenWhisk CLI命令。  

与大多数其他无服务器Kubernetes框架不同,OpenWhisk是用Scala语言而不是Go(Kubernetes和Docker都用Go编写)编写的。只有当企业想对OpenWhisk进行黑客攻击并且只有Go的使用经验时,这才可能成为问题。  

大多数流行的应用程序运行时选项都预包装有OpenWhisk:Java、Node.js、Python、Ruby、PHP和.NET。此外,还包括许多深奥和前沿的选项:Scala、Ballerina、Swift和Rust。运行时只是Docker容器,因此很容易提供其自己的容器。  

一个方便的OpenWhisk部署功能是“zip动作”。使用代码包的清单文件将代码和辅助文件的.zip存档指向OpenWhisk,OpenWhisk将从中创建一个动作。OpenWhisk CLI还包括将代码目录树转换为此类归档文件的工具。服务包目录使企业可以轻松地将应用程序插入常见的第三方产品中,例如GitHub、Slack、Apache Kafka或Jira。

【凡本网注明来源非中国IDC圈的作品,均转载自其它媒体,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。】

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2022-04-15 11:09:56
云技术 简化Kubernetes多集群管理的三个步骤
许多企业已经在多个区域运行多个Kubernetes集群,以满足在全球各地运营的需求,并为全球客户减少应用程序延迟。企业可能已经在内部部署数据中心和许多公有云中拥有大量Kube <详情>
2021-07-20 10:46:04
云技术 采用混合云工作需要的5项技能
正如没有两个企业是相同的一样,没有两个混合云专家会为给定的挑战带来完全相同的技能。随着IT架构的不断发展,以下是五个最有价值的知识领域。 <详情>
2020-06-22 09:20:17
云技术 这3种无服务器缺点:云提供商绝对不会提及
无服务器变得越来越受企业欢迎,但几乎从未讨论过它的缺点。 <详情>
2020-03-17 09:21:19
云资讯 Rancher获4000万美元D轮融资,累计融资9500万美元
正是基于对中国Kubernetes市场的看好,Rancher已于2020年2月完成了中国本土化和国产化。 <详情>