新聞中心
這7個(gè)開源平臺(tái)幫你入手無服務(wù)器計(jì)算
譯文
作者:布加迪編譯 2018-11-21 09:00:33
服務(wù)器
開源
云計(jì)算 無服務(wù)器常常與FaaS(函數(shù)即服務(wù))這個(gè)術(shù)語互換使用。但無服務(wù)器并不意味著沒有服務(wù)器。事實(shí)上有好多服務(wù)器,即公共云提供商提供為你部署、運(yùn)行和管理應(yīng)用程序的服務(wù)器。

創(chuàng)新互聯(lián)是一家專業(yè)提供石城企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、HTML5、小程序制作等業(yè)務(wù)。10年已為石城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
【51CTO.com快譯】無服務(wù)器一詞最近出現(xiàn)在更多的對(duì)話中。不妨澄清一下這個(gè)概念及相關(guān)的概念,比如無服務(wù)器計(jì)算和無服務(wù)器平臺(tái)。
無服務(wù)器常常與FaaS(函數(shù)即服務(wù))這個(gè)術(shù)語互換使用。但無服務(wù)器并不意味著沒有服務(wù)器。事實(shí)上有好多服務(wù)器,即公共云提供商提供為你部署、運(yùn)行和管理應(yīng)用程序的服務(wù)器。
無服務(wù)器計(jì)算是新興的類別,代表開發(fā)人員構(gòu)建和交付軟件系統(tǒng)的方式發(fā)生了轉(zhuǎn)變。通過代碼將應(yīng)用軟件基礎(chǔ)設(shè)施抽取出來可大大簡(jiǎn)化開發(fā)過程,同時(shí)在成本和效率方面帶來新的好處。我認(rèn)為,無服務(wù)器計(jì)算和FaaS將在與云原生服務(wù)和混合云一同幫助定義企業(yè)IT的下一個(gè)時(shí)代方面發(fā)揮重要作用。
無服務(wù)器平臺(tái)提供的API讓用戶可以運(yùn)行代碼函數(shù)(又叫操作),并返回每個(gè)函數(shù)的結(jié)果。無服務(wù)器平臺(tái)還提供HTTPS端點(diǎn),讓開發(fā)人員可以檢索函數(shù)結(jié)果。這些端點(diǎn)可以用作其他函數(shù)的輸入,從而提供一連串相關(guān)函數(shù)。
在大多數(shù)無服務(wù)器平臺(tái)上,用戶在部署(或創(chuàng)建)函數(shù)后再執(zhí)行函數(shù)。然后,無服務(wù)器平臺(tái)擁有被告知執(zhí)行時(shí)執(zhí)行函數(shù)所需的所有代碼。用戶可以通過命令手動(dòng)調(diào)用無服務(wù)器函數(shù)的執(zhí)行,也可以由事件源觸發(fā),事件源被配置成一旦遇到計(jì)劃任務(wù)警報(bào)、文件上載或其他許多事件之類的事件,就激活函數(shù)。
入手無服務(wù)器計(jì)算的7個(gè)開源平臺(tái)
1.Apache OpenWhisk
Apache OpenWhisk是一個(gè)無服務(wù)器開源云平臺(tái),讓你可以執(zhí)行代碼以響應(yīng)任何規(guī)模的事件。它用Scala語言編寫。該框架處理來自HTTP請(qǐng)求等觸發(fā)器的輸入,然后運(yùn)行一小段JavaScript或Swift代碼。
2.Fission
Fission是一個(gè)無服務(wù)器計(jì)算框架,使開發(fā)人員能夠使用Kubernetes構(gòu)建函數(shù)。它讓程序員可以用任何編程語言編寫短暫的函數(shù),并將這些函數(shù)映射到任何事件觸發(fā)器(比如HTTP請(qǐng)求)。
3.IronFunctions
IronFunctions是一個(gè)無服務(wù)器計(jì)算框架,通過集成其現(xiàn)有服務(wù)和擁抱Docker,提供了一個(gè)連貫一致的微服務(wù)平臺(tái)。開發(fā)人員用Go語言來編寫函數(shù)。
4.Fn Project
Fn Project是一個(gè)開源容器原生無服務(wù)器平臺(tái),可以在任何地方運(yùn)行它:任何云或內(nèi)部環(huán)境。它易于使用,支持各種編程語言,還具有可擴(kuò)展性和高性能。
5.OpenLambda
OpenLambda是一個(gè)采用Apache許可證的無服務(wù)器計(jì)算項(xiàng)目,用Go編寫,基于Linux容器。OpenLambda的主要目標(biāo)是讓用戶能夠探究無服務(wù)器計(jì)算的新方法。
6.Kubeless
Kubeless是一個(gè)Kubernetes原生無服務(wù)器框架,讓你可以部署少量代碼,無需擔(dān)心底層基礎(chǔ)設(shè)施。它利用Kubernetes資源來提供自動(dòng)擴(kuò)展、API路由、監(jiān)控和故障排除等功能。
7.OpenFaas
OpenFaas是一個(gè)用Docker和Kubernetes構(gòu)建無服務(wù)器函數(shù)的框架,為指標(biāo)提供一流的支持。任何進(jìn)程可以打包成函數(shù),那樣你就可以使用眾多Web事件,無需重復(fù)編寫樣板代碼。
Kubernetes是管理無服務(wù)器工作負(fù)載和微服務(wù)應(yīng)用容器的最流行平臺(tái),使用精細(xì)的部署模型以便更快速、更輕松地處理工作負(fù)載。使用Knative Serving(https://github.com/knative/serving),你可以在Kubernetes上構(gòu)建和部署無服務(wù)器應(yīng)用程序和函數(shù),并使用Istio(https://istio.io/)來擴(kuò)展和支持高級(jí)場(chǎng)景,比如:
- 快速部署無服務(wù)器容器
- 自動(dòng)擴(kuò)展和縮小到零
- 面向Istio組件的路由和網(wǎng)絡(luò)編程
- 已部署的代碼和配置的時(shí)間點(diǎn)快照
Knative(https://github.com/knative/)專注于在云原生平臺(tái)上構(gòu)建和運(yùn)行應(yīng)用程序的常見任務(wù),用于編排源代碼到容器構(gòu)建、將服務(wù)綁定到事件生態(tài)系統(tǒng)、部署期間路由和管理流量以及自動(dòng)擴(kuò)展工作負(fù)載。
Istio是一個(gè)開放平臺(tái),用于連接和保護(hù)微服務(wù)(在Envoy代理看來實(shí)際上就是服務(wù)網(wǎng)格控制平面),并旨在考慮與框架交互的多個(gè)角色,包括開發(fā)人員、操作人員和平臺(tái)提供者。
比如說,你可以使用以下代碼片段,在本地Minishift(https://github.com/minishift/minishift)平臺(tái)上使用Knative Serving部署JavaScript無服務(wù)器工作負(fù)載:
- ## Dockerfile
- FROM bucharestgold/centos7-s2i-nodejs:10.x
- WORKDIR /opt/app-root/src
- COPY package*.json ./
- RUN npm install
- COPY . .
- EXPOSE 8080 3000
- CMD ["npm", "start"]
- ## package.json
- {
- "name": "greeter",
- "version": "0.0.1",
- "private": true,
- "scripts": {
- "start": "node app.js"
- },
- "dependencies": {
- "express": "~4.16.0"
- }
- }
- ## app.js
- var express = require("express");
- var app = express();
- var msg = (process.env.MESSAGE_PREFIX || "") + "NodeJs::Knative on OpenShift";
- app.get("/", function(req, res, next) {
- res.status(200).send(msg);
- });
- app.listen(8080, function() {
- console.log("App started in port 8080");
- });
- ## service.yaml
- apiVersion: serving.knative.dev/v1alpha1
- kind: Service
- metadata:
- name: greeter
- spec:
- configuration:
- revisionTemplate:
- spec:
- container:
- image: dev.local/greeter:0.0.1-SNAPSHOT
構(gòu)建你的Node.js無服務(wù)器應(yīng)用程序,并將服務(wù)部署到本地Kubernetes平臺(tái)上。在Kubernetes(或Minishift)上安裝Knative、Istio和Knative Serving這些必要的基本組件。過程如下:
1.使用以下命令連接到Docker守護(hù)程序:
- (minishift docker-env) && eval(minishift oc-env)
2.使用以下命令和Jib(https://github.com/GoogleContainerTools/jib)構(gòu)建無服務(wù)器應(yīng)用程序容器映像:
- ./mvnw -DskipTests clean compile jib:dockerBuild
3.將Minishift等無服務(wù)器服務(wù)部署到Kubernetes集群:
- kubectl apply -f service.yaml
結(jié)論
上面這個(gè)例子表明了在哪里并如何借助Kubernetes、Knative Serving和Istio之類的云原生平臺(tái)開始開發(fā)無服務(wù)器應(yīng)用程序。
當(dāng)前標(biāo)題:這7個(gè)開源平臺(tái)幫你入手無服務(wù)器計(jì)算
本文路徑:http://www.dlmjj.cn/article/dppcjjd.html


咨詢
建站咨詢
