91精品人妻互换日韩精品久久影视|又粗又大的网站激情文学制服91|亚州A∨无码片中文字慕鲁丝片区|jizz中国无码91麻豆精品福利|午夜成人AA婷婷五月天精品|素人AV在线国产高清不卡片|尤物精品视频影院91日韩|亚洲精品18国产精品闷骚

您當(dāng)前位置:首頁 > 新聞頻道 > 技術(shù)動態(tài) > 正文
成果介紹: 一種基于微服務(wù)架構(gòu)的新型云件PaaS平臺

   作者:田英

  隨著云計算技術(shù)的蓬勃發(fā)展,云計算逐漸深入到了人們的生活中,云計算技術(shù)不僅促進(jìn)了計算機(jī)軟硬件及體系結(jié)構(gòu)的發(fā)展,也引發(fā)了軟件使用方式上的變革。同時,IT資源服務(wù)化的思想日益普及,呈現(xiàn)出一切皆服務(wù)(X asa servlce,XaaS)的趨勢,服務(wù)成為了云計算的本質(zhì)和核心概念,以IaaS、PaaS和SaaS為代表的服務(wù)模型已經(jīng)得到了廣泛的使用和實(shí)踐。隨著虛擬化和容器技術(shù)發(fā)展的不斷深入,以Docker技術(shù)為代表的容器化微服務(wù)技術(shù)逐漸滲透到云計算的各個層面,系統(tǒng)從開發(fā)、部署到運(yùn)維整個過程都可以微服務(wù)化。微服務(wù)架構(gòu)( microservicesarchitecture)成為一種架構(gòu)風(fēng)格和設(shè)計模式。該模式提倡將應(yīng)用分割成一系列細(xì)小的服務(wù),每個服務(wù)專注于單一業(yè)務(wù)功能,運(yùn)行于獨(dú)立的進(jìn)程中,進(jìn)而使得服務(wù)之間邊界清晰,并可以采用輕量級通信機(jī)制(如HTTP/REST)相互溝通、配合來實(shí)現(xiàn)完整的應(yīng)用,滿足業(yè)務(wù)和用戶的需求。微服務(wù)作為架構(gòu)模式的變革,其誕生絕非偶然,它是當(dāng)傳統(tǒng)服務(wù)架構(gòu)在互聯(lián)網(wǎng)時代遭遇挑戰(zhàn)時,人們對于架構(gòu)模式、開發(fā)和運(yùn)維方法論的一種反思。

    云計算技術(shù)和一切皆服務(wù)的理念改變了人們對傳統(tǒng)軟件的認(rèn)識,利用云計算技術(shù),傳統(tǒng)軟件可以很輕松實(shí)現(xiàn)服務(wù)化。隨著網(wǎng)絡(luò)環(huán)境的不斷優(yōu)化,傳統(tǒng)軟件逐漸向云計算平臺進(jìn)行遷移。而對用戶來說,瀏覽器是通向互聯(lián)網(wǎng)世界的主要入口,并且瀏覽器技術(shù)發(fā)展也在不斷深入,從簡單的HTML文件解析到新興起的HTML 5、CSS 3和Web OS等技術(shù),為軟件在云端遷移和Web化的訪問方式提供了堅(jiān)實(shí)的基礎(chǔ)。通過瀏覽器方式獲取軟件服務(wù)將是未來軟件發(fā)展的重要方向,軟件的Web化和云化也將成為未來軟件的重要形態(tài)。

  綜上所述,利用云計算提供的微服務(wù)環(huán)境構(gòu)建軟件的開發(fā)、部署和運(yùn)行環(huán)境,同時利用先進(jìn)的Web技術(shù)實(shí)現(xiàn)軟件的Web化將是云計算環(huán)境下軟件的發(fā)展方向和趨勢。在當(dāng)前云計算環(huán)境下,軟件將不再是一個簡單的代碼實(shí)體,而是由一系列服務(wù)構(gòu)成的服務(wù)綜合體,通過網(wǎng)絡(luò)交付給用戶,本文將這樣的軟件形態(tài)稱為云件( Cloudware),它將是未來云環(huán)境下軟件的主要形態(tài)。

    為了更好地促進(jìn)云件的發(fā)展,本文提出了一種新的云件PaaS平臺,該平臺基于微服務(wù)架構(gòu)和容器技術(shù),可以直接將傳統(tǒng)軟件部署到云端運(yùn)行,并通過瀏覽器的方式提供給終端用戶。

