樊峰鑫 牛曉博
(海軍士官學校信息通信系,安徽蚌埠 233012)
云計算是當前互聯(lián)網(wǎng)技術領域的一個熱點,它的出現(xiàn)宣告了低成本提供超級計算時代的到來,作為新一代互聯(lián)網(wǎng)計算資源的基石,云計算支撐著互聯(lián)網(wǎng)幾乎所有的上層數(shù)據(jù)處理系統(tǒng),無論是大數(shù)據(jù)還是人工智能以及其它各類應用場景,都需要依托去云計算提供的基礎設施來運行,了解云計算技術已是專業(yè)人士必須了解的技術,本文以通俗易懂的語言對云計算技術及其服務形式進行分析,并對云計算和大數(shù)據(jù)、人工智能之間的關系進行了簡單闡述,以期加深讀者對于互聯(lián)網(wǎng)領域幾個熱點技術的了解。
云計算最初的目標是對資源的管理,包括計算資源、網(wǎng)絡資源以及存儲資源。
計算資源一般指程序運行時所需的CPU資源、內(nèi)存資源。
網(wǎng)絡資源主要指各種設備接入網(wǎng)絡所通過的媒介,例如線路、帶寬等。
存儲資源指存儲設備的空間,例如100G、1T、10T等。
對于一臺電腦是這個樣子,對于一個數(shù)據(jù)中心也是同樣的,可以想象一個企業(yè)有一個很大的機房,里面堆了很多服務器,可以為各種業(yè)務提供服務,數(shù)據(jù)中心的管理人員是怎么把這些設備統(tǒng)一管理起來呢?管理的目標就是要達到資源配置的靈活性,包括時間的靈活性和空間的靈活性。
時間的靈活性:想什么時候用就什么時候用,需要用的時候隨時一點便可實現(xiàn)。
空間的靈活性:想要多少就有多少,例如云盤,可以滿足隨時上傳隨時有空間可以用。
時間和空間的靈活性即我們常說的云計算的彈性,然而一開始物理設備并不能做到很好的靈活性,比如買臺服務器或計算機都需要采購的時間,如果用戶告訴某個云廠商需要開臺電腦使用某種配置的物理服務器,那么當時去采購就很難,時間靈活性非常差。另外空間靈活性也不夠,比如用戶需要一個市場上已經(jīng)找不到的配置較低的電腦,此時為了滿足用戶去買一個市場上有的配置較高的,便會造成資源和金錢的雙重浪費。那么如何解決靈活性的問題呢?
虛擬化技術[1]通俗點說就是使得不同客戶的電腦看起來是隔離的,但實際是落在一臺設備上,比如一個用戶看起來有一個10G的硬盤,另一個用戶也看著自己有一個10G的硬盤,但實際這兩個10G是落在同一個很大的存儲上的。實現(xiàn)虛擬化比較早的一家公司就是VMware,它可以實現(xiàn)計算、網(wǎng)絡、存儲的虛擬化。虛擬化軟件并沒有完全解決靈活性的問題,因為它一般創(chuàng)建一臺虛擬的電腦,是需要人工指定這臺虛擬電腦放在哪臺物理機上的,這一過程還需要比較復雜的人工配置,所以虛擬化軟件所能管理的物理機的集群規(guī)模并不大,一般在十幾臺、幾十臺。當用戶數(shù)量越來越多時,這樣集群的規(guī)模便遠遠達不到想要多少有多少的需求,所以隨著集群規(guī)模的不斷增大,甚至達到幾十上百萬臺時,這么多機器如果靠人工去進行虛擬化電腦的配置,便幾乎是不可能的事了,于是人們發(fā)明了各種各樣的算法來做這個事。這類算法叫做調(diào)度(Scheduler)。
調(diào)度[2]是指在特定的資源環(huán)境下,根據(jù)一定的資源使用規(guī)則,在不同的資源使用者之間進行資源調(diào)整的過程。通俗一點說,調(diào)度就是指幾千臺機器都在一個池子里,根據(jù)用戶對虛擬機配置的具體需求,調(diào)度中心會自動在大池子里找一個能夠滿足用戶需求的地方,用戶就直接可以用了,我們稱之為池化或者云化,虛擬化和云化技術的結(jié)合才可稱為云計算。此前階段都只能稱為虛擬化。
根據(jù)云計算服務對象范圍的不同,云計算主要有兩種部署模式[3],一種是私有云,一種是公有云。
私有云:私有云指為一個企業(yè)或組織提供專用的云環(huán)境,通俗點說就是云廠商根據(jù)用戶需求將虛擬化和云化技術部署在用戶自己數(shù)據(jù)中心里面,私有云的使用對象通常為政府機構(gòu)、金融機構(gòu)以及其他希望對環(huán)境擁有控制權的中大型組織。
公有云:云供應商將虛擬化及云化技術部署在自己的數(shù)據(jù)中心里為用戶提供服務,用戶可以付費進行“租用”,公有云中,所有的“租戶”共享相同的硬件、網(wǎng)絡和存儲資源。常見的公有云供應商有阿里云、騰訊云等。
云計算服務是分層的,大概分為:基礎設施層、平臺層、軟件層,即我們通常聽到的IaaS、PaaS、SaaS,這個三層的分法主要是從用戶體檢的角度出發(fā)的。
Infrastructure-as-a-Service(基礎設施即服務),用戶無需花費高額成本購買基礎設施,可通過租用方式使用云服務商提供的基礎設施,如服務器、存儲資源、網(wǎng)絡資源,后期自己安裝操作系統(tǒng)、管理應用程序。這種模式下用戶節(jié)省了對基礎設施的高成本投入。以解決住房需求為例,IaaS就相當于直接購買毛坯房,節(jié)省了蓋房子的過程。IaaS主要的用戶是系統(tǒng)管理員。
IaaS云有以下七個基本功能[4]:
(1)資源抽象:使用資源抽象的方法(如資源池)更好地調(diào)度和管理物理資源。
(2)資源監(jiān)控:通過對資源的監(jiān)控,能夠保證基礎設施高效率的運行。
(3)負載管理:通過負載管理,不僅能使部署在基礎設施上的應用更好地應對突發(fā)情況,而且還能更好地利用系統(tǒng)資源。
(4)數(shù)據(jù)管理:對于云計算而言,數(shù)據(jù)的完整性、可靠性和可管理性是對IaaS的基本要求。
(5)資源部署:也就是將整個資源從創(chuàng)建到使用的流程自動化。
(6)安全管理:IaaS的安全管理的主要目標是保證基礎設施和其提供的資源能被合法地訪問和使用。
(7)計費管理:通過細致的計費管理能使用戶更靈活地使用資源。
Platform-as-a-Service(平臺即服務),云服務商提供基礎設施服務的同時也提供平臺軟件層,包括操作系統(tǒng)、數(shù)據(jù)庫、中間件和運行庫,這種模式下用戶只需負責管理應用軟件即可,而且不論是在部署或者在運行的時候,用戶都無需為服務器、操作系統(tǒng)、網(wǎng)絡和存儲等資源的管理操心,這些繁瑣的工作都由PaaS供應商負責處理。這就好比直接購買了簡裝房,只需在此基礎上完善房子的功能即可。PaaS主要的用戶是開發(fā)人員。
為了支撐整個PaaS平臺的運行,供應商需要提供以下四大功能:
(1)友好的開發(fā)環(huán)境:通過提供SDK和IDE等工具讓用戶能在本地進行應用的開發(fā)和測試。
(2)豐富的服務:PaaS平臺會以API的形式將各種各樣的服務提供給上層的應用。
(3)自動的資源調(diào)度:也就是可伸縮性,不僅能優(yōu)化系統(tǒng)資源,而且能自動調(diào)整資源來幫助運行于其上的應用更好地應對突發(fā)流量。
(4)精細的管理和監(jiān)控:通過PaaS能夠提供應用層的管理和監(jiān)控,比如,能夠觀察應用運行的情況和具體數(shù)值(如吞吐量、反映時間)來更好地衡量應用的運行狀態(tài),還有能夠通過精確計量應用使用所消耗的資源來更好地計費。
Software-as-a-Service(軟件即服務),云服務商將應用軟件統(tǒng)一部署在自己的服務器上,用戶只要接上網(wǎng)絡通過瀏覽器就能直接使用在云端上運行的應用,而不需要顧慮類似安裝等瑣事,并且免去初期高昂的軟硬件投入。就像購買了精裝房一樣,直接拎包入住即可。SaaS主要面對的是普通的用戶。
要實現(xiàn)SaaS服務,供應商需完成以下四個方面的功能:
(1)隨時隨地訪問:在任何時候或者任何地點,只要接上網(wǎng)絡,用戶就能訪問SaaS服務。
(2)支持公開協(xié)議:通過支持公開協(xié)議(如HTML等),能夠方便用戶使用。
(3)安全保障:SaaS服務商需要提供一定的安全機制,不僅要使存儲在云端的用戶數(shù)據(jù)絕對安全,而且也要在客戶端實施一定的安全機制來保護用戶。
(4)多住戶機制:通過多住戶機制,不僅能更經(jīng)濟地支撐龐大的用戶規(guī)模,而且能提供一定的可定制性以滿足用戶的特殊需求。
說起云計算,總是不可避免地聯(lián)想到大數(shù)據(jù)與人工智能,它們是當下互聯(lián)網(wǎng)技術領域最熱門的幾個技術,它們之間相互促進相互發(fā)展,這里用比較淺顯的語言描述三者間的關系方便大家的理解。
云計算是將服務器、存儲器、存儲設備以及網(wǎng)絡資源等打包成云端,為客戶提供相關的按使用量付費的模式。
大數(shù)據(jù)則是將結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)形成的所有數(shù)據(jù)整合起來,用以發(fā)現(xiàn)數(shù)據(jù)背后相關關系的信息資產(chǎn)。
人工智能(AI)概念比較廣泛,一言蔽之就是讓計算機或機器能夠模擬人類思考和智能行為的一種理論方法和技術。
這三個概念中最早提出的應該是人工智能的概念,這一詞最早是在1956年的一次國際會議上提出。但在往后的40年里,人工智能的研究一直沒有很大的突破,其原因是當時的硬件和數(shù)據(jù)量的限制。在這里就要引入一個新的名詞,叫做機器學習。機器學習是人工智能的核心,使計算機具有智能的根本途徑,它主要使用歸納的方法。所謂歸納,可以理解為不斷輸入數(shù)據(jù),然后從輸入的大量數(shù)據(jù)中學習出規(guī)矩,最終得到一個輸出。
實現(xiàn)人工智能需要大量的數(shù)據(jù),上世紀90年代隨著個人計算機的普及,數(shù)據(jù)的收集和存儲變得越來越容易,直到如今,人類已經(jīng)進入大數(shù)據(jù)時代。在大數(shù)據(jù)時代如果只靠自己的個人計算機去計算這個龐大的數(shù)據(jù),根本無法實現(xiàn),這時云計算做為一種基礎設施,全面支撐大數(shù)據(jù)技術,通過服務商提供的大量服務器進行“核爆炸”式的計算并將結(jié)果返回。
用層次結(jié)構(gòu)來描述三者間關系,云計算為底層,為產(chǎn)品提供硬件服務的支撐;大數(shù)據(jù)位于第二層,對數(shù)據(jù)進行分析,讓數(shù)據(jù)產(chǎn)生價值;最頂層是人工智能,根據(jù)大批量的數(shù)據(jù),實現(xiàn)機器的智能化決策。三者之間相輔相成,互相促進,并將深刻改變我們的世界。
如今我們正處于信息科技和信息化井噴式發(fā)展的時代,云計算、大數(shù)據(jù)、人工智能作為時代熱門話題,它們之間不是獨立存在的,隨著技術的不斷延伸發(fā)展,三者之間的邊界越來越模糊,這是發(fā)展與需求產(chǎn)生的自然趨勢,對于我們來說,只有弄清楚它們的本質(zhì),抓住機遇,跟上趨勢,創(chuàng)新發(fā)展,才能在高科技的發(fā)展大潮中立于不敗之地。