自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

nuclio:新的無服務(wù)器化超級(jí)英雄

譯文
開發(fā) 后端 開源
如今在無服務(wù)器(serverless)領(lǐng)域出現(xiàn)了一個(gè)新的超級(jí)英雄--nuclio。本文通過介紹它開源的功能,向您展示它如何幫助開發(fā)者使用各種高性能的無服務(wù)器化函數(shù)。

【51CTO.com快譯】引言:如今在無服務(wù)器(serverless)領(lǐng)域出現(xiàn)了一個(gè)新的超級(jí)英雄--nuclio。本文通過介紹它開源的功能,向您展示它如何幫助開發(fā)者使用各種高性能的無服務(wù)器化函數(shù)。

或許我們已經(jīng)習(xí)慣了這么一種所謂的“平衡”:如果某樣?xùn)|西就像無服務(wù)器那樣抽象且易用,那么它很可能是比較緩慢和不靈活的。否則的話,我們不得不放棄高性能和易用性,來滿足某些獨(dú)特的應(yīng)用需求。但是如今,nuclio的無服務(wù)器功能函數(shù),卻能讓我們?cè)诓桓蓴_既有架構(gòu)的情況下快速地創(chuàng)建和運(yùn)行代碼。nuclio不但在運(yùn)行速度上比裸機(jī)(bare-metal)代碼要快,而且具有廣泛的應(yīng)用范圍。它不僅在調(diào)試上較為簡單,更為重要的是它可以運(yùn)行在任何地方。

前一段時(shí)間,iguazio(譯者注:這是一家數(shù)據(jù)分析的服務(wù)提供商,專注于敏捷云和實(shí)時(shí)企業(yè)數(shù)據(jù)的分析)需要在它的實(shí)時(shí)數(shù)據(jù)平臺(tái)上運(yùn)用某種方法來增加自身的彈性和臨時(shí)數(shù)據(jù)的處理能力,因此我們?yōu)樗_發(fā)了一個(gè)高速FaaS層(譯者注:Functions as a Service的簡稱)。我們通過在上一版所積累的經(jīng)驗(yàn),建立了一個(gè)獨(dú)特的開源的無服務(wù)器平臺(tái),我們稱之為nuclio。它的特點(diǎn)如下:

  • 能交付出實(shí)時(shí)性能和***的并發(fā)量
  • 實(shí)現(xiàn)簡單的調(diào)試、回歸測試和多版本的CI/CD(譯者注:持續(xù)集成和持續(xù)交付)管道
  • 支持可植入的數(shù)據(jù)和各種通用API的事件源
  • 可在低功耗設(shè)備、筆記本電腦、私有云和公共云之間進(jìn)行移植

nuclio的架構(gòu)

nuclio的核心部件是功能函數(shù)處理器(由GO所編寫,譯者注:Go語言是谷歌2009發(fā)布的第二款開源編程語言)。該處理器通過抽象的接口進(jìn)行工作,它是函數(shù)的“操作系統(tǒng)”,提供對(duì)事件、數(shù)據(jù)、日志等方面的訪問。相同的功能代碼能夠被多種可植入的事件源(目前支持HTTP、Kinesis、Kafka、RabbitMQ、MQTT、NATS、iguazio的 V3IO和多種模擬器)所提供。

一個(gè)由數(shù)據(jù)綁定的接口會(huì)去訪問各種外部的數(shù)據(jù)(如:對(duì)象、文件、數(shù)據(jù)庫和各種數(shù)據(jù)流),并且負(fù)責(zé)所有的數(shù)據(jù)連接、安全性以及緩存的各個(gè)方面。我們可以編寫一個(gè)函數(shù),來使用到本地的各種文件,或通過HTTP去訪問遠(yuǎn)程的數(shù)據(jù),或是極快地橫向擴(kuò)展數(shù)據(jù)庫和基于TCP的數(shù)據(jù)流,或者在不修改代碼的情況下實(shí)現(xiàn)RDMA(譯者注:Remote Direct Memory Access的縮寫)。

nuclio處理器是實(shí)時(shí)的。訪問nuclio “操作系統(tǒng)(OS)”的事件和數(shù)據(jù)是由并行觸發(fā)、零拷貝、智能內(nèi)存/線程重用以及非阻斷IO式來實(shí)現(xiàn)的。編寫你自己的裸機(jī)函數(shù)可能會(huì)比在nuclio處理器的“生態(tài)系統(tǒng)”中運(yùn)行它要慢一些。單個(gè)nuclio函數(shù)處理器可以每秒運(yùn)行400000次函數(shù)調(diào)用(使用的是一個(gè)簡單的GO函數(shù)),而在響應(yīng)上只有0.1ms的延遲。這個(gè)指標(biāo)比大多數(shù)無服務(wù)器化/FaaS的解決方案要快100倍。基于GO的處理器通過低延遲的共享內(nèi)存去聯(lián)絡(luò)其他語言的運(yùn)行,從而訪問并獲悉上下文環(huán)境轉(zhuǎn)換時(shí)的清理,以及各種進(jìn)程的啟動(dòng)開銷。

Nuclio當(dāng)前支持四種應(yīng)用模式:同步、異步、流式和批量/交互式作業(yè)。它動(dòng)態(tài)地在進(jìn)程(the dealer)之間分配事件、數(shù)據(jù)流和作業(yè)任務(wù)。這些使得無服務(wù)器適用于那些包含厚重的后端和各種分析任務(wù)在內(nèi)的,新的工作負(fù)荷。