1云件——云環(huán)境下的新型軟件形態(tài)

    隨著云計算技術(shù)的不斷成熟,以Amazon EC2、GoogleApp Engine等為代表的云服務(wù)平臺得到蓬勃發(fā)展,越來越多的企業(yè)和個人通過使用云計算服務(wù)來降低成本。目前的云計算服務(wù)很大一部分是面向開發(fā)者的,而云計算服務(wù)又以IaaS和PaaS為主,SaaS層的用戶只能通過使用運(yùn)行在云計算平臺上的軟件間接地享受云服務(wù)。隨著微服務(wù)、軟件云化等概念的引入,云環(huán)境下的軟件不再是一個簡單的代碼實(shí)體,而是由一系列微服務(wù)構(gòu)成的服務(wù)綜合體,通過互聯(lián)網(wǎng)進(jìn)行交付,體現(xiàn)為一種更加契合云環(huán)境的軟件形態(tài),即云件。

    云件并不是一個軟件,而是一種云環(huán)境下的軟件形態(tài)。傳統(tǒng)的軟件依賴于操作系統(tǒng)以及安裝于操作系統(tǒng)上的庫和中間件,然而隨著云計算和網(wǎng)絡(luò)的普及,軟件應(yīng)該以更加符合當(dāng)前環(huán)境的形式去開發(fā)和部署,軟件的整個生命流程也會隨著云計算帶來的變革而變革。接下來詳細(xì)對云件的開發(fā)模式、部署模式和運(yùn)行模式分別進(jìn)行闡述。

1.1云件的開發(fā)模式

    在傳統(tǒng)軟件開發(fā)過程中,開發(fā)人員需要自己構(gòu)建相應(yīng)的軟件開發(fā)環(huán)境,如IDE和編譯工具鏈等。隨著Git和任務(wù)管理系統(tǒng)的興起,云件的開發(fā)應(yīng)當(dāng)體現(xiàn)為云端開發(fā)過程,利用云端IDE和編譯微服務(wù)完成軟件的整個開發(fā)任務(wù),同時利用云端協(xié)作軟件進(jìn)行任務(wù)追蹤,從代碼編寫和軟件工程角度對軟件開發(fā)過程進(jìn)行云化。

    同時,云件的開發(fā)應(yīng)當(dāng)遵循微服務(wù)的理念,將軟件盡可能分為不同的構(gòu)件,分別以服務(wù)的形式封裝,通過相應(yīng)的API接口進(jìn)行復(fù)用,實(shí)現(xiàn)軟件模塊的解耦.同時方便測試過程的持續(xù)集成。尤其在團(tuán)隊(duì)開發(fā)軟件時,類似Docker這樣的容器技術(shù)可以提供可復(fù)用的運(yùn)行環(huán)境、靈活的資源配置和便捷的集成測試方法,在云件開發(fā)過程中,對功能的調(diào)用不再像傳統(tǒng)軟件那樣對操作系統(tǒng)庫的調(diào)用,而是對微服務(wù)的調(diào)用,云件的開發(fā)應(yīng)當(dāng)以面向微服務(wù)構(gòu)件的形式進(jìn)行,而不依賴于特定的操怍系統(tǒng)和硬件資源。

1.2云件的部署模式

    云件的部署其實(shí)就是微服務(wù)的部署。目前以Docker為代表的微服務(wù)容器技術(shù)發(fā)展越來越成熟。Docker提供了一系列容器部署工具,為開發(fā)者提供了一種新穎、便捷的軟件集成測試與部署功能。

    云件的部署應(yīng)當(dāng)以服務(wù)發(fā)布的形式體現(xiàn),不同的構(gòu)件可以單獨(dú)部署,也可以集成部署,提供向下兼容的服務(wù)部署形式,保證云件的不中斷運(yùn)行,這也是云服務(wù)的基本需求。

