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