軟件該定義什么

作者簡介:顧炯,中國電信科技委委員,中國電信云計算實驗室、SDx聯(lián)合技術(shù)開放實驗室專家委員。就職于中國電信浙江公司。作為第一完成人,多個項目獲得信產(chǎn)部、浙江省和中國電信集團級科技進步獎。

有科學(xué)家說,我們生活的這個世界,可能就是軟件定義的,是虛幻的。就像現(xiàn)在玩的游戲,在140億年前,有個更智慧的神,游戲運行的一瞬間創(chuàng)造出宇宙,創(chuàng)造出萬物,創(chuàng)造出云計算。我們就生活在這樣軟件定義的世界。

我相信軟件可以定義一切。一直在通過軟件來改造傳統(tǒng)的IT基礎(chǔ)資源。從2011年部署vmware、KVM計算虛擬化,2013年下半年開始和中國電信北京研究院、VMware成立聯(lián)合實驗室部署測試并在現(xiàn)網(wǎng)上試商用NSX,2014年11月在業(yè)界首先商用SDS的塊存儲,在2014年底全面建成軟件定義的云計算數(shù)據(jù)中心,后來將近花了二年時間做了一個可以讓租戶自助配置、自主管理的“傻瓜式”管理平臺。這個管理平臺就是編排通過軟件定義的計算、網(wǎng)絡(luò)、存儲的基礎(chǔ)資源來實現(xiàn)應(yīng)用。經(jīng)過幾年的實踐,到現(xiàn)在積累了不少經(jīng)驗和教訓(xùn),并對軟件定義的理解逐步加深。大家也可以看看“顧炯的云世界”內(nèi)我在不同階段寫的軟件定義的文章,了解我在不同階段對軟件定義的理解。今天重點聊點最基礎(chǔ)的事情:軟件到底需要定義什么。

現(xiàn)在的時代,軟件定義的1.0時代——軟件定義成為網(wǎng)絡(luò)設(shè)備

云計算最先就是從重新定義“計算”開始的。不管是并行計算、分布式計算、還是計算虛擬化,都是通過軟件將計算資源整合或拆小。對于現(xiàn)在的絕大部分應(yīng)用來說,一臺物理服務(wù)器的計算性能已經(jīng)太大了,可以讓不同的應(yīng)用跑在同一臺服務(wù)器上。這樣就將物理服務(wù)器“分割”成一臺臺虛擬服務(wù)器,每臺虛擬機有邏輯上獨立的CPU、內(nèi)存和網(wǎng)絡(luò)資源,可以按需來安裝各種操作系統(tǒng)。這樣就打消了使用者的顧慮,對于他們來說,看到的虛擬機和以前的物理機沒有區(qū)別,就是服務(wù)器。軟件定義計算(SDC)最成功的就是通過軟件將服務(wù)器這個硬件設(shè)備重新定義成為可控大小的虛擬設(shè)備。

初期的云計算資源池里,開始就只有計算虛擬化。因為網(wǎng)絡(luò)設(shè)備和存儲設(shè)備本來就可以共享,完全可以滿足云計算資源池的需求。但是隨著資源池里業(yè)務(wù)的增多,林子大了,鳥也多了,傳統(tǒng)的網(wǎng)絡(luò)設(shè)備配置的不靈活性和存儲設(shè)備的高成本就成為新的瓶頸。軟件定義網(wǎng)絡(luò)(SDN)和軟件定義存儲(SDS)也成為一種迫切的需求。SDN的重點是虛擬出應(yīng)用/租戶可以獨立擁有、獨立配置、獨立使用的各種網(wǎng)絡(luò)設(shè)備,比如核心交換機、防火墻、負載均衡、路由器等虛擬網(wǎng)絡(luò)設(shè)備。SDS的重點是通過X86服務(wù)器和軟件定義出一個開放的、相對低成本的、安全的、不同需要的存儲設(shè)備?,F(xiàn)在大家理解的軟件定義網(wǎng)絡(luò)、軟件定義存儲還是和軟件定義計算一樣,都是通過軟件定義出虛擬的各種網(wǎng)絡(luò)設(shè)備和存儲設(shè)備。