1.3云件的運(yùn)行模式

    云件在設(shè)計時就以微服務(wù)的形式體現(xiàn),云件的運(yùn)行其實(shí)就是微服務(wù)的集成運(yùn)行。云件與傳統(tǒng)軟件的不同點(diǎn)在于云件主體運(yùn)行在云端,而傳統(tǒng)軟件主體運(yùn)行在客戶端。那么對云件來說,云端的服務(wù)如何與用戶交互則是云件要解決的核心問題,尤其是桌面軟件這樣的交互式軟件。

    由于云件的主體運(yùn)行在云端,計算和存儲都發(fā)生在云端服務(wù)器上,那么對客戶端來說,只需要一個交互式的服務(wù)環(huán)境即可。近年來,軟件的Web化是軟件演化的一種趨勢,云件可以將瀏覽器視為提供交互服務(wù)的構(gòu)件,只不過其運(yùn)行在客戶端。這樣,客戶端就完全只依賴于瀏覽器,不需要安裝如傳統(tǒng)軟件依賴的GL、JDK和.NET等類似的運(yùn)行庫,也就是一種客戶端無依賴( client independent)的設(shè)計方法。

    瀏覽器的交互過程本質(zhì)上是一個輸入輸出的可視化過程,只需要將客戶端的鼠標(biāo)和鍵盤等輸入發(fā)送到云端服務(wù)器,將處理后的結(jié)果返回到客戶端進(jìn)行渲染,就可以實(shí)現(xiàn)類似本地軟件的使用效果,具體交互過程如圖l所示。

    云端服務(wù)主要由3個獨(dú)立的微服務(wù)構(gòu)成:X broker、Xserver和Application。Application也可以由多個另外的微服務(wù)構(gòu)成。Applic,ation和Xserver通過Xll協(xié)議進(jìn)行通信,將渲染請求發(fā)送給Xserver,Xserver將鼠標(biāo)鍵盤事件等發(fā)送給Application,Xserver保持著Application的窗口狀態(tài),通過X broker代理同步到用戶端的瀏覽器上,實(shí)現(xiàn)瀏覽器和Xserver的事件同步和渲染同步。這樣,用戶就可以像使用本地軟件一樣使用云件,瀏覽器作為窗口管理器,而且隨時隨地都能恢復(fù)到上次的工作運(yùn)行狀態(tài),而不依賴于客戶端的操作系統(tǒng)和運(yùn)行狀態(tài)。

2基于微服務(wù)架構(gòu)的云件PaaS平臺

    在明確了云件的概念后,為了驗(yàn)證云件的可實(shí)施性,本文開發(fā)T-套云件部署和應(yīng)用的PaaS平臺:CloudwareHub。它是云件開發(fā)、測試、部署和運(yùn)維的集成平臺,既面向開發(fā)者提供云件開發(fā)工具和云件運(yùn)行環(huán)境,也面向用戶提供云件服務(wù)。目前,CloudwareHub實(shí)現(xiàn)了主要的原型功能,以驗(yàn)證云件模式的可用性,并提供常用的辦公云件和開發(fā)工具云件等服務(wù)。

2.1云件PaaS平臺系統(tǒng)的架構(gòu)

    CloudwareHub云件PaaS平臺的系統(tǒng)整體架構(gòu)如圖2所示。

從圖2中可以看到,CloudwareHub軟件層設(shè)計主要由3個部分組成:Container Service、X Service和WebService。Container Service主要提供應(yīng)用程序的運(yùn)行環(huán)境服務(wù),每個應(yīng)用程序都封裝為Docker鏡像,在ContainerPool中分配一定的內(nèi)存和存儲空間,由C broker管理各個容器的生命周期,并與X Service通信;X Service提供Xserver服務(wù),向下通過Xll協(xié)議與Container Service通信,向上以TCP協(xié)議與Web Service通信,Xserver的生命周期由X broker管理;Web Service提供Web方式的交互和數(shù)據(jù)服務(wù),其本身可以分為Frontend Web和BackendAPI兩個獨(dú)立模塊,Backend API提供Restful形式的接口,由Frontend Web調(diào)用,實(shí)際的數(shù)據(jù)則通過Backend API和數(shù)據(jù)庫的交互完成。另外,由于應(yīng)用程序的交互是實(shí)時有狀態(tài)的,而HTTP協(xié)議是無狀態(tài)的,Web Service中的WebSocket Server實(shí)現(xiàn)了從瀏覽器到X Service的實(shí)時通信。

