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

創(chuàng)新互聯(lián)是一家專業(yè)提供石城企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計、成都網(wǎng)站制作、HTML5、小程序制作等業(yè)務(wù)。10年已為石城眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
【51CTO.com快譯】無服務(wù)器一詞最近出現(xiàn)在更多的對話中。不妨澄清一下這個概念及相關(guān)的概念,比如無服務(wù)器計算和無服務(wù)器平臺。
無服務(wù)器常常與FaaS(函數(shù)即服務(wù))這個術(shù)語互換使用。但無服務(wù)器并不意味著沒有服務(wù)器。事實上有好多服務(wù)器,即公共云提供商提供為你部署、運行和管理應(yīng)用程序的服務(wù)器。
無服務(wù)器計算是新興的類別,代表開發(fā)人員構(gòu)建和交付軟件系統(tǒng)的方式發(fā)生了轉(zhuǎn)變。通過代碼將應(yīng)用軟件基礎(chǔ)設(shè)施抽取出來可大大簡化開發(fā)過程,同時在成本和效率方面帶來新的好處。我認為,無服務(wù)器計算和FaaS將在與云原生服務(wù)和混合云一同幫助定義企業(yè)IT的下一個時代方面發(fā)揮重要作用。
無服務(wù)器平臺提供的API讓用戶可以運行代碼函數(shù)(又叫操作),并返回每個函數(shù)的結(jié)果。無服務(wù)器平臺還提供HTTPS端點,讓開發(fā)人員可以檢索函數(shù)結(jié)果。這些端點可以用作其他函數(shù)的輸入,從而提供一連串相關(guān)函數(shù)。
在大多數(shù)無服務(wù)器平臺上,用戶在部署(或創(chuàng)建)函數(shù)后再執(zhí)行函數(shù)。然后,無服務(wù)器平臺擁有被告知執(zhí)行時執(zhí)行函數(shù)所需的所有代碼。用戶可以通過命令手動調(diào)用無服務(wù)器函數(shù)的執(zhí)行,也可以由事件源觸發(fā),事件源被配置成一旦遇到計劃任務(wù)警報、文件上載或其他許多事件之類的事件,就激活函數(shù)。
入手無服務(wù)器計算的7個開源平臺
1.Apache OpenWhisk
Apache OpenWhisk是一個無服務(wù)器開源云平臺,讓你可以執(zhí)行代碼以響應(yīng)任何規(guī)模的事件。它用Scala語言編寫。該框架處理來自HTTP請求等觸發(fā)器的輸入,然后運行一小段JavaScript或Swift代碼。
2.Fission
Fission是一個無服務(wù)器計算框架,使開發(fā)人員能夠使用Kubernetes構(gòu)建函數(shù)。它讓程序員可以用任何編程語言編寫短暫的函數(shù),并將這些函數(shù)映射到任何事件觸發(fā)器(比如HTTP請求)。
3.IronFunctions
IronFunctions是一個無服務(wù)器計算框架,通過集成其現(xiàn)有服務(wù)和擁抱Docker,提供了一個連貫一致的微服務(wù)平臺。開發(fā)人員用Go語言來編寫函數(shù)。
4.Fn Project
Fn Project是一個開源容器原生無服務(wù)器平臺,可以在任何地方運行它:任何云或內(nèi)部環(huán)境。它易于使用,支持各種編程語言,還具有可擴展性和高性能。
5.OpenLambda
OpenLambda是一個采用Apache許可證的無服務(wù)器計算項目,用Go編寫,基于Linux容器。OpenLambda的主要目標是讓用戶能夠探究無服務(wù)器計算的新方法。
6.Kubeless
Kubeless是一個Kubernetes原生無服務(wù)器框架,讓你可以部署少量代碼,無需擔心底層基礎(chǔ)設(shè)施。它利用Kubernetes資源來提供自動擴展、API路由、監(jiān)控和故障排除等功能。
7.OpenFaas
OpenFaas是一個用Docker和Kubernetes構(gòu)建無服務(wù)器函數(shù)的框架,為指標提供一流的支持。任何進程可以打包成函數(shù),那樣你就可以使用眾多Web事件,無需重復(fù)編寫樣板代碼。
Kubernetes是管理無服務(wù)器工作負載和微服務(wù)應(yīng)用容器的最流行平臺,使用精細的部署模型以便更快速、更輕松地處理工作負載。使用Knative Serving(https://github.com/knative/serving),你可以在Kubernetes上構(gòu)建和部署無服務(wù)器應(yīng)用程序和函數(shù),并使用Istio(https://istio.io/)來擴展和支持高級場景,比如:
- 快速部署無服務(wù)器容器
- 自動擴展和縮小到零
- 面向Istio組件的路由和網(wǎng)絡(luò)編程
- 已部署的代碼和配置的時間點快照
Knative(https://github.com/knative/)專注于在云原生平臺上構(gòu)建和運行應(yīng)用程序的常見任務(wù),用于編排源代碼到容器構(gòu)建、將服務(wù)綁定到事件生態(tài)系統(tǒng)、部署期間路由和管理流量以及自動擴展工作負載。
Istio是一個開放平臺,用于連接和保護微服務(wù)(在Envoy代理看來實際上就是服務(wù)網(wǎng)格控制平面),并旨在考慮與框架交互的多個角色,包括開發(fā)人員、操作人員和平臺提供者。
比如說,你可以使用以下代碼片段,在本地Minishift(https://github.com/minishift/minishift)平臺上使用Knative Serving部署JavaScript無服務(wù)器工作負載:
- ## 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平臺上。在Kubernetes(或Minishift)上安裝Knative、Istio和Knative Serving這些必要的基本組件。過程如下:
1.使用以下命令連接到Docker守護程序:
- (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é)論
上面這個例子表明了在哪里并如何借助Kubernetes、Knative Serving和Istio之類的云原生平臺開始開發(fā)無服務(wù)器應(yīng)用程序。
本文題目:這7個開源平臺幫你入手無服務(wù)器計算
路徑分享:http://fisionsoft.com.cn/article/dppcjjd.html


咨詢
建站咨詢
