• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      微服務架構及相應云平臺解析

      2017-03-14 19:30劉為
      科教導刊 2017年3期
      關鍵詞:微服務容器

      劉為

      摘 要 本文介紹了主要軟件服務的設計架構,分析了新興的微服務架構,并對其實現的先決條件——容器化技術進行了研究。文章還分析了兩種微服務架構在云服務中的實現形式。

      關鍵詞 服務架構 微服務 容器 CaaS BaaS

      中圖分類號:TP309 文獻標識碼:A DOI:10.16400/j.cnki.kjdkx.2017.01.013

      1網絡服務架構

      現在社會的各行各業(yè)均無法離開網絡服務系統,例如學校有學生管理系統、教務系統等;企業(yè)有人事系統、財務系統、客戶關系管理系統等;手機上運行的各種APP以及游戲,都要與后臺服務器相連接,接受后臺系統的服務。

      軟件系統的服務主要是為軟件的功能提供支持,以及為其它的服務提供接口。隨著網絡的普及,軟件的服務與軟件本身往往是分離的,服務由網絡上的服務器提供(后臺),而軟件運行在本地或瀏覽器上(前端),后臺服務是軟件開發(fā)中最關鍵的部分。

      1.1單體服務架構

      上世紀90年代以前的軟件服務多為單體架構,所有的功能采用集成化、過程化的開發(fā),之后被編譯為一個文件并放置于容器中運行,這種架構易于開發(fā)、部署和測試,但其主要問題包括:(1)代碼集成在一起,幾乎無法協同開發(fā)。(2)代碼功能高度耦合,后期維護、功能擴展困難。后期系統業(yè)務變更或服務整合會導致整個系統需要重構,大幅提高IT實施的成本。(3)小修改就可能導致重構整個項目,迭代時間大幅提升。(4)穩(wěn)定性差,由于系統高度集中在一起,任何一個小的問題可能導致整個系統癱瘓。

      1.2 SOA架構

      隨著軟件的模塊化概念開始流行,一種被稱為面向服務的架構(SOA,Service Oriented Architecture)在2000年后被軟件企業(yè)廣泛應用。SOA架構基于服務(即基于模塊化的組件),服務提供接口,服務間可通過XML進行信息交換。SOA基本架構包含ESB(Enterprise Service Bus),Web服務、XML和SOAP。SOA的最大特征就是松耦合,結合分層次的開發(fā)理念,解決了協同開發(fā)、測試等問題,也更易于后期擴充功能。但SOA本身只是一個架構,并非實施標準,所以在生產環(huán)境中應用SOA存在一些問題:

      (1)需要共享ESB,松耦合服務實際邊界非常模糊,修改某一模塊會導致需要修改其它模塊,從而導致代碼維護困難,系統迭代速度大幅降低。(2)系統后期擴充將導致系統臃腫、性能下降;某些功能擴充甚至需要部分重構ESB及其它服務。(3)系統開發(fā)長期被一種開發(fā)技術綁定,開發(fā)人員、技術、架構變更的靈活度大幅下降。

      2微服務架構

      微服務架構并非一個全新概念,它更像是SOA架構的一種實現。微服務架構依然是面向服務,但是其將松耦合做到了極致。該架構是去中性化的,其中沒有ESB,每一個服務可以單獨開發(fā)、測試、運行和部署,甚至能夠有自己的數據庫。服務間的通信與開發(fā)語言無關,一般采用基于HTTPs 的RESTful API(Representational State Transfer API)。微服務的出現順應了敏捷開發(fā)的浪潮,先開發(fā)先上線,后開發(fā)再擴充,能對系統進行快速迭代。微服務架構有以下特點:

      (1)服務?。好恳粋€服務代碼量少、復雜度低,僅專注某一項功能。(2)能夠獨立運行:每個服務可以運行在獨立的進程中。(3)與語言無關的通信機制:例如XML、JOSN、REST API等。(4)松耦合:開發(fā)、部署和運行均處于獨立狀態(tài),幾乎無外部依賴。(5)去中心化:沒有ESB,可完全分布式部署。(6)數據獨立:微服務可以有自己的數據庫,其它服務只能通過接口獲得該服務的數據。

      2.1 微服務架構的優(yōu)勢

      根據微服務以上的特性,實施過程中有如下優(yōu)勢:

      (1)依照服務來劃分開發(fā)團隊:每一個服務對應一個完整團隊(包含后臺、前端、數據庫、中間件等),從開發(fā)、測試、上線及后期維護均由該團隊負責,一個跨職能的團隊能夠完全掌控自己的微服務。

      (2)服務的異構性:能夠針對不同業(yè)務選擇合適的開發(fā)方案、開發(fā)語言、框架及部署環(huán)境,無須像單體或是SOA架構一樣,選擇統一的技術方案。在傳統架構中,初期技術方案一旦選定,很長時間內,整個系統就會在所選技術框架內進行開發(fā),到了后期想要嘗試新的技術,則有很大可能要重構系統,不但開發(fā)難度大,而且項目越大,失敗風險越高。而微服務架構采用的是獨立的擴展方式,不但無須重構原系統,還可以極小風險測試新的服務,一旦新服務達不到預期,則可直接終止,這也僅僅是停止使用一個服務而已,對整個系統影響極小。

      (3)獨立測試、部署及容錯能力:可以對微服務進行單獨的測試和部署,無須對整個系統進行測試、編譯和從新部署,降低了系統運行風險。當一個微服務出現運行故障時,不會影響系統中其它的服務,避免了系統全面停擺。

      (4)強擴展性和可控的系統復雜度:每個微服務通過定義良好的接口實現服務間邊界,專注于某一種功能,從而能夠根據系統需求,實現細粒度的自由擴展。同時,由于單個微服務復雜度低,即使出現多個服務堆疊的情況,也能夠較容易掌控整個系統的復雜度。

      2.2 微服務架構的不足

      (1)部署較以往架構更加復雜:系統由眾多微服務搭建,每個微服務需要單獨部署,從而增加部署的復雜度,容器技術能夠解決這一問題。

      (2)性能問題:由于微服務注重獨立性,互相通信時只能通過標準接口,可能產生延遲或調用出錯。例如一個服務需要訪問另一個服務的數據,只能通過服務間接口來進行數據傳輸,如果是頻繁訪問,則可能帶來較大的延遲。

      (3)數據一致性問題:作為分布式部署的微服務,在保持數據一致性方面需要比傳統架構更加困難。

      3微服務的云平臺

      由于云平臺的廣泛使用,很多網絡服務的后臺會部署在云端。基于PaaS(Platform as a Service)的云平臺非常適合微服務后臺的構建,容器技術則是云端微服務的基礎。

      3.1 容器技術

      微服務系統采用類似于搭積木的構建方式,開發(fā)一個服務就可上線一個服務,這就意味著每次部署新的服務,不能影響其它已存在的系統。更重要的是,同一個系統的微服務可能采用了不同的開發(fā)技術、數據庫等,與原來存在的服務所使用的技術完全不兼容,如果需要加入新的服務,還需要為其搭建不同運行環(huán)境。為了解決這些問題,容器技術成為了最好的選擇。容器的廣泛應用并非因為微服務架構,但其卻成為了微服務架構實踐的先決條件。

      容器是Linux系統下用以實現在單一主機提供多個隔離的Linux系統環(huán)境的虛擬化技術。與虛擬機不同,容器無須運行虛擬操作系統,而是共享本地主機的操作系統來實現虛擬環(huán)境。容器技術最先在2013年由Docker公司應用于自家的PaaS云服務平臺,并迅速被廣大開發(fā)者所認可,越來越多的開發(fā)者開始將網絡服務部署在容器中。對于容器技術而言,現在處在起步上升階段,還面臨著一些問題,例如容器系統的容錯性:當宿主機出現故障,如何能讓容器在其它機器上迅速運行起來;以及容器的擴容性:一個宿主機能夠容納的容器是有限,如何進行后期分布式擴容等,這一切集中在于系統需要一個好的容器編排工具管理容器。

      3.2 CaaS

      CaaS(Container as a Service)云服務是一種完全基于容器的PaaS系統。平臺內有容器鏡像池,包含了各種各樣的鏡像,鏡像實際是封裝好的包含各種軟件所組成的運行環(huán)境。鏡像可以由平臺提供,也可以由個人發(fā)布共享,平臺用戶也可以自己創(chuàng)建鏡像,并且不用擔心平臺無法運行鏡像。

      CaaS云服務特別適合微服務的部署,因為每一個微服務可以單獨部署在一個容器中,整個系統由容器搭建而成,包含不同技術架構的容器之間嚴格隔離。當開發(fā)者部署某一服務時,只需選擇(或自己搭建)鏡像,并將服務部署在其中,即可讓其在云臺上運行。

      3.3 BaaS

      BaaS(Backend as a Service)是一種能夠直接提供微服務的云平臺,其實際是SaaS(Software as a Service)架構,一般服務對象是移動應用開發(fā)者。平臺內提供了移動應用常見的后臺服務,包含存儲、即時通訊、數據統計和分析、消息推送、應用內搜索、用戶反饋、第三方登陸、分享等移動應用中通用的功能。移動開發(fā)者在選用平臺功能后,能夠大幅降低開發(fā)難度和時間。BaaS平臺實際也是基于微服務,因為其功能可以在后期不斷擴充。

      4結語

      微服務是近3年出現的新技術,就現在的關注度而言,極有可能成為未來構建系統服務的主流架構;相應的,容器技術有可能取代虛擬機,成為服務器上最重要的虛擬化技術。

      基金項目:1、武漢市教育局教學研究項目《基于移動設備的游戲設計課程體系研究》(編號2015090)

      2、本研究獲得武漢市屬高校數字城市專業(yè)重點實訓基地資助

      參考文獻

      [1] 鄧杰文,曹彩鳳.微服務若干關鍵問題研究[J].五邑大學學報(自然科學版),2016.30(2).

      [2] 郭棟,王偉,曾國蓀.一種基于微服務架構的新型云件PaaS平臺[J].信息網絡安全,2015(11):15-20.

      [3] 鞠春利,劉印鋒.基于Docker的私有PaaS系統構建[J].輕工科技,2014(10):80-80.

      [4] 劉思堯,李強,李斌.基于Docker技術的容器隔離性研究[J].軟件,2015.36(4):110-113.

      [5] 陳春霞.基于容器的微服務架構的淺析[J].信息系統工程,2016(3):95-96.

      猜你喜歡
      微服務容器
      難以置信的事情
      怎樣量出4升水
      從容器的形狀看壓強
      基于供給側改革理論的圖書館社交網絡微服務研究
      微信公眾平臺在醫(yī)院圖書館的應用現狀調查
      基于微信企業(yè)號的校園移動服務
      從單一模式系統架構往微服務架構遷移轉化技術研究
      液體對容器底及容器對桌面的壓力和壓強
      基于微信公眾平臺的高校圖書館微服務現狀及對策
      取米
      高要市| 聊城市| 乌兰浩特市| 招远市| 大化| 济源市| 达拉特旗| 灵山县| 麻城市| 湘潭县| 莲花县| 四子王旗| 肥城市| 北安市| 永福县| 彰化县| 裕民县| 苗栗县| 宁陵县| 张掖市| 安陆市| 彰化市| 突泉县| 徐闻县| 金乡县| 香格里拉县| 台北县| 白城市| 德安县| 化州市| 大同县| 吴江市| 句容市| 翁源县| 六枝特区| 榆中县| 石屏县| 镇安县| 浠水县| 丹凤县| 翁牛特旗|