問題:哪個云平臺是應(yīng)用程序開發(fā)工作的最佳選擇? 答案:這取決于它是PaaS,還是AWS Lambda。
如果你不希望維護(hù)自己的應(yīng)用基礎(chǔ)設(shè)施,而且你正在專注于云應(yīng)用開發(fā)平臺,可能會面臨一個平臺即服務(wù)選擇(如Heroku或Cloud Foundry)的困境,以及像Amazon Web Services(AWS)Lambda這樣的無服務(wù)器平臺。但這兩個選項有何不同呢? 讓我們來看看。
基本計算單元:對于PaaS,計算的基本單位是應(yīng)用程序本身,你仍然需要配置實例,盡管這些實例的維護(hù)由PaaS平臺負(fù)責(zé); 對于Lambda,操作的基本單元是功能或任務(wù)。有一些實例運行在幕后,但作為一個應(yīng)用開發(fā)人員,他們是不可見的。
任務(wù)期限:在云應(yīng)用開發(fā)平臺的世界中,PaaS適用于長時間運行的應(yīng)用程序,無論任務(wù)是否正在運行。Lambda用于在任務(wù)結(jié)束時具有確定終點的短期任務(wù)上。
必需的元數(shù)據(jù):使用PaaS以及代碼,你需要指定其他元數(shù)據(jù),如語言、框架和運行時要求。而無服務(wù)器,所需的元數(shù)據(jù)要簡單得多。例如,對于AWS Lambda,你只需要指定身份和訪問管理角色、所需的RAM和超時間隔。對于云應(yīng)用開發(fā)平臺,無服務(wù)器更簡單,而PaaS對基礎(chǔ)設(shè)施提供了更多的控制性和靈活性。
通過RESTful API進(jìn)行公共訪問:PaaS應(yīng)用程序的代碼通過REST端點或網(wǎng)頁來公開。而Lambda功能只能從受信任的來源訪問,卻無法從公共互聯(lián)網(wǎng)訪問。
定價模式:使用PaaS,你可以為應(yīng)用程序使用的計算資源或?qū)嵗顿M。使用Lambda,你只需對在應(yīng)用程序中執(zhí)行的成功的功能或任務(wù)付費。如果你的應(yīng)用程序具有不可預(yù)知的或短期的工作負(fù)載,這可能會有很大的節(jié)省。
結(jié)論
PaaS和無服務(wù)器平臺相似,它們都抽象出底層基礎(chǔ)架構(gòu),并讓你管理應(yīng)用程序的代碼。但它們的運作方式不同。如果你的應(yīng)用程序運行時間長,你需要對基礎(chǔ)架構(gòu)進(jìn)行一些控制,并且希望采用更一致的支出模式,可以選擇PaaS作為云應(yīng)用開發(fā)平臺。 如果你愿意為每個任務(wù)付費,因為你擁有的是短期和不定期的任務(wù),且希望完全無障礙地管理基礎(chǔ)設(shè)施,那么可以選擇像AWS Lambda這樣的無服務(wù)器作為云應(yīng)用開發(fā)平臺。