2.2云件PaaS平臺的控制平面和數(shù)據(jù)平面

    基于上述CloudwareHub軟件結(jié)構(gòu),CloudwareHub的各服務(wù)之間的通信過程可以分為控制平面和數(shù)據(jù)平面,如圖3所示。

    圖3中cl~c5為控制平面通道,dl~d6為數(shù)據(jù)平面通道。控制平面主要實(shí)現(xiàn)云件的生命周期控制,如云件的運(yùn)行、關(guān)閉和重啟等,cl為用戶通過瀏覽器調(diào)用Backend API的過程,基于HTTP Restful API將用戶的請求發(fā)送到云端。對CloudwareHub來說,主要的請求包括X Service請求(分辨率調(diào)整、鼠標(biāo)鍵盤事件等)和Container Service請求(應(yīng)用程序運(yùn)行、關(guān)閉和重啟),分別通過c2和c3基于TCP協(xié)議與X manager和C manager通信。X manager利用Xorg'si提供的如Xlib和XCB等庫對Xorg程序進(jìn)行控制,C manager則通過Docker提供的API和相應(yīng)的languagebinding實(shí)現(xiàn)對Docker的控制。

    數(shù)據(jù)平面主要關(guān)注交互層的數(shù)據(jù)流,dl為瀏覽器和Websocket Server的通信過程,通過Websocket協(xié)議將用戶的鼠標(biāo)和鍵盤等輸入發(fā)送到Websocket Server,WebsocketServer實(shí)時將云件的輸出顯示圖像傳到瀏覽器;d2為Websocket Server和X service的數(shù)據(jù)交互,基于TCP協(xié)議,對上述的事件和圖像進(jìn)行轉(zhuǎn)發(fā),交由X transmitter進(jìn)一步處理;d3為X transmitter和Xorg的交互過程,Xtransmitter利用XCB等庫和Xtest擴(kuò)展將鼠標(biāo)鍵盤事件發(fā)送給Xorg,同時將Xorg的幀緩存中發(fā)生變化的圖像壓縮后發(fā)送給Websocket Server,Websocket Server將圖像進(jìn)一步發(fā)送到終端瀏覽器。為了能夠快速獲取變化圖像,Xtransmitter采用了與Xorg共享內(nèi)存的方式獲取對應(yīng)的渲染位圖。d4為云件xll客戶端應(yīng)用程序和Xorg通信的數(shù)據(jù)通道,該過程完全基于Xll protocol實(shí)現(xiàn);d5為剪貼板擴(kuò)展的數(shù)據(jù)通道,以實(shí)現(xiàn)用戶在客戶端以及不同云件之間的數(shù)據(jù)復(fù)制過程,客戶端數(shù)據(jù)可以通過d5發(fā)送到Clipboardbroker,然后通過d6的數(shù)據(jù)通道發(fā)送到對應(yīng)云件應(yīng)用程序的剪貼板緩沖區(qū)。

2.3云件PaaS平臺的微服務(wù)運(yùn)行環(huán)境

    CloudwareHub本身提供的是微服務(wù)容器運(yùn)行環(huán)境,為了實(shí)現(xiàn)規(guī);渴、容災(zāi)和靈活配置,系統(tǒng)的部署和運(yùn)行也以微服務(wù)形式架設(shè)在IaaS云計算系統(tǒng)上。CloudwareHub原型系統(tǒng)運(yùn)行在2臺云主機(jī)上,配置為1核、2 GB內(nèi)存和20 GB硬盤。VVeb Service運(yùn)行在其中一臺云主機(jī)上,通過域名cloudwarehub.com訪問,其環(huán)境部署架構(gòu)如圖4所示。

X Service和Container Service運(yùn)行在另一臺云主機(jī)上,之所以放在一臺云主機(jī)上,是為了提高Container和Xorg的通信效率,降低網(wǎng)絡(luò)延遲,其主要的運(yùn)行環(huán)境架構(gòu)如圖5所示。

    Container Service構(gòu)建在Linux環(huán)境下,基于UbuntuServer 14.04,安裝Docker工具組和Xorg驅(qū)動以及編程庫。Cloudware brokers部分主要包括C manager和X manager,對下層的Xorg和Docker進(jìn)行管理,對外提供TCP通信端,透過防火墻對外提供服務(wù)。