nuclio關(guān)注便攜性和可重用性:

  • 可工作在低功率設(shè)備、Docker、Kubernetes以及使用nuclio SDK的IDE內(nèi)
  • 在部署時(shí)將事件/數(shù)據(jù)源映射到不同函數(shù)或版本/標(biāo)簽上
  • 日志和統(tǒng)計(jì)數(shù)據(jù)可以被發(fā)往多種目標(biāo)類型,或者發(fā)送到IDE屏幕上
  • 各個(gè)功能函數(shù)的鏡像被存儲(chǔ)在一個(gè)共享庫里,并被推到多個(gè)集群/設(shè)備上

nuclio的便攜性體現(xiàn)在允許用戶在他們的筆記本上使用SDK或Docker來測試并調(diào)試各種函數(shù)。然后用戶將它們傳送并運(yùn)行在不同的云端Kubernetes集群上,或者將它們推送到多個(gè)物聯(lián)網(wǎng)設(shè)備的端點(diǎn)上。nuclio還簡化了回歸測試和診斷過程:各個(gè)函數(shù)從模擬事件處接收到反饋之后,將它們的輸出寫入結(jié)構(gòu)化的日志文件,以便與預(yù)期的結(jié)果做對(duì)比。預(yù)計(jì)將來升級(jí)到beta版后,它們還能實(shí)現(xiàn)自動(dòng)化的傳遞。

nuclio的60秒快速入門

如果您要部署一個(gè)完整的Kubernetes集群或一套服務(wù)是不需要特別進(jìn)行上手學(xué)習(xí)的。您只需要用Docker的一體化(all-in-one)版本來啟動(dòng)nuclio并進(jìn)行測試便可。請(qǐng)您跟隨如下的Linux命令進(jìn)行輸入(假設(shè)Docker已被安裝完成):

  1. docker run -p 8070:8070 -v /var/run/docker.sock:/var/run/docker.sock nuclio/playground 

然后,您可以打開瀏覽器,輸入地址HTTP://<machine-ip>:8070,接著您就可以看到nuclio的工場(playground)用戶界面(UI)了。

nuclio的工場附帶了一些內(nèi)置的示例,它們?cè)忈屃巳绾瓮ㄟ^行內(nèi)注釋或預(yù)定義事件來編寫函數(shù)、使用日志和添加相關(guān)的包套件。

如果您想要上手學(xué)習(xí)的話,可以從下拉列表中選擇一個(gè)示例,對(duì)它進(jìn)行編輯和重命名,然后予以推送式的部署。各種編譯錯(cuò)誤會(huì)在日志中顯示出來,以方便您進(jìn)一步進(jìn)行修復(fù),并重新部署。一旦完成之后,您就可以使用調(diào)用(invoke)標(biāo)簽手動(dòng)生成事件,從而對(duì)函數(shù)進(jìn)行測試。通過使用日志級(jí)別的篩選器,你還能修改日志的復(fù)雜程度和問題調(diào)試的粒度。需要注意的是:在后臺(tái),nuclio會(huì)根據(jù)你的函數(shù)去生成各種Docker的容器或Kubernetes的相關(guān)部署。

您既可以使用自己喜歡的IDE去開發(fā)nuclio的各種功能函數(shù),也可以導(dǎo)入或克隆現(xiàn)有的nuclio SDK,同時(shí)您還可以參照它們自帶的README或一些示例。您要想了解更多信息,請(qǐng)參看nuclio在Github上的文檔(https://github.com/nuclio/nuclio/blob/master/README.md)。我們?cè)谀抢镏販亓薾uclio的架構(gòu),并且提供了有關(guān)使用和CLI(譯者注:command line interface)方面的細(xì)節(jié)。當(dāng)然您也能在那里得到nuclio社區(qū)的幫助。

目前,nuclio仍處于開發(fā)階段,它支持Golang和Python語言,而它的Java和Node.js版本也即將被推出。請(qǐng)和我們一起加快對(duì)它的新功能開發(fā)吧,記得為它點(diǎn)贊。

【原標(biāo)題】 nuclio: The New Serverless Superhero,作者: Yaron Haviv 

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO.com
相關(guān)推薦

2021-05-27 10:12:11

Java無服務(wù)器化開發(fā)

2019-04-30 10:27:46

無服務(wù)器云計(jì)算安全

2018-02-24 10:15:36

無服務(wù)器容器云計(jì)算

2019-04-01 13:47:57

無服務(wù)器計(jì)算云服務(wù)

2018-01-05 14:08:08

無服務(wù)器化云計(jì)算云遷移

2022-03-18 20:54:24

無服務(wù)器計(jì)算無服務(wù)器服務(wù)器

2017-08-18 08:50:40

Azure服務(wù)器容器化

2019-04-26 10:57:26

無服務(wù)器應(yīng)用程序HTTP

2022-01-05 09:28:31

無服務(wù)器計(jì)算服務(wù)器應(yīng)用程序

2019-03-08 10:26:29

無服務(wù)器云計(jì)算德勤

2017-11-27 10:45:48

無服務(wù)器計(jì)算容器

2020-01-18 09:44:35

無服務(wù)器Kubernetes云服務(wù)

2013-09-17 10:35:42

虛擬化擴(kuò)展服務(wù)器

2022-04-12 09:00:00

無服務(wù)器云原生數(shù)據(jù)庫

2024-07-08 09:16:52

2020-10-09 07:00:00

無服務(wù)器應(yīng)用監(jiān)控架構(gòu)

2022-10-10 09:01:21

JavaQuarkus

2023-01-04 10:05:06

無服務(wù)器代碼

2017-09-13 07:23:03

2021-12-24 09:00:00

軟件開發(fā)技術(shù)經(jīng)理超級(jí)英雄
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)