摘要:最近,系統(tǒng)設(shè)計(jì)中較新穎的概念之一要屬無服務(wù)器架構(gòu)理念。無服務(wù)器的潛在上升空間想象一下,一個(gè)簡單的基于的應(yīng)用程序,處理來自客戶端的請求。
最近,系統(tǒng)設(shè)計(jì)中較新穎的概念之一要屬“無服務(wù)器架構(gòu)”理念。毫無疑問, 這有點(diǎn)夸張, 因?yàn)榇_實(shí)有服務(wù)器參與其中, 但這意味著我們可以以不同的方式看待服務(wù)器。
無服務(wù)器的潛在上升空間想象一下,一個(gè)簡單的基于Web的應(yīng)用程序,處理來自HTTP客戶端的請求。而不是讓一些程序運(yùn)行時(shí)等待請求到達(dá),然后調(diào)用一個(gè)函數(shù)來處理它們,如果我們可以按需啟動(dòng)運(yùn)行每個(gè)函數(shù),然后將其丟棄,那會(huì)怎樣?我們不需要擔(dān)心可以接受連接的運(yùn)行的服務(wù)器數(shù)量,或者在伸縮時(shí)處理復(fù)雜的配置管理系統(tǒng)以構(gòu)建應(yīng)用程序的新實(shí)例。此外,我們還將減少諸如內(nèi)存泄漏、分段錯(cuò)誤等狀態(tài)管理的常見問題。
或許最重要的一點(diǎn)是,這種按需調(diào)用函數(shù)的方法將允許我們伸縮每個(gè)函數(shù),以匹配請求數(shù)并對它們并行處理。每個(gè)“客戶”都將獲得一個(gè)專門的流程來處理他們的請求,而流程數(shù)只會(huì)受到您處理的計(jì)算能力的限制。當(dāng)與一個(gè)大型云提供商耦合,其可用的計(jì)算大大超過您的使用量,此時(shí)無服務(wù)器就有可能移除大量的復(fù)雜性,從而伸縮應(yīng)用程序。
潛在的缺點(diǎn)誠然, 在為每個(gè)請求構(gòu)建進(jìn)程時(shí), 仍存在增加的滯后時(shí)間的挑戰(zhàn)。無服務(wù)器永遠(yuǎn)不會(huì)像預(yù)先分配的進(jìn)程和內(nèi)存那樣樣快;然而,問題不在于它是否更快, 而在于它是否足夠快。從理論上講, 我們會(huì)接受無服務(wù)器的延遲, 因?yàn)槲覀儠?huì)得到回報(bào)。然而, 這一權(quán)衡需建立在對手頭的情況進(jìn)行仔細(xì)評估的基礎(chǔ)上。
使用Rancher和開源工具實(shí)現(xiàn)無服務(wù)器Docker為我們提供了很多工具來實(shí)現(xiàn)這個(gè)無服務(wù)器的概念,并在最近的DockerCon上給出了很好的演示。Rancher將這些能力最大化了。因?yàn)槲覀兊钠脚_(tái)承擔(dān)您的容器基礎(chǔ)架構(gòu)的管理,所以只需操作一個(gè)API即可添加和刪除計(jì)算容量。通過軟件定義棧的這部分能力,支持用戶實(shí)現(xiàn)全面的應(yīng)用程序自動(dòng)化。
棧中的下一層即為無服務(wù)器系統(tǒng)編寫代碼的可用框架。您可以自己編寫、或者擴(kuò)展一些中間件來處理這個(gè)問題,但有很多開源項(xiàng)目提供了工具來簡化這一過程。其中一個(gè)項(xiàng)目是Iron.io的Iron功能。我在Rancher上做了一個(gè)快速的POC,發(fā)現(xiàn)它很容易使用。使用這些compose文件可以在Rancher中快速啟動(dòng)該設(shè)置。
要使用這些文件,請將repo中的docker-compose.yml和rancher-compose.yml文件復(fù)制并粘貼到Rancher UI的“Add Stack(添加棧)”部分?;蛘邚腞ancher CLI中,簡單地運(yùn)行“rancher up”(確保設(shè)置以下環(huán)境變量:RANCHER_URL,RANCHER_ACCESS_KEY,RANCHER_SECRET_KEY)。
棧啟動(dòng)時(shí),您應(yīng)該可以在Rancher UI中看到。此外,您可以通過單擊棧中第一個(gè)項(xiàng)目(“API - lb”)旁邊的“i”圖標(biāo),查找 Iron Functions API端點(diǎn)和UI的URL。
部署完成后運(yùn)行無服務(wù)器棧
找到您的IronFunctions端點(diǎn)的URL
一旦您運(yùn)行棧,請按照Iron.io的Github repo上的“Write a Function(編寫一個(gè)函數(shù))”的說明進(jìn)行操作。您可能需要一些時(shí)間來適應(yīng),因?yàn)檫@需要您在編寫應(yīng)用程序時(shí)稍作改變。將不會(huì)有任何共享的狀態(tài)供您的函數(shù)引用,而庫之類的東西利用起來可能會(huì)又困難又昂貴。在我的例子中,我從Iron.io中選擇了一個(gè)簡單的golang函數(shù):
package main import ( "encoding/json" "fmt" "os" ) type Person struct { Name string } func main() { p := &Person{Name: "World"} json.NewDecoder(os.Stdin).Decode(p) fmt.Printf("Hello %v!", p.Name) }
下一步是將函數(shù)部署到我們在Rancher中設(shè)置的Iron函數(shù)的實(shí)例中。為了使這更容易嘗試,我編寫了一個(gè)為您執(zhí)行所有步驟的腳本。參照這個(gè)repo中的README。一旦部署了函數(shù),您應(yīng)該能夠在UI中看到它,然后就可以試著用它了:
IronFunctions的Dashboard
你的正在執(zhí)行的函數(shù)的結(jié)果
從Rancher內(nèi)部,您可以根據(jù)您的需求擴(kuò)張或縮減員工人數(shù)。Rancher會(huì)把它們放在一個(gè)主機(jī)上,并將它們連接到一個(gè)負(fù)載均衡器上。根據(jù)最佳實(shí)踐指南,您可以簡單地根據(jù)“wait_time”度量,從而使伸縮操作相對簡單。
若您也想過用這種方式構(gòu)建應(yīng)用程序,我覺得本文的教程會(huì)是一個(gè)很有用的嘗試。如果您對此有任何意見或反饋,不要猶豫,聯(lián)系我們!我們一如既往地期待聽到您的反饋!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26931.html
摘要:這相當(dāng)于在原始安裝程序中調(diào)整文件。警告我并沒有告訴這件事,因?yàn)檫@可能會(huì)嚇到他或任何其他專家。在創(chuàng)建應(yīng)用商店條目的過程中,還有兩個(gè)問題需要解決變量需要設(shè)置為確切值,這樣用戶就可以通過它連接到該實(shí)例。 Harbor Registry是VMware公司的Docker鏡像管理產(chǎn)品。相較于其他鏡像倉庫,Harbor提供身份管理功能,安全性更高,支持單個(gè)主機(jī)上的多個(gè)registry,這些功能正是很...
摘要:是當(dāng)前最流行的大數(shù)據(jù)集分析平臺(tái)之一,對于日志聚合商業(yè)智能以及機(jī)器學(xué)習(xí)等各類用例而言,都是一個(gè)很有用的工具。是在大型非結(jié)構(gòu)化數(shù)據(jù)集上運(yùn)行分析的最佳方法之一,在從日志聚合機(jī)器學(xué)習(xí)到商業(yè)智能等許多領(lǐng)域中皆被廣泛使用。 Elasticsearch是當(dāng)前最流行的大數(shù)據(jù)集分析平臺(tái)之一,對于日志聚合、商業(yè)智能以及機(jī)器學(xué)習(xí)等各類用例而言,Elasticsearch都是一個(gè)很有用的工具。Elastics...
摘要:目前我們正采取措施,通過逐步改善現(xiàn)有過程來實(shí)現(xiàn)持續(xù)部署。在這篇文章中,我們將看看如何使用和來改善此設(shè)計(jì)。通過使用,在未來我們可以輕松地將構(gòu)建和部署任務(wù)集成起來,從而得到額外的好處。月日,北京海航萬豪酒店,容器技術(shù)大會(huì)即將舉行。 在這一系列文章的第一篇中,我們分享了只用Docker時(shí)我們開發(fā)的初步的工作流,如何創(chuàng)建一個(gè)基礎(chǔ)的構(gòu)建和部署流水線。容器的部署方式不再是在登陸server的時(shí)候從...
摘要:的三大重大新聞?wù)桨嫒姘l(fā)布經(jīng)歷幾年的打磨,在前期正式發(fā)布了。發(fā)布為容器部署而生的分布式塊存儲(chǔ)項(xiàng)目是在期間的另一重大發(fā)布基于云和容器部署的分布式塊存儲(chǔ)新方式。的工程師還被邀請至的展臺(tái),向參會(huì)者介紹和。和討論大會(huì)第二天下午,在號(hào)會(huì)議室開放。 DockerCon2017已落下帷幕。展臺(tái),office hours,roadmap互動(dòng)討論,專題演講,主題Party......這里有太多精彩的瞬...
閱讀 3530·2023-04-25 14:57
閱讀 2577·2021-11-22 14:56
閱讀 2100·2021-09-29 09:45
閱讀 1781·2021-09-22 15:53
閱讀 3334·2021-08-25 09:41
閱讀 912·2019-08-29 15:22
閱讀 3310·2019-08-29 13:22
閱讀 3136·2019-08-29 13:08