軟件定義的本質(zhì)就是控制面和基礎(chǔ)能力面的分離。這個理念對于一個搞通信的“老人”其實就不是什么新東西,程控交換很早就將信令和語音分離,信令控制語音電路接續(xù)等,信令和語音是二個通道。計算、網(wǎng)絡(luò)和存儲的基礎(chǔ)能力分別是計算、轉(zhuǎn)發(fā)和數(shù)據(jù)存取能力,這些能力是分布部署的,部署在物理或虛擬機上。配置、管理、控制都是由集中的控制單元完成。原來我們需要對每個設(shè)備進行配置和管理,現(xiàn)在只要在集中的能力管理控制平臺上完成,再通過分權(quán)分域讓租戶自己完成。相關(guān)控制信息由管理平臺推送到相應(yīng)的能力平臺上。在這種新的模式下,只要基礎(chǔ)能力綁定配置信息就是一臺虛擬設(shè)備,比如虛擬機、虛擬路由器、虛擬存儲。而且基礎(chǔ)能力都是透明的,配置信息可能綁定任何的物理設(shè)備(載體),并在載體中按需移動,這就是遷移。其實我們一直在談虛擬機有遷移能力,實際上軟件定義后的網(wǎng)絡(luò)、存儲也有一樣的遷移能力,也具備熱遷移和冷遷移的能力。這也是軟件定義帶來的又一個優(yōu)點。但是現(xiàn)在的控制面往往獨立存在的,比如虛擬機有獨立的控制面,虛擬交換機有獨立的控制面、虛擬防火墻有獨立的控制面板、虛擬負載均衡有獨立控制面、存儲更是。這些控制面相互之間缺乏融合,他們之間的關(guān)系就是設(shè)備和設(shè)備之間的關(guān)系,這種關(guān)系和普通物理設(shè)備之間的關(guān)系完全一樣,需要靠復(fù)雜的配置來確定。

軟件定義基礎(chǔ)設(shè)備被我稱為軟件定義1.0,就是一個模仿秀。極力的想通過軟件虛擬出和物理設(shè)備一樣設(shè)備,來迎合用戶長期以來的使用習(xí)慣。但是,使用方還是必須掌握綜合的IT知識才能玩得轉(zhuǎn)。他們雖然都用上了軟件定義的虛擬設(shè)備, 還是在“憑經(jīng)驗、拍腦袋”來確定虛擬機的規(guī)格;還需要知道虛擬交換機、防火墻、路由器的配置方法;還需要了解文件存儲、對象存儲和塊存儲的區(qū)別等等。這只是將軟件定義成為虛擬設(shè)備帶來的結(jié)果,換成了虛擬設(shè)備的“湯”還是物理時代的藥,我們只改造了IT設(shè)備的“肉體”,但沒有改造他們的“靈魂”。上面提過,我們用了2年時間做了一個“編排器”來串聯(lián)各個網(wǎng)元,靜態(tài)的編排業(yè)務(wù),但根本上并沒有解決“靈魂”的問題,本質(zhì)上還是通過“傳統(tǒng)集成”的方式來實現(xiàn)應(yīng)用的架構(gòu)。虛擬設(shè)備和傳統(tǒng)物理設(shè)備編排業(yè)務(wù)的方式并沒有發(fā)生改變,物理設(shè)備時代存在的問題只是略微有所改進,遠沒有達到我們想象中的云計算帶來的好處。

當(dāng)然,通過軟件定義出虛擬設(shè)備,和物理設(shè)備相比,可以更加細分資源,做小顆粒度,能較精確的分配資源,實現(xiàn)按需分配的要求。可以改良IT基礎(chǔ)設(shè)施的提供方式,實現(xiàn)資源的快速供給、獨立配置、靈活使用,達到資源隨選的目的。