2.4云件PaaS平臺的優(yōu)勢

    從以上分析可以看出,云件PaaS平臺由于采用了微服務(wù)架構(gòu),將原本單一的應(yīng)用按照功能邊界分解成一系列獨(dú)立、專注的微服務(wù)。每個微服務(wù)對應(yīng)傳統(tǒng)應(yīng)用中的一個組件,但是可以獨(dú)立編譯、部署和擴(kuò)展。相對單塊架構(gòu),云件PaaS平臺具備以下優(yōu)勢。

    1)云件復(fù)雜度可控

    在將應(yīng)用分解的同時,規(guī)避了原本復(fù)雜度無止境的積累。每一個微服務(wù)專注于單一功能(如單一的云件實(shí)例),并通過定義良好的接口清晰表述服務(wù)邊界。由于云件體積小、復(fù)雜度低,每個微服務(wù)可由-個小規(guī)模開發(fā)團(tuán)隊(duì)完全掌控,易于保持高可維護(hù)性和開發(fā)效率?梢苑浅7奖愕刂С珠_發(fā)人員開發(fā)各種豐富的云件實(shí)例。

    2)云件獨(dú)立部署

    由于微服務(wù)具備獨(dú)立的運(yùn)行進(jìn)程,所以每個微服務(wù)(如單個云件)也可以獨(dú)立部署。當(dāng)某個云件服務(wù)發(fā)生變更時無需編譯、部署整個應(yīng)用。由微服務(wù)組成的應(yīng)用相當(dāng)于具備一系列可并行的發(fā)布流程,使得發(fā)布更加高效,同時降低對生產(chǎn)環(huán)境所造成的風(fēng)險,最終縮短云件交付周期。

    3)云件技術(shù)選型靈活

    微服務(wù)架構(gòu)下,技術(shù)選型是去中心化的。每個團(tuán)隊(duì)可以根據(jù)自身服務(wù)的需求和行業(yè)發(fā)展的現(xiàn)狀,自由選擇最適合云件開發(fā)的技術(shù)棧。由于每個云件實(shí)例相對簡單,當(dāng)需要對技術(shù)棧進(jìn)行升級時所面臨的風(fēng)險較低,甚至完全重構(gòu)一個云件也是可行的。

    4)容錯

    當(dāng)某一組件發(fā)生故障時,在單一進(jìn)程的傳統(tǒng)架構(gòu)下,故障很有可能在進(jìn)程內(nèi)擴(kuò)散,形成應(yīng)用全局性不可用。在微服務(wù)架構(gòu)下,故障會被隔離在單個云件服務(wù)中。若設(shè)計良好,其他云件可通過重試、平穩(wěn)退化等機(jī)制實(shí)現(xiàn)應(yīng)用層面的容錯。

    5)可擴(kuò)展

    單塊架構(gòu)應(yīng)用也可以實(shí)現(xiàn)橫向擴(kuò)展,就是將整個應(yīng)用完整地復(fù)制到不同的節(jié)點(diǎn)。當(dāng)云件的不同組件在擴(kuò)展需求上存在差異時,微服務(wù)架構(gòu)便體現(xiàn)出其靈活性,因?yàn)槊總云件可以根據(jù)實(shí)際需求獨(dú)立進(jìn)行擴(kuò)展。

    雖然微服務(wù)架構(gòu)帶來了諸多優(yōu)勢,但必須承認(rèn),構(gòu)建、部署、維護(hù)分布式的微服務(wù)系統(tǒng)并不容易。本文所提出的基于微服務(wù)的云件PaaS平臺,利用容器所提供的輕量級、面向應(yīng)用的虛擬化運(yùn)行環(huán)境為微服務(wù)提供了理想的載體。同樣,基于容器技術(shù)的云服務(wù)將極大地簡化容器化云件服務(wù)創(chuàng)建、集成、部署、運(yùn)維的整個流程,從而推動云件在云端的大規(guī)模實(shí)踐。

