成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Kubernetes上實現無服務器化的五種方式

譯文
云計算 服務器
在Kubernetes上構建無服務器的一個主要優點是:能夠獲得對于底層平臺的更大控制權。通過Kubernetes,您可以創建一個滿足自身需求的無服務器平臺,從而讓Kubernetes運維人員來負責該基礎設施,而讓開發人員更專注于必要的代碼編寫。

【51CTO.com快譯】我們常聽說的“無服務器化”,有時也被稱為“事件驅動的計算(event-driven compute)”或被叫做“功能即服務(functions as a service,FaaS)”。其背后的思想是:為了響應各種事件,而通過動態分配資源,以調用或運行各項微服務(microservices)的功能。無服務器計算平臺能夠讓應用程序人員更專注于應用程序本身,而不再是基礎架構、及其所有的管理細節。

[[313278]]

如今,大多數云服務提供商都能夠提供相應的無服務器平臺。當然,您也可以通過兩個要素來構建自己的平臺。第一個是:Kubernetes,它是一種容器編排系統。作為一個標準化的平臺,它能夠構建可擴展的組件化應用程序。第二個是在Kubernetes中構建無服務器應用模式的任意系統。

目前,大多數Kubernetes的無服務器框架都具有以下的共同特點:

  • 能夠從本地或遠程部署到任何支持Kubernetes的環境中,包括OpenShift之類的環境。
  • 支持運行由任意語言編寫的代碼,并帶有一些常見的運行時預包裝(runtimes prepackaged)框架。
  • 通過HTTP端點、隊列消息、或其他鉤子等各類事件,來觸發代碼的執行。

在Kubernetes上構建無服務器的一個主要優點是:能夠獲得對于底層平臺的更大控制權。通過Kubernetes,您可以創建一個滿足自身需求的無服務器平臺,從而讓Kubernetes運維人員來負責該基礎設施,而讓開發人員更專注于必要的代碼編寫。

下面,我們向您介紹在Kubernetes上實現無服務器功能的五大主流項目。它們分別是:

  • Fission
  • Knative
  • Kubeless
  • OpenFaaS
  • OpenWhisk

Fission

Fission是由Kubernetes的子公司Platform 9創建和維護的。它的主要特點是:您無需構建容器,只要提供定義文件,即可創建應用程序。

Fission的安裝并不一定需要Helm chart。通常,它具有兩個版本:全面版,帶有消息隊列、以及支持日志的InfluxDB;而精簡版,只能提供基本的功能與服務。前者可以被專門部署在生產環境中,而后者僅供用戶小范圍內試用。

為了將代碼添加并部署到Fission中,您可以使用基于YAML的規范文件。同時,Fission的命令行工具能夠幫助您,創建針對不同功能和路由入口觸發點的YAML文件。另外,這些規范文件還允許您提供各種環境變量、輔助容器、卷、以及Kubernetes的容錯控制代碼

當然,Fission還會提供“工作流(workflow)”。通過安裝Helm chart,這些工作流將會從一個函數輸出并傳遞給另一個函數,哪怕兩個功能函數并非使用的是同一種編程語言。值得注意的是,為了降低系統的開銷,工作流系統默認支持諸如:整數、通用字節流等許多常見的原始二進制類型。不過,每個功能函數在進行格式轉換輸出與提交時,還是會產生一定的性能代價。

此類FaaS的一個缺點是:當我們首次調用某個功能函數時,其關聯的容器會出現明顯的延遲。因此,Fission需要通過對容器進行“預熱”,來最小化此類延遲。

此外,Fission能夠為開發人員和管理員提供的其他便利,還包括:將服務部署到無法訪問外部互聯網的集群中,按需將代碼重新熱加載(hot-reloaded)到集群里,以及記錄與回放功能函數的各項活動,從而輔助開發人員進行調試。而且,由于Fission項目擁有自由的Apache許可證,因此用戶可以免費對它進行修改。

Knative

最初是由谷歌創建的Knative,能夠協助用戶在Kubernetes中運行各種無服務器的應用。它主要關注的是,在生產環境中無服務器部署的通用模式。Knative在有效管理和利用多個Kubernetes組件方面,積累了許多豐富的專業知識。

為了管理Kubernetes,Knative除了需要路由系統和諸如Istio之類的服務網格之外,還會借用到Ambassador等其他選項。雖然,這會帶來一些額外的設置工作,但是該項目的詳細指南已經包含了各種云服務,以及諸如vanilla Kubernetes的環境說明。

通過利用或擴展現有的Kubernetes工具和功能,Knative能夠通過YAML文件和為您交付Docker容器的方式,來配置各種應用程序與函數。而對于各種定義的添加、修改或刪除則可通過kubectl命令行來實現。用戶既可以使用Grafana來獲取Knative的應用參數,又可以使用Knative自帶的autoscaler、或其他與Kubernetes兼容的scaler,來實現擴展。

不過,Knative仍處于深入開發階段,它的許多專有工具也還處于初級階段。其中,knctl是一款專門的Knative命令行工具。它可以方便您使用Kubernetes的其他工具,來管理Knative。而ko工具則可以被用于在Knative構建Go語言的應用,并削減容器的構建步驟。

Kubeless

由Bitnami創建的Kubeless,能夠幫助開發人員輕松地安裝各種常見的Web應用程序棧。Kubeless使用Kubernetes原生的各種定制化資源定義(Custom Resource Definitions),來處理各種功能函數,我們可以將它理解為Kubernetes metaphor和Kubeless各項功能之間的抽象層。