經(jīng)過3年的現(xiàn)網(wǎng)實踐和大量的業(yè)務(wù)部署,我們覺得需要改變,讓軟件定義不僅僅定義成設(shè)備,更需要定義出服務(wù),還原云計算提是供服務(wù)的本質(zhì)。

所以,馬上要進入新時代:

軟件定義的2.0時代——通過軟件定義成為基礎(chǔ)設(shè)施服務(wù)。

20年前我也是一個代碼寫的不錯的程序員。而且沒有人和我商量,工作是分配的。上班第一天就讓一個學(xué)通信的人寫程序。其實程序員根本就不需要深入了解什么是計算、網(wǎng)絡(luò)和存儲,比如CPU是怎么工作的,內(nèi)存是怎么分配的,網(wǎng)絡(luò)各種協(xié)議有什么區(qū)別,地址是怎么連接的,不同類型存儲的使用區(qū)別等等。一個優(yōu)秀的程序員只要掌握好的算法,其他的一切好像都被開發(fā)工具屏蔽了。只需要通過調(diào)用內(nèi)部各種函數(shù)就能實現(xiàn)相應(yīng)的功能。這時,開發(fā)語言就是一個服務(wù)??梢酝耆帘瘟藦?fù)雜的底層的專業(yè)知識,而讓一個程序員輕松調(diào)用各種基礎(chǔ)設(shè)施資源來實現(xiàn)應(yīng)用目的。這就是我認為的軟件定義服務(wù)。

我在“顧炯的云世界”中的《得PaaS者,得天下》的文章里提到過“基礎(chǔ)設(shè)施PaaS化”其實已經(jīng)簡單提過這個概念,通過計算“服務(wù)”、網(wǎng)絡(luò)“服務(wù)”和存儲“服務(wù)”的方式提供給使用者,來屏蔽和簡化基礎(chǔ)資源,降低使用者的門檻,達到云計算靈活、按需的目的。讓使用者通過描述性語言或圖形拖拉就能輕松實現(xiàn)應(yīng)用架構(gòu),實現(xiàn)“傻瓜式”的“靜態(tài)”應(yīng)用集成。

“傻瓜式”的應(yīng)用集成可以屏蔽基礎(chǔ)資源的專業(yè)知識和復(fù)雜性。比如,不再需要讓使用者來“拍腦袋”來確定計算資源的規(guī)格大小;不再需要知道各種網(wǎng)絡(luò)設(shè)備的配置方法和專業(yè)網(wǎng)絡(luò)知識;也不需要有專業(yè)的存儲知識就可以使用最合適的存儲設(shè)備。(存儲其實這三種基礎(chǔ)資源中讓人了解最少的,但也是最浪費的,我專門寫過“軟件定義存儲服務(wù)”的文章,就不再詳細展開。)讓應(yīng)用開發(fā)者還是回到優(yōu)化算法的強項上去。讓應(yīng)用在按需使用資源的自動“持續(xù)集成”變?yōu)榭赡?,更精確的按需分配資源。

軟件定義設(shè)備是實現(xiàn)軟件定義服務(wù)的基礎(chǔ),最終的功能還是需要虛擬設(shè)備來實現(xiàn)。對于應(yīng)用來說,計算和網(wǎng)絡(luò)是強相關(guān)的,所以首先我們要打破所謂服務(wù)器和各種網(wǎng)絡(luò)設(shè)備的界面,把計算、網(wǎng)絡(luò)各設(shè)備原先都獨立的控制器先融合在一起,使得計算和各網(wǎng)絡(luò)網(wǎng)元是融合的,是全局的,可以任意定義出來的。這樣,使用者只要通過描述性的語言或圖形拖拉就能確定一個基礎(chǔ)的應(yīng)用框架。而軟件定義存儲和計算和網(wǎng)絡(luò)關(guān)聯(lián)并不大,但和應(yīng)用直接關(guān)聯(lián),軟件定義存儲服務(wù)其實是幫助用戶選擇一個最合適的存儲。

