導(dǎo)讀:云”是人們一直在使用的定義并不明確的術(shù)語之一。
沒有服務(wù)器可以進行計算嗎?還是沒有代碼也能進行編程?人們需要在采用不斷發(fā)展的云計算技術(shù)中思考這些創(chuàng)新。
“云”是人們一直在使用的定義并不明確的術(shù)語之一。就像政客在陷入困境時喜歡說解決問題的方法更多的是“教育”一樣。在過去的十年或更長的時間里,從實習(xí)生到首席信息官,IT部門的每個人都知道,解決任何問題的正確答案都是“云”。
但是,這個術(shù)語掩蓋了很多復(fù)雜性和混亂性,因為其含義千差萬別。在這個流行術(shù)語被采用之前,大型機提供商開始銷售分時系統(tǒng),托管公司在Unix服務(wù)器上租用帳戶。像美國在線這樣的公司以娛樂為背景,提供類似云計算的存儲和計算服務(wù)。
即使到現(xiàn)在,這種演變?nèi)栽诶^續(xù)。云計算最早的產(chǎn)品只是在服務(wù)器上運行的數(shù)十個虛擬機。即使用戶實例只占機器的一小部分,也可以假定是root用戶。FTP服務(wù)器后來被重命名為bucket和dropbox。從那時起,其衍生的服務(wù)開始爆炸式增長,“aaS”(即服務(wù))已經(jīng)成為首字母縮略詞創(chuàng)建者最喜歡采用的后綴。
這一演變?nèi)栽诶^續(xù),每一項新的發(fā)展都促使云計算用戶重新考慮他們希望購買和租賃的東西。其中許多是重新發(fā)現(xiàn)并重新包裝的想法。許多都是解決上一代解決方案產(chǎn)生的問題的更智能的解決方案。所有這些都給人們提供了重新構(gòu)建云計算的機會,希望讓它煥然一新。
以下是云計算發(fā)展和變化的七種重要方式:
1.節(jié)省成本的計算粒度變小可以節(jié)省成本
第一代無服務(wù)器計算具有相對較大的計算單元。例如,AWS Lambda一開始就把所有的計算粒度統(tǒng)一為100毫秒,程序員很快就發(fā)現(xiàn),他們花同樣的費用可以實現(xiàn)更加快速的計算,或者是實現(xiàn)20倍、30倍甚至100倍的計算量。如果他們利用效率不高,那也沒關(guān)系。支付的賬單是一樣的。
隨著越來越多的無服務(wù)器平臺參與競爭,計算粒度變得越來越小。AWS公司停止以100ms計費,最終以1ms的增量開始計費。
2.簡化操作系統(tǒng)運營
現(xiàn)代化的操作系統(tǒng)是一種復(fù)雜的系統(tǒng),可以處理打印任務(wù)、視頻游戲、文檔編輯以及無數(shù)的任務(wù)。人們是否想過為什么要在啟動云實例時準備好所有代碼來處理這些任務(wù)?
Unikernels是消除這些復(fù)雜性的一種方法。一旦你的代碼運行,編譯器將構(gòu)建一個規(guī)模更小的程序包,該程序包將駐留在標準虛擬機管理程序之上。支持者指出,這不僅可以提高效率,攻擊面也要小得多,從而更易于保護。
為什么不直接從AWS或Google獲得最小的操作系統(tǒng)? 谷歌的Container-Optimized OS和亞馬遜的Bottlerocket將傳統(tǒng)的虛擬化范例應(yīng)用于操作系統(tǒng),其中容器由虛擬操作系統(tǒng)(OS)和更小的Linux充當虛擬機管理程序。它們非常適合用于封裝只做一件事的微服務(wù),而無需依賴操作系統(tǒng)的許多功能。
3.開源功能
簡化部署到云平臺的工作的另一種方法是讓開發(fā)人員編寫簡單的功能,并將所有其他工作留給云平臺本身。在過去的幾年中,所有主要的云計算提供商都推出了自己的工具,這些工具允許一小段代碼、一個功能來做出一些決策,并處理一些數(shù)據(jù)。這些都是了不起的進步,特別是對于將許多服務(wù)組合到一個產(chǎn)品中的開發(fā)人員來說。
唯一的缺點是可能面臨云計算供應(yīng)商鎖定的情況。盡管可以采用多種語言編寫功能,但與框架的交互是專有的?,F(xiàn)在,有許多有趣的開源項目(OpenWhisk、OpenFaaS、Kubeless、Knative、Fission)提供“功能即服務(wù)”。
4.Arm芯片
Arm芯片不僅僅是為Mac設(shè)備愛好者準備的。亞馬遜公司有一些服務(wù)器運行帶有Arm內(nèi)核的Gravitron芯片,可以將成本降低40%。當然還有一些警告。除非使用Java、JavaScript(Node.js)或PHP(Drupal,WordPress等)等高級語言進行工作,否則必須重新編譯可執(zhí)行文件才能在Arm平臺上運行。
如果希望知道是否會節(jié)省成本,這在很大程度上取決于計算的性質(zhì)和負載。某些基準測試將Gravitron機器與基于Intel的機器置于通用范圍內(nèi)。其他人則認為基于Arm的實例的功能稍差一些,因此更適合運行使用較少的代碼,這些代碼可以節(jié)省成本,而無需運行更長的時間。
那么應(yīng)該進行切換嗎?找出答案的唯一方法是在生產(chǎn)環(huán)境附近測試自己的工作負載,以查看它們是否可以節(jié)省成本。
5.萬能的數(shù)據(jù)庫
很久以前,F(xiàn)ortran程序員看到Fortran逐漸添加一些令人興奮的新功能,并打趣說不知道將來的編程語言是什么,但是仍將稱之為“Fortran”。如今對于數(shù)據(jù)庫也可以說是這樣,其原始的微功能作為服務(wù)層。很久以前,數(shù)據(jù)庫只能存儲矩形表,而現(xiàn)在幾乎可以做所有事情。
開發(fā)人員開始注意到其中有多少功能。例如,PostgreSQL 11具有自己的JIT來編譯查詢,并且其嵌入式功能現(xiàn)在具有提交或回滾事務(wù)的能力。該數(shù)據(jù)庫使用JSON,因此在不超出數(shù)據(jù)庫范圍的情況下構(gòu)建完整的微服務(wù)比以往任何時候都更加容易。
其他數(shù)據(jù)庫(例如Azure Cosmos DB)結(jié)合了SQL、MongoDB、Cassandra和圖形API。還有其他諸如Google的Firebase這樣的機會,既可以存儲數(shù)據(jù),又可以通過復(fù)制將其交付給客戶端,他們將分配與存儲合并。
6.辦公應(yīng)用程序的新角色
充滿數(shù)字、字母和公式的網(wǎng)格是Bean計數(shù)器和管理器(而不是編碼器)的通用語言,但它們作為一種智能文件格式和一種向大眾開放云計算的方式而得到越來越多的應(yīng)用?!盁o代碼”的理念使程序員擺脫了這樣的循環(huán),并直接使用將電子表格轉(zhuǎn)換為應(yīng)用程序的工具來接觸宏程序。例如谷歌公司宣稱,一家用戶使用AppSheet構(gòu)建和部署了35種具有“無編碼技能”的商業(yè)應(yīng)用程序。
不只是電子表格,辦公應(yīng)用程序套件現(xiàn)在可用于運行業(yè)務(wù)的越來越多的自定義應(yīng)用程序。一些程序員并沒有將應(yīng)用程序構(gòu)建和部署到獨立實例中,而是在構(gòu)建與Google或Microsoft University中的文字處理器、幻燈片演示生成器和其他通用工具集成的應(yīng)用程序,這會讓企業(yè)中的每個員工都能輕松地處理文檔和電子郵件。
7.邊緣計算
云計算將繼續(xù)發(fā)展,將越來越多的計算能力推到網(wǎng)絡(luò)的邊緣。像Cloudflare這樣的公司現(xiàn)在提供智能計算服務(wù)。Cloudflare Workers將在其200多個數(shù)據(jù)中心盡可能靠近用戶的位置運行JavaScript、Rust、C或C ++代碼。
亞馬遜的AWS for Edge服務(wù)提供了類似的機會,可以將代碼移到更接近用戶的位置。那些使用Amazon SeageMaker機器學(xué)習(xí)服務(wù)的人可以將它們從主要數(shù)據(jù)中心推到網(wǎng)絡(luò)邊緣。亞馬遜公司現(xiàn)在強調(diào)要與新興的5G網(wǎng)絡(luò)連接,毫無疑問,消費者將越來越多地采用移動設(shè)備瀏覽互聯(lián)網(wǎng)。
微軟的Azure IoT Edge旨在針對爆炸式增長的依賴于云計算功能的設(shè)備。例如,Custom Vision為新興的攝像機網(wǎng)絡(luò)帶來了邊緣計算。
隨著云計算的增長和廣泛應(yīng)用,正在開發(fā)大量的示例。云計算曾經(jīng)僅限于可租用實例的集中式數(shù)據(jù)中心,但現(xiàn)在正在遷移到網(wǎng)絡(luò)中。在此之后是什么?物聯(lián)網(wǎng)?智能烤箱?還是汽車的智能設(shè)備?
總之,只要租賃比構(gòu)建更加經(jīng)濟有效,那么云計算就將被任何需要電腦和數(shù)據(jù)存儲來推動業(yè)務(wù)發(fā)展的人員所接受。