3 CloudwareHub云件平臺的體驗(yàn)

    由于云件本身是基于網(wǎng)絡(luò)的服務(wù),其體驗(yàn)和網(wǎng)絡(luò)環(huán)境有很大的關(guān)系,在局域網(wǎng)環(huán)境下網(wǎng)絡(luò)延遲不太明顯,但是在廣域網(wǎng)環(huán)境中,網(wǎng)絡(luò)的不穩(wěn)定性可能導(dǎo)致云件的使用體驗(yàn)較差。為了測試云件的體驗(yàn)指數(shù),本文在Ucloud上部署了CloudwareHub系統(tǒng),并提供Eclipse等云件服務(wù)。系統(tǒng)的運(yùn)行界面如圖6和圖7所示。

    為了評估CloudwareHub提供服務(wù)的體驗(yàn)性能,本文測試了在不同網(wǎng)絡(luò)環(huán)境下從鍵盤按下到字符完全渲染到瀏覽器所用的平均交互時延。通過對交互時延的度量,可以定量地評估用戶的體驗(yàn),評估測量結(jié)果如圖8所示。

  從圖8的結(jié)果分析可知,通信的數(shù)據(jù)量并不大,但是時延基本是固定的,數(shù)據(jù)量和帶寬并不是造成時延的主要原因,主要的時延由TCP通信過程和內(nèi)存復(fù)制的過程造成。從用戶感性體驗(yàn)角度觀察,帶寬在5 Mbps以上時基本感受不到時延帶來的影響,帶寬低于5 Mbps時,用戶操作頻繁時會感受到按鍵的黏滯感。如何解決網(wǎng)絡(luò)的固有延時問題和在抖動網(wǎng)絡(luò)的情況下保證云件的用戶體驗(yàn)是未來云件研究的關(guān)鍵方向和問題。

4結(jié)束語

    云計算技術(shù)的發(fā)展和成熟不僅帶來數(shù)據(jù)中心的變革,也會影響軟件的開發(fā)、部署和運(yùn)行,進(jìn)而影響軟件的使用方式。在這樣的環(huán)境下,利用云件的方式去開發(fā)部署軟件將是未來云環(huán)境下軟件的主要形式。云件本身體現(xiàn)了一切皆服務(wù)的理念,其微服務(wù)的設(shè)計理念更容易應(yīng)用

到云環(huán)境中,對用戶來說云件也是軟件使用上的新方向和趨勢,能夠讓用戶直接享受到云計算服務(wù)。軟件云化將是未來云計算的主要應(yīng)用手段,云件將成為軟件云化的主要指導(dǎo)思想。5摘要:

隨著微服務(wù)、容器等理念和技術(shù)的不斷深入,云計算環(huán)境下的軟件形態(tài)將進(jìn)一步朝著云件( Cloudware)的方向發(fā)展。云件技術(shù)以服務(wù)為核心,以云平臺為支撐,是實(shí)現(xiàn)傳統(tǒng)軟件云化的重要手段,是未來云環(huán)境下的軟件開發(fā)、軟件部署、軟件運(yùn)維和軟件使用的重要手段,是軟件在云計算平臺下的新思想。文章基于輕量級容器技術(shù)和微服務(wù)架構(gòu),提出了一種新的云件PaaS平臺,該平臺可以在不修改傳統(tǒng)軟件的情況下,直接將軟件部署到云端運(yùn)行,并通過瀏覽器服務(wù)于終端用戶。通過采用微服務(wù)架構(gòu)設(shè)計,使得該云件平臺具有較好的擴(kuò)展性、規(guī);渴稹⑷轂(zāi)和靈活配置等特性。

關(guān)鍵字:

招商信息月點(diǎn)擊排行

About Us - 關(guān)于我們 - 服務(wù)列表 - 付費(fèi)指導(dǎo) - 媒體合作 - 廣告服務(wù) - 版權(quán)聲明 - 聯(lián)系我們 - 網(wǎng)站地圖 - 常見問題 - 友情鏈接
Copyright©2014安裝信息網(wǎng) www.78375555.com. All rights reserved.
服務(wù)熱線:0371-61311617 郵箱:zgazxxw@126.com 豫ICP備18030500號-4
未經(jīng)過本站允許,請勿將本站內(nèi)容傳播或復(fù)制
安全聯(lián)盟認(rèn)證