Kubeless不但能夠支持.NET、Java、Python、Node.js、PHP、Ruby等大多數編程語言,而且支持為云原生開發的Ballerina語言的運行時(runtimes)平臺。此處的運行時是指各種Docker鏡像。當然,Kubeless也擁有一種特定的包格式,可使用Dockerfiles來構建其自定義的運行時。

Kubeless的另一個便利性體現在它的CLI上。該CLI與AWS Lambda的CLI有些類似。使用它,您可以在移出AWS Lambda時,仍保留各種現有的管理腳本,而且不必學習一套全新的命令集。Kubeless還可以被作為無服務器框架的插件,實現在各種架構上構建無服務器應用。

OpenFaaS

OpenFaaS的宗旨是:讓開發人員不再為部署Docker容器而煩惱。因此,它既可以被部署到Kubernetes,也可以用于本地測試或低需求的Docker Swarm集群中。您可以使用OpenFaaS CLI來構建、推送、以及部署各種Docker鏡像到集群里,以運行相應的功能。雖然您完全可以自行發布,但是您也可以使用它預先用Python、Node.js、.NET、Ruby、Java或PHP 7編寫的現成模板,來部署應用程序。另外,OpenFaaS CLI的內置web UI還允許您創建各種新的功能,以及管理集群中的密鑰。

作為OpenFaaS的另一個版本,OpenFaaS Cloud為開發人員重新打包了OpenFaaS的各項特性,集成了GitHub和自托管版本的GitLab,提供了CI/CD,密鑰管理,HTTPS,以及向Slack的事件反饋能力。OpenFaas Cloud是一款免費的開源產品,而它的托管版本,目前也仍然可以被免費使用。

OpenWhisk

Apache OpenWhisk可謂一個通用的無服務器平臺。OpenWhisk不但支持在Kubernetes上運行容器,還支持Mesos和Docker Compose。OpenWhisk提供了針對Kubernetes的Helm charts工具,以部署各種應用。大家比較熟悉的IBM Cloud Functions就是基于OpenWhisk項目的,因此它可以直接使用OpenWhisk CLI的各種命令。

不同于其他大多數無服務器的Kubernetes框架,OpenWhisk是用Scala語言編寫而成,并非用于編寫Kubernetes和Docker的Go語言。所以您可能需要花點時間,去了解一下它的編程思想。

在應用運行時選項方面,OpenWhisk封裝了Java、Node.js、Python、Ruby、PHP和.NET。另外,它的高級語言選項還包括:Scala、Ballerina、Swift、以及Rust。由于其運行時屬于Docker容器類型,因此您很容易通過它來實現自己的應用。

OpenWhisk在部署方面的一個便捷特性是“zip actions”。它可以使用代碼包的清單文件,將某個代碼的zip包、以及多個輔助文件指向OpenWhisk。而OpenWhisk則可據此創建一項后續操作。同時,OpenWhisk CLI還可以通過工具將代碼的目錄樹轉換成一個歸檔文件。它的服務包目錄,能夠方便您將應用插入到諸如GitHub、Slack、Apache Kafka或Jira等常見的第三方產品之中。

原文標題:5 ways to do serverless on Kubernetes,作者:Serdar Yegulalp

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:未麗燕 來源: 51CTO.com
相關推薦

2020-01-16 10:47:36

服務器Kubernetes微服務

2013-09-03 10:01:13

服務器機房數據

2019-07-12 14:41:31

微服務Kubernetes容器

2018-10-16 16:20:41

UbuntuKVM服務器

2022-10-26 15:43:51

KubernetesJava無服務

2009-09-17 12:58:52

2023-07-27 07:19:24

2012-06-12 10:56:29

KVM虛擬化

2009-06-17 16:56:45

JBoss服務器JSF實現

2021-05-27 10:12:11

Java無服務器化開發

2010-08-24 13:01:37

2019-10-14 16:34:53

收藏Docker虛擬機

2017-02-27 08:44:02

云計算

2017-05-23 09:00:07

2018-10-12 10:10:58

Ubuntu服務器Oracle Virt

2023-07-06 17:00:44

服務器

2010-05-19 10:31:07

IIS服務器

2017-11-02 09:00:00

nuclioPythonGolang

2018-10-24 12:15:06

無服務器軟件方式

2022-07-28 10:07:51

亞馬遜云科技托管容器服務??Kubernetes
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品久久久 | 中文字幕精品一区二区三区精品 | 四虎最新| 亚洲视频免费在线观看 | 日韩日韩日韩日韩日韩日韩日韩 | 精品videossex高潮汇编 | 久久久久久久久精 | 美女视频一区二区三区 | 亚洲精品99 | 人人看人人爽 | 亚洲综合第一页 | 日韩在线观看精品 | 日韩在线视频免费观看 | 欧美精品乱码久久久久久按摩 | www亚洲精品 | 欧美一二三 | 久久久.com | 午夜视频在线免费观看 | 国产精品国产精品国产专区不片 | 黄色一级大片在线免费看产 | 午夜男人免费视频 | 精品视频一区二区在线观看 | 草久久久 | 欧美区在线 | av黄在线观看 | 国产精品96久久久久久 | 久久人人爽人人爽 | 免费在线观看成年人视频 | 亚洲日本视频 | 亚洲九色 | 日韩av成人在线观看 | 亚洲欧美bt | 中文字幕 亚洲一区 | 国产女人叫床高潮大片免费 | av中文字幕在线 | 九九热精品视频 | 一区二区三区免费看 | 精品一二区 | 国产91在线 | 中日 | 蜜桃视频成人 | 天天色综 |