这7个开源平台帮你入手无服务器计算

这7个开源平台帮你入手无服务器计算

译文
作者:布加迪编译 2018-11-21 09:00:33

服务器

开源

云计算 无服务器常常与FaaS(函数即服务)这个术语互换使用。但无服务器并不意味着没有服务器。事实上有好多服务器,即公共云提供商提供为你部署、运行和管理应用程序的服务器。

【51CTO.com快译】无服务器一词最近出现在更多的对话中。不妨澄清一下这个概念及相关的概念,比如无服务器计算和无服务器平台。

无服务器常常与FaaS(函数即服务)这个术语互换使用。但无服务器并不意味着没有服务器。事实上有好多服务器,即公共云提供商提供为你部署、运行和管理应用程序的服务器。

无服务器计算是新兴的类别,代表开发人员构建和交付软件系统的方式发生了转变。通过代码将应用软件基础设施抽取出来可大大简化开发过程,同时在成本和效率方面带来新的好处。我认为,无服务器计算和FaaS将在与云原生服务和混合云一同帮助定义企业IT的下一个时代方面发挥重要作用。

[[249819]]

无服务器平台提供的API让用户可以运行代码函数(又叫操作),并返回每个函数的结果。无服务器平台还提供HTTPS端点,让开发人员可以检索函数结果。这些端点可以用作其他函数的输入,从而提供一连串相关函数。

在大多数无服务器平台上,用户在部署(或创建)函数后再执行函数。然后,无服务器平台拥有被告知执行时执行函数所需的所有代码。用户可以通过命令手动调用无服务器函数的执行,也可以由事件源触发,事件源被配置成一旦遇到计划任务警报、文件上载或其他许多事件之类的事件,就激活函数。

入手无服务器计算的7个开源平台

1.Apache OpenWhisk

Apache OpenWhisk是一个无服务器开源云平台,让你可以执行代码以响应任何规模的事件。它用Scala语言编写。该框架处理来自HTTP请求等触发器的输入,然后运行一小段JavaScript或Swift代码。

2.Fission

Fission是一个无服务器计算框架,使开发人员能够使用Kubernetes构建函数。它让程序员可以用任何编程语言编写短暂的函数,并将这些函数映射到任何事件触发器(比如HTTP请求)。

3.IronFunctions

IronFunctions是一个无服务器计算框架,通过集成其现有服务和拥抱Docker,提供了一个连贯一致的微服务平台。开发人员用Go语言来编写函数。

4.Fn Project

Fn Project是一个开源容器原生无服务器平台,可以在任何地方运行它:任何云或内部环境。它易于使用,支持各种编程语言,还具有可扩展性和高性能。

5.OpenLambda

OpenLambda是一个采用Apache许可证的无服务器计算项目,用Go编写,基于Linux容器。OpenLambda的主要目标是让用户能够探究无服务器计算的新方法。

6.Kubeless

Kubeless是一个Kubernetes原生无服务器框架,让你可以部署少量代码,无需担心底层基础设施。它利用Kubernetes资源来提供自动扩展、API路由、监控和故障排除等功能。

7.OpenFaas

OpenFaas是一个用Docker和Kubernetes构建无服务器函数的框架,为指标提供一流的支持。任何进程可以打包成函数,那样你就可以使用众多Web事件,无需重复编写样板代码。

Kubernetes是管理无服务器工作负载和微服务应用容器的最流行平台,使用精细的部署模型以便更快速、更轻松地处理工作负载。使用Knative Serving(https://github.com/knative/serving),你可以在Kubernetes上构建和部署无服务器应用程序和函数,并使用Istio(https://istio.io/)来扩展和支持高级场景,比如:

  • 快速部署无服务器容器
  • 自动扩展和缩小到零
  • 面向Istio组件的路由和网络编程
  • 已部署的代码和配置的时间点快照

Knative(https://github.com/knative/)专注于在云原生平台上构建和运行应用程序的常见任务,用于编排源代码到容器构建、将服务绑定到事件生态系统、部署期间路由和管理流量以及自动扩展工作负载。

Istio是一个开放平台,用于连接和保护微服务(在Envoy代理看来实际上就是服务网格控制平面),并旨在考虑与框架交互的多个角色,包括开发人员、操作人员和平台提供者。

比如说,你可以使用以下代码片段,在本地Minishift(https://github.com/minishift/minishift)平台上使用Knative Serving部署JavaScript无服务器工作负载: 

  1. ## Dockerfile 
  2. FROM bucharestgold/centos7-s2i-nodejs:10.x 
  3. WORKDIR /opt/app-root/src 
  4. COPY package*.json ./ 
  5. RUN npm install 
  6. COPY . . 
  7. EXPOSE 8080 3000 
  8. CMD ["npm""start"
  9.  
  10.  
  11. ## package.json 
  12.   "name""greeter"
  13.   "version""0.0.1"
  14.   "private"true
  15.   "scripts": { 
  16.     "start""node app.js" 
  17.   }, 
  18.   "dependencies": { 
  19.     "express""~4.16.0" 
  20.   } 
  21.  
  22. ## app.js 
  23. var express = require("express"); 
  24. var app = express(); 
  25.  
  26. var msg = (process.env.MESSAGE_PREFIX || "") + "NodeJs::Knative on OpenShift"
  27.  
  28. app.get("/"function(req, res, next) { 
  29.   res.status(200).send(msg); 
  30. }); 
  31.  
  32. app.listen(8080, function() { 
  33.   console.log("App started in port 8080"); 
  34. }); 
  35.  
  36. ## service.yaml 
  37. apiVersion: serving.knative.dev/v1alpha1 
  38. kind: Service 
  39. metadata: 
  40.   name: greeter 
  41. spec: 
  42.   configuration: 
  43.     revisionTemplate: 
  44.       spec: 
  45.         container: 
  46.           image: dev.local/greeter:0.0.1-SNAPSHOT 

构建你的Node.js无服务器应用程序,并将服务部署到本地Kubernetes平台上。在Kubernetes(或Minishift)上安装Knative、Istio和Knative Serving这些必要的基本组件。过程如下:

1.使用以下命令连接到Docker守护程序:

  1. (minishift docker-env) && eval(minishift oc-env) 

2.使用以下命令和Jib(https://github.com/GoogleContainerTools/jib)构建无服务器应用程序容器映像:

  1. ./mvnw -DskipTests clean compile jib:dockerBuild 

3.将Minishift等无服务器服务部署到Kubernetes集群:

  1. kubectl apply -f service.yaml 

结论

上面这个例子表明了在哪里并如何借助Kubernetes、Knative Serving和Istio之类的云原生平台开始开发无服务器应用程序。

原文标题:7 open source platforms to get started with serverless computing,作者:Daniel Oh

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/307939.html<

(0)
管理的头像管理
上一篇2025-05-27 08:44
下一篇 2025-05-27 08:46

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注