云”這個(gè)詞是一個(gè)模糊不清的詞,即使人們長(zhǎng)期堅(jiān)定地使用它。這種情況就好像,當(dāng)政治家們陷入困境時(shí),他喜歡說(shuō)解決問(wèn)題的辦法常常是通過(guò)“教育”一樣。在過(guò)去的十年或更長(zhǎng)的時(shí)間里,從實(shí)習(xí)生到首席信息官,IT部門(mén)的每個(gè)人都知道,不管是什么問(wèn)題,正確答案都是通過(guò)“云”來(lái)解決的。
不過(guò),由于多年來(lái)“云”這個(gè)詞隱藏了許多復(fù)雜性和不確定性的東西,因此它的含義千差萬(wàn)別。在這個(gè)流行詞被采用之前,大型機(jī)公司就開(kāi)始銷(xiāo)售分時(shí)度假系統(tǒng)。最早的托管公司就是在Unix服務(wù)器上租用帳戶(hù)。像美國(guó)這樣的公司以?shī)蕵?lè)為幌子,在線提供類(lèi)似云的存儲(chǔ)和計(jì)算服務(wù)。
直到現(xiàn)在,這種演變還在一直持續(xù)。初始階段,云計(jì)算產(chǎn)品只是在服務(wù)器上運(yùn)行的幾十個(gè)虛擬機(jī)。即使用戶(hù)實(shí)例只是機(jī)器的一小部分,也可以假裝是root用戶(hù)。從而FTP服務(wù)器被重新命名為bucket和dropbox,服務(wù)也開(kāi)始出現(xiàn)爆炸式增長(zhǎng),“aas”成為首字母縮寫(xiě)詞創(chuàng)作者最喜歡的后綴。
這種演變?nèi)栽诶^續(xù),每一項(xiàng)新的發(fā)展都會(huì)促使云計(jì)算用戶(hù)重新思考他們想要租什么,以及他們期望用自己的錢(qián)得到什么。其中許多是重新發(fā)現(xiàn)和重新包裝的想法,還有許多是通過(guò)解決上一代解決方案產(chǎn)生的問(wèn)題的更好的解決方案。所以這些給了人們提供了一個(gè)機(jī)會(huì),那就是通過(guò)重構(gòu)云計(jì)算技術(shù),云服務(wù)器,使其煥然一新。
以下是云計(jì)算創(chuàng)新和發(fā)展的七種重要方式。
1、減小計(jì)算粒度節(jié)省成本
第一代無(wú)服務(wù)器計(jì)算具有相對(duì)較大的計(jì)算單元。例如,AWS Lambda一開(kāi)始就將所有的計(jì)算粒度四舍五入調(diào)用為100毫秒,程序員很快就發(fā)現(xiàn),他們花同樣的錢(qián)可以實(shí)現(xiàn)一個(gè)更快速、更簡(jiǎn)單的計(jì)算,或者可能是一個(gè)20倍、30倍甚至100倍大的計(jì)算。如果他們不那么細(xì)心或者利用率不高,也沒(méi)影響,實(shí)際支付的賬單是一樣的。
隨著越來(lái)越多的無(wú)服務(wù)器平臺(tái)競(jìng)爭(zhēng),最小計(jì)算粒度的大小也越來(lái)越小。AWS停止了100毫秒取整,開(kāi)始以1毫秒為增量計(jì)費(fèi)。
2、簡(jiǎn)化操作系統(tǒng)
現(xiàn)代化的操作系統(tǒng)是一臺(tái)極好的復(fù)雜機(jī)器,設(shè)計(jì)用于處理打印作業(yè)、視頻游戲、文檔編輯和大量其他任務(wù)。您是否曾經(jīng)想過(guò)為什么要在啟動(dòng)云實(shí)例時(shí)準(zhǔn)備好所有代碼來(lái)處理這些任務(wù)?
Unikernels是消除所有復(fù)雜性的一種方法。一旦代碼運(yùn)行,編譯器將構(gòu)建一個(gè)更小的程序包,該程序包將位于標(biāo)準(zhǔn)虛擬機(jī)管理程序之上。支持者指出,這樣不僅效率提高了,攻擊面還要小得多,從而更易于保護(hù)。
為什么不直接從AWS或Google獲得你的最小操作系統(tǒng)呢?Google的Container-Optimized OS和Amazon的Bottlerocket將傳統(tǒng)的虛擬化范例應(yīng)用到操作系統(tǒng)中,其中容器是虛擬操作系統(tǒng),而最小的Linux則扮演著虛擬機(jī)管理程序的角色。它們?cè)诎b只做一件小事的微服務(wù)方面十分出色,而不依賴(lài)于操作系統(tǒng)的大部分功能。
3、開(kāi)源功能
另一種簡(jiǎn)化部署到云平臺(tái)工作的方法是讓開(kāi)發(fā)人員編寫(xiě)一個(gè)簡(jiǎn)單的功能,并將所有其他工作留給云平臺(tái)本身。在過(guò)去幾年中,所有的主要云計(jì)算供應(yīng)商都展示了自己的工具,這些工具允許一個(gè)小片段代碼、一個(gè)功能來(lái)做出一些決定,并處理一些數(shù)據(jù)。這些都是很好的進(jìn)步,特別是對(duì)于將許多服務(wù)組合成一個(gè)產(chǎn)品的開(kāi)發(fā)者來(lái)說(shuō)。
唯一的缺點(diǎn)是云計(jì)算供應(yīng)商鎖定的情況。雖然這些功能可以用多種語(yǔ)言編寫(xiě),但與框架的交互是專(zhuān)有的。現(xiàn)在,有許多有趣的開(kāi)源項(xiàng)目(openwhsk、OpenFaaS、Kubeless、Knative、Fission)提供“功能即服務(wù)”。
4、Arm芯片
Arm芯片不僅僅是給Mac愛(ài)好者設(shè)計(jì)的。AWS有一系列服務(wù)器運(yùn)的帶有Arm內(nèi)核的Graviron芯片,亞洲服務(wù)器租用,保證運(yùn)行成本降低40%。當(dāng)然有一些警告。必須重新編譯可執(zhí)行文件以在Arm平臺(tái)上運(yùn)行,除非使用的是Java、JavaScript(Node.js)或PHP(Drupal、WordPress等)等更高級(jí)別的語(yǔ)言。
能否實(shí)現(xiàn)大的節(jié)省在很大程度上取決于計(jì)算和負(fù)載的性質(zhì)。一些基準(zhǔn)測(cè)試將Gravitron機(jī)器與基于Intel的原始機(jī)器放在通用范圍內(nèi)。其他人則認(rèn)為基于Arm的實(shí)例的性能稍差一些,因此更適合于運(yùn)行低代碼,這些代碼可以在不延長(zhǎng)運(yùn)行時(shí)間的情況下節(jié)省成本。
是否要更換這種呢?找到答案的唯一方法是在生產(chǎn)環(huán)境附近測(cè)試自己的工作負(fù)載,看看它們可不可以節(jié)省成本。
5、萬(wàn)能數(shù)據(jù)庫(kù)
很久以前,F(xiàn)ortran程序員看到Fortran添加了一些令人興奮的新特性,并打趣說(shuō),不知道未來(lái)的編程語(yǔ)言會(huì)是什么,但還是將它稱(chēng)為“Fortran”。今天,對(duì)于數(shù)據(jù)庫(kù)(作為服務(wù)層的原始微功能)來(lái)說(shuō),可能也是這樣的。很久以前,數(shù)據(jù)庫(kù)只能存儲(chǔ)矩形表,如今,幾乎可以做任何事情。