就像去飯店吃飯,點個白斬雞,不需要知道雞是怎么養(yǎng)的,也不需要知道雞是怎么燒的一樣。只要說,我要來個白斬雞。點個有葷有素的一桌子菜,這就叫編排,當(dāng)然要編排最愛吃的和最適合的。

舉個例子來看看,比如:

“WEB服務(wù)器二臺,負荷平均分擔(dān),一個公網(wǎng)訪問地址;視頻服務(wù)器2臺,共享存儲空間,一個公網(wǎng)訪問地址;應(yīng)用服務(wù)器二臺,負荷平均分擔(dān);數(shù)據(jù)庫服務(wù)器二臺,一個共享存儲空間,HA方式。WEB服務(wù)器可以直接訪問應(yīng)用服務(wù)器和視頻服務(wù)器,應(yīng)用服務(wù)器可以直接訪問數(shù)據(jù)庫服務(wù)器。系統(tǒng)和其他應(yīng)用隔離”。系統(tǒng)可以通過軟件定義基礎(chǔ)設(shè)備,自動幫助我們創(chuàng)建出根據(jù)服務(wù)器類型不同的虛擬服務(wù)器、虛擬交換機、虛擬防火墻、虛擬負載均衡和塊存儲和對象存儲設(shè)備,并完成配置,建立起各設(shè)備間的關(guān)系,快速實現(xiàn)應(yīng)用拓撲。用戶部署了應(yīng)用后,經(jīng)過簡單測試,就可以上線運行了。用戶不需要自己拍腦袋來確定各種不同類型服務(wù)器的配置;不需要知道南北向防火墻和東西向防火墻的區(qū)別,也不需要知道怎么樣配置的;不需要了解對象存儲和塊存儲的區(qū)別,就能分配到最合適的存儲空間等等。

我們還需要建立真正的軟件定義服務(wù)的大腦。收集、利用現(xiàn)有的各種應(yīng)用運行的計算、網(wǎng)絡(luò)和存儲等基礎(chǔ)設(shè)施的數(shù)據(jù),通過大數(shù)據(jù)分析和人工智能,升級成為“AI的業(yè)務(wù)編排器”來替代原來人工配置的“業(yè)務(wù)編排器”,成為資源池內(nèi)的控制大腦。業(yè)務(wù)上線后,積累一段時間的運行數(shù)據(jù)后,經(jīng)過訓(xùn)練,就可以在AI的業(yè)務(wù)編排器的控制下進行全自動或半自動的資源動態(tài)配置和調(diào)整。大腦可以描繪出一張每個業(yè)務(wù)的運行曲線圖和相應(yīng)資源需求圖,從而動態(tài)的來確定每個事件段內(nèi)基礎(chǔ)資源的配置和拓撲,實現(xiàn)精確的資源分配和持續(xù)的系統(tǒng)集成。

我們還進一步結(jié)合物理設(shè)備的基礎(chǔ)特性構(gòu)造出一個以租戶為中心的智能維護體系,自我發(fā)現(xiàn)障礙,自我排查障礙,自我修復(fù)障礙等等。

上面的這些描述只是簡單的說明軟件定義基礎(chǔ)設(shè)施服務(wù)的理念和帶來的好處。這是一個龐大的軟件系統(tǒng)工程,在軟件定義設(shè)備的基礎(chǔ)上結(jié)合現(xiàn)有的大數(shù)據(jù)、人工智能技術(shù)已經(jīng)可以做到的,但還需要深入研究、開發(fā)和運營積累,這條路還很長。

極客網(wǎng)企業(yè)會員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責(zé)任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2018-01-09
軟件該定義什么
軟件該定義什么,作者簡介:顧炯,中國電信科技委委員,中國電信云計算實驗室、SDx聯(lián)合技術(shù)開放實驗室專家委員。就職于中

長按掃碼 閱讀全文