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