新聞中心
讓應(yīng)用程序準(zhǔn)備好無服務(wù)器平臺(tái)的三個(gè)方法
譯文
作者:布加迪編譯 2018-06-06 09:00:16
云計(jì)算
服務(wù)器 與在更傳統(tǒng)的PaaS或IaaS環(huán)境中運(yùn)行的應(yīng)用程序相比,無服務(wù)器平臺(tái)上的應(yīng)用程序在性能、存儲(chǔ)及更多方面提出了獨(dú)特的要求。包括AWS、微軟和谷歌在內(nèi)的各大云供應(yīng)商都推出了無服務(wù)器平臺(tái),讓用戶能夠借助一系列函數(shù)(function),將簡單或者甚至高度復(fù)雜的應(yīng)用程序組合起來。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),漳州企業(yè)網(wǎng)站建設(shè),漳州品牌網(wǎng)站建設(shè),網(wǎng)站定制,漳州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,漳州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
【51CTO.com快譯】與在更傳統(tǒng)的PaaS或IaaS環(huán)境中運(yùn)行的應(yīng)用程序相比,無服務(wù)器平臺(tái)上的應(yīng)用程序在性能、存儲(chǔ)及更多方面提出了獨(dú)特的要求。
包括AWS、微軟和谷歌在內(nèi)的各大云供應(yīng)商都推出了無服務(wù)器平臺(tái),讓用戶能夠借助一系列函數(shù)(function),將簡單或者甚至高度復(fù)雜的應(yīng)用程序組合起來。但是要在這種平臺(tái)上成功地運(yùn)行云應(yīng)用程序,開發(fā)團(tuán)隊(duì)就要改進(jìn)設(shè)計(jì)流程。
開發(fā)人員在構(gòu)建無服務(wù)器應(yīng)用程序時(shí),應(yīng)遵循的幾個(gè)關(guān)鍵原則包括如下:
- 開發(fā)小而獨(dú)立的應(yīng)用程序組件。
- 實(shí)施無狀態(tài)函數(shù)。
- 規(guī)劃壽命短的臨時(shí)函數(shù)。
1. 更小而獨(dú)立的組件
本質(zhì)上,無服務(wù)器函數(shù)旨在執(zhí)行單一任務(wù)。這要求開發(fā)團(tuán)隊(duì)確保函數(shù)小巧,并圍繞這些獨(dú)立的應(yīng)用程序組件協(xié)調(diào)開發(fā)流程。
一個(gè)好的做法是,基于觸發(fā)函數(shù)的事件類型,將函數(shù)分解成各自的函數(shù)庫?;旧希_發(fā)者應(yīng)該一開始就設(shè)計(jì)每個(gè)函數(shù),以響應(yīng)一個(gè)事件。如果同一個(gè)事件觸發(fā)多個(gè)函數(shù),將它們包含在同一個(gè)函數(shù)庫中。這樣一來,開發(fā)人員就比較容易基于觸發(fā)函數(shù)的事件來識別函數(shù)。
每個(gè)單獨(dú)的函數(shù)還應(yīng)包括配置數(shù)據(jù),以確保函數(shù)在開發(fā)、測試和生產(chǎn)環(huán)境中啟動(dòng)時(shí)具有一致性。使用npm和webpack等工具來聲明和隔離每個(gè)函數(shù)內(nèi)的依賴項(xiàng)也很重要。
2. 選擇無狀態(tài)
開發(fā)團(tuán)隊(duì)?wèi)?yīng)考慮將函數(shù)實(shí)施成無狀態(tài)服務(wù),其中函數(shù)的狀態(tài)存儲(chǔ)在應(yīng)用程序本身之外。你可以配置函數(shù),以便引用作為配置數(shù)據(jù)的一部分加以管理,并與存儲(chǔ)庫中的函數(shù)一起存儲(chǔ)的數(shù)據(jù)存儲(chǔ)區(qū)和數(shù)據(jù)庫。
一些無服務(wù)器平臺(tái)提供了在函數(shù)調(diào)用之間持續(xù)存在的本地存儲(chǔ)。雖然開發(fā)人員可能忍不住將此用于更復(fù)雜的函數(shù),但該本地存儲(chǔ)并不總是在函數(shù)調(diào)用之間持續(xù)存在;就算持續(xù)存在,也可能不一致。
盡量使用支持性服務(wù),將有狀態(tài)數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫、單獨(dú)的存儲(chǔ)數(shù)據(jù)區(qū)或緩存中。支持性服務(wù)是指函數(shù)在網(wǎng)絡(luò)上作為正常操作的一部分而使用的任何外部服務(wù),包括緩存服務(wù)(比如Memcached)、數(shù)據(jù)存儲(chǔ)區(qū)(比如CouchDB)或數(shù)據(jù)庫(比如MySQL)。
3. 規(guī)劃臨時(shí)性
無服務(wù)器函數(shù)的好處之一是它們可以在幾毫秒內(nèi)啟動(dòng),相比之下,在PaaS、容器和虛擬機(jī)上運(yùn)行的大型應(yīng)用程序需要幾秒鐘甚至幾分鐘,并可以同樣迅速地停止運(yùn)行。因而很容易增加大量函數(shù)以應(yīng)對需求,或讓并行運(yùn)行的函數(shù)共同完成計(jì)算任務(wù),然后一旦計(jì)算完畢,讓它們又停止運(yùn)行。
實(shí)際上,無服務(wù)器應(yīng)用程序本質(zhì)上具有更強(qiáng)的臨時(shí)性。
這意味著,想充分獲得無服務(wù)器平臺(tái)的好處,開發(fā)人員就需要從函數(shù)的核心邏輯中刪除通常與應(yīng)用程序綁定的許多組件。開發(fā)人員應(yīng)該:
- 預(yù)熱函數(shù)所需的數(shù)據(jù)源;
- 搭建外部記錄和跟蹤基礎(chǔ)架構(gòu);以及
- 管理安全。
預(yù)熱
為了預(yù)熱函數(shù),你需要在部署之前搭建函數(shù)與數(shù)據(jù)庫進(jìn)行聯(lián)系所需的基礎(chǔ)架構(gòu)。
為此,將函數(shù)處理程序與核心邏輯分開來。就像在寒冷天氣讓汽車空轉(zhuǎn)以改善其性能,閑置事件處理程序可確保:一旦該函數(shù)調(diào)用,就能以最佳性能運(yùn)行。AWS CloudFormation和Azure Event Hubs之類的工具支持預(yù)熱過程。
外部記錄和跟蹤
函數(shù)需要能夠快速優(yōu)雅地關(guān)閉。雖然無服務(wù)器平臺(tái)包含一些內(nèi)置的本地存儲(chǔ),但配置外部日志記錄和跟蹤服務(wù)(這種服務(wù)內(nèi)置于無服務(wù)器框架本身),或者設(shè)置自定義工具,以便函數(shù)運(yùn)行時(shí),收集和存儲(chǔ)來自函數(shù)的日志數(shù)據(jù),這很重要。
AWS X-Ray和Azure Application Insights之類的工具有助于日志記錄和跟蹤。
安全
無服務(wù)器應(yīng)用程序給黑客帶來了另一條潛在的攻擊途徑。如果未落實(shí)適當(dāng)?shù)陌踩胧?,黑客很可能?huì)啟用函數(shù),訪問敏感數(shù)據(jù)。開發(fā)人員應(yīng)為各類函數(shù)做好安全設(shè)置,以便對執(zhí)行某項(xiàng)任務(wù)所需要的其他應(yīng)用程序只能進(jìn)行最低限度的訪問。
網(wǎng)頁名稱:讓應(yīng)用程序準(zhǔn)備好無服務(wù)器平臺(tái)的三個(gè)方法
文章出自:http://www.dlmjj.cn/article/cdohddp.html


咨詢
建站咨詢
