7个让您开始使用无服务器计算的开源平台澄清这个概念和相关概念(例如无服务器计算和无服务器平台)可能会有所帮助。无服务器通常与术语FaaS(函数即服务)互换使用。但无服务器并不意味着没有服务器。实际上,公共云提供商提供了很多服务器来为您部署、运行和管理应用程序。无服务器计算是一个新兴类别,它代表了开发人员构建和交付软件系统的方式的转变。通过代码抽象出应用软件基础架构,极大地简化了开发过程,同时在成本和效率方面带来了新的好处。我认为无服务器计算和FaaS将在帮助定义企业IT的下一个时代以及云原生服务和混合云方面发挥重要作用。无服务器平台提供API,允许用户运行代码函数(也称为操作)并返回每个函数的结果。无服务器平台还提供HTTPS端点,允许开发人员检索函数结果。这些端点可以用作其他功能的输入,提供一系列相关功能。在大多数无服务器平台上,用户在部署(或创建)函数后执行它们。无服务器平台然后在被告知执行时拥有执行该功能所需的所有代码。无服务器功能的执行可以由用户通过命令手动调用,也可以由配置为在遇到计划任务警报、文件上传或许多其他事件等事件时激活功能的事件源触发。开始使用无服务器计算的7个开源平台1.ApacheOpenWhiskApacheOpenWhisk是一个无服务器开源云平台,可让您执行代码以响应任何规模的事件。它是用Scala语言编写的。该框架处理来自触发器(例如HTTP请求)的输入,然后运行一小段JavaScript或Swift代码。2.FissionFission是一个无服务器计算框架,使开发人员能够使用Kubernetes构建功能。它允许程序员使用任何编程语言编写短期函数,并将这些函数映射到任何事件触发器(例如HTTP请求)。3.IronFunctionsIronFunctions是一个无服务器计算框架,它通过集成其现有服务并拥抱Docker来提供一致的微服务平台。开发人员使用Go语言编写函数。4.Fn项目Fn项目是一个开源容器原生无服务器平台,可以在任何地方运行:任何云或本地。它易于使用,支持各种编程语言,还具有可扩展性和高性能。5.OpenLambdaOpenLambda是一个基于Apache许可的无服务器计算项目,使用Go语言编写,基于Linux容器。OpenLambda的主要目标是使用户能够探索无服务器计算的新方法。6.KubelessKubeless是一个Kubernetes原生的无服务器框架,它允许您部署少量代码而无需担心底层基础设施。它利用Kubernetes资源提供自动缩放、API路由、监控和故障排除等功能。7.OpenFaasOpenFaas是一个使用Docker和Kubernetes构建无服务器功能的框架,为指标提供一流的支持。任何过程都可以打包成一个函数,这样您就可以使用许多Web事件而无需复制样板代码。Kubernetes是用于管理无服务器工作负载和微服务应用程序容器的最流行平台,它使用粒度部署模型更快速、更轻松地处理工作负载。使用KnativeServing(https://github.com/knative/serving),您可以在Kubernetes上构建和部署无服务器应用程序和功能,并使用Istio(https://istio.io/)扩展和支持高级场景,例如:快速部署无服务器容器自动缩放和缩容到零Istio组件的路由和网络编程部署代码和配置的时间点快照Knative(https://github.com/knative/)专注于云的常见任务在本机平台上构建和运行应用程序,以编排源代码到容器的构建、将服务绑定到事件生态系统、在部署期间路由和管理流量以及自动缩放工作负载。Istio是一个用于连接和保护微服务(实际上是从Envoy代理的角度来看是服务网格控制平面)的开放平台,其设计考虑到了与框架交互的多个角色,包括开发者、运维者和平台提供者.经过。例如,您可以使用以下代码片段在本地Minishift(https://github.com/minishift/minishift)平台上使用KnativeServing部署JavaScript无服务器工作负载:##DockerfileFROMbucharestgold/centos7-s2i-nodejs:10。xWORKDIR/opt/app-root/srcCOPYpackage*.json./RUNnpminstallCOPY..EXPOSE80803000CMD["npm","start"]##package.json{"name":"greeter","version":"0.0.1""private":true,"scripts":{"start":"nodeapp.js"},"dependencies":{"express":"~4.16.0"}}##app.jsvarexpress=require("express");varapp=express();varmsg=(process.env.MESSAGE_PREFIX||"")+"NodeJs::KnativeonOpenShift";app.get("/",function(req,res,next){res.status(200).send(msg);});app.listen(8080,function(){console.log("Appstartedinport8080");});##service.yamlapiVersion:serving.knative.dev/v1alpha1kind:Servicemetadata:名称:greeterspec:配置:revisionTemplate:spec:包含er:image:dev.local/greeter:0.0.1-SNAPSHOT构建您的Node.js无服务器应用程序并将服务部署到本地Kubernetes平台在Kubernetes(或Minishift)上安装Knative、Istio和KnativeServing必要的基本组件。过程如下:1.使用以下命令连接到Docker守护进程:(minishiftdocker-env)&&eval(minishiftoc-env)2.使用以下命令和Jib(https://github.com)构建无服务器应用程序/GoogleContainerTools/jib)容器镜像:./mvnw-DskipTestscleancompilejib:dockerBuild3。将Minishift等无服务器服务部署到Kubernetes集群:kubectlapply-fservice.yaml结论上面的示例显示了在何处以及如何利用Kubernetes、KnativeServing和Istio等云原生平台开始开发无服务器应用程序。原标题:Serverless计算入门的7个开源平台,作者:DanielOh
