• 
    

    
    

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

      微服務(wù)架構(gòu)在容器云中的應(yīng)用實(shí)踐

      2017-09-06 08:11:00耿貞偉
      電腦與電信 2017年7期
      關(guān)鍵詞:鏡像單體容器

      楊 鷗 張 羿 耿貞偉

      (云南電網(wǎng)有限責(zé)任公司,云南 昆明 650011)

      微服務(wù)架構(gòu)在容器云中的應(yīng)用實(shí)踐

      楊 鷗 張 羿 耿貞偉

      (云南電網(wǎng)有限責(zé)任公司,云南 昆明 650011)

      隨著信息化建設(shè)的迅速發(fā)展,電網(wǎng)傳統(tǒng)業(yè)務(wù)應(yīng)用面臨資源不能高效動(dòng)態(tài)伸縮、高效遷移部署等方面的問題,亟需在開發(fā)平臺(tái)中引入微服務(wù)架構(gòu)。以Docker為代表的容器技術(shù)則為微服務(wù)理念提供了匹配的實(shí)現(xiàn)機(jī)制,本文從什么是微服務(wù)切入,詳細(xì)介紹了微服務(wù)架構(gòu)的優(yōu)勢(shì),從電網(wǎng)容器云平臺(tái)自身實(shí)踐出發(fā),給出了微服務(wù)架構(gòu)的云端應(yīng)用實(shí)踐。

      微服務(wù);容器持續(xù)集成;單體應(yīng)用

      1 引言

      多年以來(lái),電網(wǎng)公司的IT建設(shè)者門一直在尋找更好的方法來(lái)構(gòu)建業(yè)務(wù)系統(tǒng),從而提高資源的利用率和開發(fā)運(yùn)維效率,從傳統(tǒng)服務(wù)器管理模式、采用虛擬化搭建的云計(jì)算管理平臺(tái)模式到基于容器構(gòu)建云PaaS平臺(tái)方式均取得了良好的經(jīng)濟(jì)效益。而隨著這些基礎(chǔ)平臺(tái)的變化,使用傳統(tǒng)整體式架構(gòu)應(yīng)用開發(fā)系統(tǒng)越來(lái)越難以滿足企業(yè)不斷變化的需求,難以滿足快速開發(fā)、交互、運(yùn)維的需要。

      近年來(lái),微服務(wù)和容器技術(shù)的不斷發(fā)展,為企業(yè)解決這些問題提供了一種新的模式,很多組織發(fā)現(xiàn)細(xì)粒度的微服務(wù)架構(gòu)可以幫助他們更快地交付軟件,并且有更多機(jī)會(huì)嘗試新技術(shù)。微服務(wù)在技術(shù)決策上給了我們極大的自由度,使我們能夠更快地響應(yīng)新的變化。

      2 什么是微服務(wù)架構(gòu)

      微服務(wù)是一種架構(gòu)風(fēng)格,其概念源于Martin Fowler在2014年3月所寫的一篇文章“Microservices”,微服務(wù)提倡將應(yīng)用系統(tǒng)按照一定的原則將大系統(tǒng)拆分成一系列細(xì)小的服務(wù),每個(gè)服務(wù)只需要專注于一個(gè)單一的業(yè)務(wù)功能即可,并且服務(wù)之間可以互相獨(dú)立運(yùn)行,采用輕量級(jí)API進(jìn)行通信,來(lái)滿足業(yè)務(wù)和用戶的需求。

      在傳統(tǒng)經(jīng)典分層架構(gòu)模式下(例如表現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層),業(yè)務(wù)雖然在邏輯劃分有模塊和組件,但常作為一個(gè)整體進(jìn)行編譯、打包、部署、運(yùn)維,因此在物理部署層面依然是一個(gè)“單塊”。圍繞這種架構(gòu)模式,我們可以看到很多常用的IDE集成開發(fā)環(huán)境和編程框架(如eclipse、spring等),它們?yōu)殚_發(fā)者提供便捷的開發(fā)、調(diào)試、測(cè)試、部署等體驗(yàn),讓開發(fā)人員可以通過(guò)工具、框架快速生成應(yīng)用原型而不必花大量精力在服務(wù)分解和分布式設(shè)計(jì)上。但是伴隨者業(yè)務(wù)和功能的累積擴(kuò)張,應(yīng)用體積也隨機(jī)迅速擴(kuò)大,單塊架構(gòu)難以適應(yīng)這種快速變化的需求,并且面臨開發(fā)效率低、交付周期長(zhǎng)、技術(shù)轉(zhuǎn)型難等一系列的挑戰(zhàn)。

      微服務(wù)架構(gòu)則是從架構(gòu)層面出發(fā),將應(yīng)用系統(tǒng)按照一定的邊界分解成一系列的獨(dú)立微服務(wù),每個(gè)微服務(wù)與傳統(tǒng)應(yīng)用中的邏輯模塊或組件相當(dāng),但是可以獨(dú)立地進(jìn)行編譯、部署、運(yùn)行,具有獨(dú)立部署、復(fù)雜度可控、技術(shù)選型靈活和高擴(kuò)展性的優(yōu)點(diǎn)。

      圖1 微服務(wù)參考架構(gòu)

      微服務(wù)架構(gòu)的特點(diǎn)為:

      (1)業(yè)務(wù)粒度微小

      由于體積小、復(fù)雜度低,每個(gè)微服務(wù)可由一個(gè)小規(guī)模開發(fā)團(tuán)隊(duì)完全掌控,易于保持高可維護(hù)性和開發(fā)效率。

      (2)職責(zé)單一

      每個(gè)服務(wù)只做一件事情,并通過(guò)定義良好的接口清晰表述服務(wù)邊界。

      (3)隔離性好

      每個(gè)微服務(wù)都可以獨(dú)立部署,互相隔離互不影響,一個(gè)服務(wù)宕機(jī)不會(huì)影響其它服務(wù)。

      (4)管理容易

      每個(gè)服務(wù)可以獨(dú)立地進(jìn)行開發(fā)部署,可以針對(duì)業(yè)務(wù)特點(diǎn)使用不同的開發(fā)語(yǔ)言。

      當(dāng)然像任何其它技術(shù)一樣,微服務(wù)架構(gòu)也有不足,帶來(lái)的挑戰(zhàn)包括:

      (1)通信成本高:在單體應(yīng)用中的一個(gè)函數(shù)或進(jìn)程調(diào)用在微服務(wù)架構(gòu)下可能變成了一個(gè)http遠(yuǎn)程調(diào)用,網(wǎng)絡(luò)延遲會(huì)帶來(lái)更長(zhǎng)的耗時(shí),造成更高的通信成本。

      (2)數(shù)據(jù)一致性問題:在單體應(yīng)用中數(shù)據(jù)通常存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中,保證數(shù)據(jù)的一致性很容易,而在微服務(wù)架構(gòu)下,通常不同的微服務(wù)有不同的數(shù)據(jù)庫(kù),但往往一個(gè)操作可能會(huì)涉及多個(gè)微服務(wù)的互相調(diào)用,當(dāng)服務(wù)很多時(shí)整個(gè)調(diào)用鏈路變長(zhǎng),調(diào)用失敗的風(fēng)險(xiǎn)高,在這種分布式架構(gòu)下更難保證數(shù)據(jù)的一致性和可靠性。

      (3)服務(wù)依賴:不同服務(wù)之間的依賴問題,導(dǎo)致復(fù)雜度增加。

      (4)部署復(fù)雜:微服務(wù)化后服務(wù)實(shí)例變多,造成更多需要部署、配置和監(jiān)控的部分,此外一個(gè)應(yīng)用的改變可能會(huì)波及多個(gè)服務(wù),擴(kuò)展和監(jiān)控難度更大。

      3 微服務(wù)架構(gòu)在容器云中的實(shí)踐

      微服務(wù)架構(gòu)雖然給企業(yè)開發(fā)者們帶來(lái)了諸多優(yōu)勢(shì),但同時(shí)也讓構(gòu)建、部署和維護(hù)這些分布式的微服務(wù)系統(tǒng)帶來(lái)不少難題。近年來(lái)基于輕量級(jí)虛擬化技術(shù)、面向應(yīng)用虛擬化運(yùn)行環(huán)境的容器云為微服務(wù)提供了理想的載體,利用容器化技術(shù)簡(jiǎn)化微服務(wù)創(chuàng)建、集成、部署、運(yùn)維的整個(gè)流程,推動(dòng)微服務(wù)在云端的大規(guī)模實(shí)踐,下面以電網(wǎng)容器云平臺(tái)為例,說(shuō)明各個(gè)流程的實(shí)踐:

      圖2 容器云下開發(fā)運(yùn)維流程

      3.1 創(chuàng)建

      在容器云平臺(tái),用戶可以很方便地創(chuàng)建微服務(wù)項(xiàng)目,并在項(xiàng)目中與代碼倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián),輕松選擇代碼項(xiàng)目進(jìn)行構(gòu)建。每當(dāng)開發(fā)人員提交代碼時(shí),系統(tǒng)可以自動(dòng)將存于代碼倉(cāng)庫(kù)的微服務(wù)程序快速構(gòu)建成新的容器鏡像,經(jīng)過(guò)持續(xù)集成自動(dòng)化驗(yàn)證后轉(zhuǎn)化為隨時(shí)可以部署的容器鏡像,用戶可以將這個(gè)微服務(wù)一鍵部署到容器云平臺(tái)上。

      3.2 集成

      在電網(wǎng)容器云平臺(tái)的鏡像倉(cāng)庫(kù)中,不僅匯集了來(lái)自Docker官方和社區(qū)的優(yōu)質(zhì)鏡像,也支持加入平臺(tái)以外的任意鏡像源。用戶可以根據(jù)自己的業(yè)務(wù)需要,像搭積木一樣自由組合、復(fù)用各種容器化微服務(wù),輕松集成應(yīng)用。比如,用戶需要一個(gè)通用的MySQL數(shù)據(jù)庫(kù)或者tomcat web服務(wù),他可以直接在鏡像中選擇適合的數(shù)據(jù)庫(kù)服務(wù)鏡像,并與其業(yè)務(wù)連接起來(lái)。

      3.3 部署

      在電網(wǎng)容器云平臺(tái)中可以快速靈活地進(jìn)行部署:您可以用項(xiàng)目鏡像或第三方鏡像進(jìn)行部署??梢砸淮尾渴鸲鄠€(gè)鏡像并為每個(gè)鏡像的容器設(shè)定cpu和內(nèi)存占用。從配置部署到啟動(dòng)只需要幾分鐘。

      此外,平臺(tái)支持升級(jí)回滾:部署有完整的版本管理,每次升級(jí)會(huì)生成一個(gè)部署版本,可以隨意選擇一個(gè)舊版本進(jìn)行回滾。部署出現(xiàn)異常時(shí)可以指定版本恢復(fù)。

      3.4 運(yùn)維

      在微服務(wù)架構(gòu)模式下,由于獨(dú)立進(jìn)程眾多,服務(wù)在部署后如何進(jìn)行運(yùn)維、管理成為實(shí)踐上的另一個(gè)難點(diǎn)。容器云通過(guò)主機(jī)管理、主機(jī)監(jiān)控屏蔽用戶來(lái)屏蔽底層云主機(jī)和基礎(chǔ)架構(gòu)運(yùn)維,通過(guò)容器編排、自動(dòng)修復(fù)、彈性擴(kuò)展、監(jiān)控日志等高級(jí)的應(yīng)用服務(wù),實(shí)現(xiàn)平臺(tái)上微服務(wù)的智能托管,幫助用戶降低運(yùn)維成本和難度。

      3.5 存儲(chǔ)

      微服務(wù)一般分為有狀態(tài)和無(wú)狀態(tài)的服務(wù),無(wú)狀態(tài)的服務(wù)他們通常是不用保存數(shù)據(jù)的,可以很方便地進(jìn)行橫向擴(kuò)展,而有狀態(tài)的服務(wù)則需要存儲(chǔ)數(shù)據(jù),如存儲(chǔ)在數(shù)據(jù)庫(kù)或緩存服務(wù)中。在微服務(wù)架構(gòu)模式下,提倡每個(gè)微服務(wù)可根據(jù)實(shí)際需求選擇最合適的數(shù)據(jù)存儲(chǔ)服務(wù)。

      在Docker容器中,持久化保存需要通過(guò)掛載Volume來(lái)實(shí)現(xiàn),因此容器云平臺(tái)將持主機(jī)上的云存儲(chǔ)抽象成數(shù)據(jù)卷直接掛載在容器上,容器在重啟、遷移時(shí)系統(tǒng)無(wú)需人工干預(yù)可以自動(dòng)重新掛載。

      4 從傳統(tǒng)單體式架構(gòu)遷移到微服務(wù)架構(gòu)的策略

      首先,一個(gè)基本的策略是:不要大規(guī)模重寫代碼,除非是重建一套全新基于微服務(wù)的應(yīng)用。重寫代碼聽起來(lái)很不錯(cuò),但實(shí)際上充滿了風(fēng)險(xiǎn),最終可能會(huì)失敗,相反,我們應(yīng)該采取逐步遷移單體式應(yīng)用的策略,通過(guò)逐步生成微服務(wù)新應(yīng)用,與舊的單體式應(yīng)用集成。隨著時(shí)間的推移,單體式應(yīng)用在整個(gè)架構(gòu)中比例逐漸下降直到消失或者成為微服務(wù)架構(gòu)的一部分。

      第二要將前端和后端分離:減小單體式應(yīng)用復(fù)雜度的策略是將表現(xiàn)層(響應(yīng)RESTAPI請(qǐng)求或提供基于HTML的圖形接口)和業(yè)務(wù)邏輯(完成業(yè)務(wù)邏輯的應(yīng)用核心)、數(shù)據(jù)訪問層(訪問基礎(chǔ)元素,例如數(shù)據(jù)庫(kù)和消息代理)分開。

      此外,要抽出服務(wù):從單體應(yīng)用中抽取出某些模塊成為獨(dú)立微服務(wù)。每當(dāng)抽取一個(gè)模塊變成微服務(wù),單體應(yīng)用就變得簡(jiǎn)單一些;一旦轉(zhuǎn)換足夠多的模塊,單體應(yīng)用本身已經(jīng)不成為問題了,要么消失,要么簡(jiǎn)單到成為一個(gè)服務(wù)。

      5 結(jié)語(yǔ)

      構(gòu)建復(fù)雜的應(yīng)用確實(shí)非常困難,而微服務(wù)架構(gòu)模式可以使構(gòu)建復(fù)雜應(yīng)用變得簡(jiǎn)單化。微服務(wù)架構(gòu)的誕生和容器技術(shù)的流行幾乎是同時(shí)發(fā)生的,是互聯(lián)網(wǎng)時(shí)代倒逼傳統(tǒng)技術(shù)和架構(gòu)而產(chǎn)生的變革,基于容器技術(shù)的PaaS平臺(tái)給開發(fā)者提供了一個(gè)部署和管理微服務(wù)的簡(jiǎn)單方法,它把所有這些問題都打包內(nèi)置解決了。

      [1]古明生,解文艷,崔焱.電網(wǎng)企業(yè)去系統(tǒng)化的IT架構(gòu)研究[J].南方能源建設(shè),2016,3(2):118-121.

      [2]郭棟,王偉,曾國(guó)蓀.一種基于微服務(wù)架構(gòu)的新型云件PaaS平臺(tái)[J].信息網(wǎng)絡(luò)安全,2015(11):15-20.

      [3]楊俊偉,紀(jì)鑫,胡強(qiáng)新.基于微服務(wù)架構(gòu)酯電力云服務(wù)平臺(tái)[J].電力信息與通信技術(shù),2017(1):8-12.

      [4]陳愷.Docker與微服務(wù)架構(gòu)的最佳實(shí)踐[EB/OL].http://www. infoq.com/cn/presentations/best-practice-of-micro-service-architecture

      [5]王磊.微服務(wù)架構(gòu)與實(shí)踐[M].北京:電子工業(yè)出版社,2015.

      [6]楊俊偉,紀(jì)鑫,胡強(qiáng)新.基于微服務(wù)架構(gòu)的電力云服務(wù)平臺(tái)[J].電力信息與通信技術(shù),2017(1):8-12.

      [7]李蘇璇.基于微服務(wù)架構(gòu)的SaaS應(yīng)用構(gòu)建方法研究[D].廣州:華南理工大學(xué),2016.

      [8]崔蔚,李春陽(yáng),劉迪,等.面向微服務(wù)的統(tǒng)一應(yīng)用開發(fā)平臺(tái)[J].電力信息與通信技術(shù),2016(9):12-17.

      TheApplication of Micro ServiceArchitecture in Container Cloud

      Yang Ou Zhang YiGeng Zhenwei
      (Yunnan Power Grid Co.,Ltd.,Yunnan,Kunming 650011)

      With the rapid development of information technology,the traditional business applications of power grid faces with many problems,such as inefficient resources,dynamic scalability,efficient migration and deployment.Therefore,it is urgent to introduce micro service architecture into the development platform.The container technology represented by Docker is a micro service concept providing the realization mechanism.From the definition of micro service,this paper introduces the advantages of micro service structure in detail,and introduces the application of micro service architecture in the cloud.

      micro service;container continuous integration;single application

      TP393.09;TP311.52

      A

      1008-6609(2017)07-0079-03

      楊鷗(1987-),女,云南會(huì)澤人,本科,工程師,研究方向?yàn)樾畔⒒?xiàng)目管理。

      猜你喜歡
      鏡像單體容器
      Different Containers不同的容器
      鏡像
      難以置信的事情
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      單體光電產(chǎn)品檢驗(yàn)驗(yàn)收方案問題探討
      相變大單體MPEGMA的制備與性能
      取米
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      鏡像
      小康(2015年6期)2015-03-26 14:44:27
      巨無(wú)霸式醫(yī)療單體的選擇
      金沙县| 通河县| 额敏县| 临汾市| 华坪县| 丹江口市| 温州市| 靖边县| 开平市| 灯塔市| 新绛县| 宜兴市| 云阳县| 义乌市| 敖汉旗| 茶陵县| 阜宁县| 临江市| 灵宝市| 耿马| 开远市| 桓台县| 望奎县| 桑植县| 高青县| 宁陕县| 镇沅| 屏东市| 崇义县| 枝江市| 西和县| 嵊州市| 洛扎县| 玛沁县| 铜川市| 富源县| 禄丰县| 邹城市| 锦屏县| 额尔古纳市| 和政县|