欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種自管理的微服務架構及其服務方法

文檔序號:10572800閱讀:495來源:國知局
一種自管理的微服務架構及其服務方法
【專利摘要】本發(fā)明公開了一種自管理的微服務架構及其服務方法,微服務架構包括:服務編排、配置共享和服務發(fā)現(xiàn)兩個方面;服務方法包括:組件部署和發(fā)現(xiàn);監(jiān)控;自動伸縮;健康管理;自修復;單一服務組件化。本發(fā)明是一個天然整合了最佳編排以及服務自管理的分布式框架,將自管理與應用的部署相關聯(lián),排除了本質(zhì)上的局限性,利用一致性算法選舉leader節(jié)點,對集群內(nèi)其他節(jié)點進行管理,同時整合了常用的最佳云編排實踐和分布式配置,提供可組合的微服務自管理以及微服務架構的應用。
【專利說明】
一種自管理的微服務架構及其服務方法
技術領域
[0001]本發(fā)明涉及一種自管理的云端微服務應用架構,尤其涉及一種利用服務編排和一致性算法的分布式配置管理進行云應用的自管理的微服務架構及其服務方法。
【背景技術】
[0002]云計算在經(jīng)歷早期嘗試后正被大多數(shù)公司接受,云計算的優(yōu)勢可歸納為兩類,可操作性和經(jīng)濟。云計算提供了快捷的自助式服務,通過可使資源部署和移除的API達到任務的自動化,這減少可開發(fā)-測試-生產(chǎn)環(huán)境搭建的等待時間,提高了敏捷度和交付速度。在經(jīng)濟方面按需收費的模式僅需為實際使用的資源付費,開發(fā)公司不再需要進行物理IT基礎設施的維護,減少了運營成本,公司更多專注于開發(fā)而不是運維。
[0003]然而,雖然有對云應用開發(fā)的一系列架構模式和最佳實踐,但將遺留應用迀移到云端或者開發(fā)原生的云應用仍然存在挑戰(zhàn)。一方面,按需收費模式節(jié)約成本是有條件的,即:I)應用的負載多變;2)提供商能夠分配合適的資源,不多也不少。另一方面,雖然在硬件、故障開關(switch break)、故障域等方法有助于隔離故障,但是開發(fā)人員也要在半可靠的基礎設施上為修復應用做故障預案。為了達到修復和擴展的效果,需要進行云應用的持續(xù)監(jiān)測,分析特定的應用和基礎設施指標,最小化人為干預地實現(xiàn)故障自動響應(健康管理)和環(huán)境自動變更(自動伸縮)。
[0004]目前的監(jiān)控、健康管理、擴展包括下面幾種方式:
基礎設施提供商,如CloudWatch(http: //aws.amazon.com/cn/cloudwatch/)和AutoScalingChttp://aws.amazon.com/cn/autoscaling/);
第三方服務,如RightScale(https://en.wikipedia.0rg/wiki/RightScale) ,NewRelicChttps://newrelic.com/);
使用組件構建專用方案,如Netfl ix Server (https: //www.netf I ix.com/cn/),Kubernetes(http://kubernetes.1/),logstash(https://www.elastic.co/products/logstash)o
[0005]前兩種都可能導致被“套牢”,甚至突然被終止服務。專用方案則難度更大,因為這種方式需要對云應用實現(xiàn)無縫監(jiān)控和管理,即方案本身能夠修復和擴展。上述管理方式都有一個特征:它們都是作為額外的服務或者進程,獨立于具體應用的。
[0006]經(jīng)過上述分析,鑒于這些方式本質(zhì)上的局限性,提供一種可以進行擴展和修復自管理,以及適應云應用及其動態(tài)特性的云端微服務應用架構是大勢所趨。

【發(fā)明內(nèi)容】

[0007]本發(fā)明的目的是提供一種自管理的微服務架構及其服務方法,利用一致性算法選舉leader節(jié)點,對集群內(nèi)其他節(jié)點進行管理,同時整合了常用的最佳云編排實踐和分布式配置,提供可組合的微服務自管理以及微服務架構的應用。
[0008]本發(fā)明的目的通過以下技術方案實現(xiàn): 一種自管理的微服務架構,其特征在于:該微服務架構包括:服務編排、配置共享和服務發(fā)現(xiàn)兩個方面;服務編排,是一種自動化部署的抽象,通過表示所需資源及其拓撲關系的類型圖(Type Graph,TG)定義一個服務,當需要實例化時,編排器就開始對資源進行部署和配置(通過自動部署工具);配置共享和服務發(fā)現(xiàn),考慮到部署簡便和文檔豐富,本發(fā)明使用了 EtccLEtcd是分布式配置共享及服務發(fā)現(xiàn)的一致性鍵值倉庫,多個節(jié)點運行etcd服務器,相互連通形成集群,通過一致性算法(即Raft)進行容錯和保持一致性,統(tǒng)一集群中節(jié)點共享相同令牌,使用CoreOS提供的節(jié)點注冊服務來相互發(fā)現(xiàn)。
[0009]本發(fā)明也可以使用專用的節(jié)點注冊服務。Etcd使用的一致性算法同樣提供Leader的選舉功能,集群中的某個節(jié)點被其他節(jié)點選舉為唯一的“協(xié)調(diào)者”。
[0010]一種自管理的微服務架構的服務方法,其特征在于包括以下步驟:
I)組件部署和發(fā)現(xiàn)。初始的自管理單一服務部署可以通過G.Karagiannis等人提出的編SM艮務(G.Karagiannis, A.Jamakovic, A.Edmonds, C.Parada, T.Metsch, D.Pichon, M.Corici, S.Ruffino, A.Gomes, P.S.Crosta, et al.Mobile cloudnetworking: Virtualisat1n of cellular networks.1n Telecommunicat1ns (ICT),2014 21st Internat1nal Conference on, pages 410-415.1EEE, 2014.)實現(xiàn)。已部署的軟件組件定位自己在類型圖(TG)中的角色(本例中指是否是LB,AS,DB或者CA);每個組件使用uuid標識,所有組件作為節(jié)點共享令牌來訪問Etcd集群,并相互發(fā)現(xiàn)。當編排器部署完成初始化組件,就在Etcd上將對應服務狀態(tài)設置為“active”,當初始化完成后,被選舉為leader的組件開始履行自動擴展和健康管理的自管理功能。
[0011]2)監(jiān)控。假設每個相關組件都執(zhí)行內(nèi)部監(jiān)控,并將監(jiān)控指標發(fā)布給Etcd進行聚合。Etcd使存儲的監(jiān)控信息變得無狀態(tài)達到伸縮的彈性效果。即使虛機或容器的伸縮過程發(fā)生故障,會立即啟用新的組件,從中斷處接替伸縮過程。
[0012]3)自動伸縮。自動伸縮組件使用性能模型進行組件橫向擴展。主要功能是確定在保證服務質(zhì)量前提下每種類型組件所需實例戶數(shù)量。自動伸縮由leader節(jié)點啟動,該節(jié)點從Etcd中監(jiān)控信息,獲取當前系統(tǒng)配置,然后輸出每種組件類型的實例數(shù)量,并存儲在類型圖中的節(jié)點的約束文件夾下以req(required)標識。
[0013]4)健康管理。負責健康管理的節(jié)點將實例圖與系統(tǒng)的期望狀態(tài)比對,根據(jù)結果實施以下操作:I)殺死或重啟未響應組件;2)實例化新組件;3)銷毀不需要的組件;4)按照基數(shù)約束,配置組件間聯(lián)系。
[0014]5)自修復。通過在不同故障域中測試部署組件,上述架構可以從故障中修復,而且故障組件會在秒級重啟。只要剩余集群節(jié)點數(shù)量大于一致性所需最小值(3個),故障節(jié)點以外的某個節(jié)點會被選舉為新leader,預期的應用狀態(tài)和監(jiān)控數(shù)據(jù)在Etcd集群中共享,使得健康管理和自動伸縮組件無狀態(tài),進而正確管理單一服務。
[0015]6)單一服務組件化。每個微服務以單一服務的形式部署,但是組件持有兩個etcd令牌。本地令牌用來和原來一樣形成單一服務集群并選舉leader,第二個令牌用于被選舉出的leader節(jié)點們組成更高一層的多服務集群。
[0016]本發(fā)明中,監(jiān)控指標是指,系統(tǒng)底層指標(如CPU、10、RAM)和上層應用的指標(如響應時間、吞吐量)。
[0017]與現(xiàn)有微服務架構相比,本發(fā)明具有如下優(yōu)勢: 本發(fā)明是一個天然整合了最佳編排以及服務自管理分布式框架,將自管理與應用的部署相關聯(lián),排除了本質(zhì)上的局限性,可以天然的擴展應用而不需額外的代碼或認為干預。本發(fā)明使得云應用可以更加方便的迀移到其他更高效的云平臺上,而不會被基礎設施等提供的管理“套牢”。
【附圖說明】
[0018]圖1-1帶有緩存的簡單web應用類型圖示例;
圖1-2是帶有緩存的簡單web應用類型對應實例圖示例;
圖2為描繪服務實例和反實例過程的時序圖;
圖3為使用Etcd目錄結構表示類型圖(TG)和示例圖(IG)的片段圖;
圖4為一個基于微服務應用的類型圖和實例圖示例圖;
圖5為Etcd實現(xiàn)自管理的微服務應用圖。
【具體實施方式】
[0019]以下結合附圖和具體實施例對本發(fā)明進行詳細說明。
[0020]一種自管理的微服務架構,應用于帶有緩存的簡單Web應用中,包括服務編排以及配置共享和服務發(fā)現(xiàn)兩部分。
[0021]服務編排。圖1-1展示了帶有緩存的簡單web應用編排類型圖(TG),其使用負載均衡器(LB)向最多20個應用服務器(AS)實例轉(zhuǎn)發(fā)請求,并最多連接2個數(shù)據(jù)庫(DB)實例和4個緩存(CA)實例。圖中節(jié)點旁的數(shù)字代表實例的上下限約束,邊旁的數(shù)字代表實例間連接數(shù)的上下限約束。如,一個緩存節(jié)點最多給5個應用服務器節(jié)點提供服務。連接數(shù)的約束設定一般依賴技術人員的經(jīng)驗。右邊圖是對應的實例圖。在數(shù)學上,類型圖(TG)是實例圖(IG)的范式,實例圖在拓撲上遵守了類型圖的拓撲結構和約束。
[0022]配置共享和服務發(fā)現(xiàn)。Etcd配置服務的主要用處是當系統(tǒng)發(fā)生相關改變時更新組件的配置。例如,圖1-2所提及的應用示例,負載均衡器可以使用Etcd來監(jiān)控所有應用服務器,一旦有新的應用服務器啟動,立即重新配置轉(zhuǎn)發(fā)策略。這個重配置協(xié)議僅需要應用服務器啟動時進行服務注冊。Etcd使用的一致性算法同樣提供Leader的選舉功能,集群中的某個節(jié)點被其他節(jié)點選舉為唯一的“協(xié)調(diào)者”。
[0023]本實施例的自管理的微服務架構的實施流程如圖2:—種自管理的微服務架構的服務方法,包括以下步驟:
I)組件部署和發(fā)現(xiàn)。Etcd目錄結構可以用來表示類型圖(TG)和實例圖(IG)。當一個新組建部署并啟動時將加入Etcd集群,在對應組件類型下注冊新目錄,廣播自身的能力,保存關系信息。圖3中,一個新的CA(cache)實例使用uuidl創(chuàng)建目錄,并保存可以被應用服務器組件使用的終端鍵。自動擴展管理負責確定每種組件類型需要的實例數(shù)量,健康管理器確保有預定數(shù)量的實例正確運行且和類型圖中所規(guī)定的連接相配。Etcd周期性發(fā)布組件信息(如終端)當組件故障或者被移除時,其可訪問的信息將自動從Etcd中移除,健康管理器以及所有獨立組件將收到更新通告。當編排器部署完成初始化組件,就在Etcd上將對應服務狀態(tài)設置為“active”,當初始化完成后,被選舉為leader的組件開始履行自動擴展和健康管理的自管理功能。
[0024]2)監(jiān)控。云監(jiān)控都需要收集系統(tǒng)底層指標(如CPU,10,RAM)和上層應用的指標(如響應時間,吞吐量)。響應時間一般與系統(tǒng)性能有關,但為了服務質(zhì)量,幾秒鐘的時間窗口足以評估系統(tǒng)表現(xiàn)。假設每個相關組件都執(zhí)行內(nèi)部監(jiān)控,并將指標發(fā)布給Etcd進行聚合。例如,圖1例子中的負載均衡可以用內(nèi)部指標與logstash監(jiān)控指標相結合,得到諸如平均請求速率,響應時間,最后5s,1s,30s,lm,5m,1m的請求隊列長度等信息。這些指標一般足以確定實際所需的應用服務器數(shù)量。
[0025]3)自動伸縮。自動伸縮組件使用性能模型進行組件橫向擴展。主要功能是確定在保證服務質(zhì)量前提下每種類型組件所需實例戶數(shù)量。自動伸縮由leader節(jié)點啟動,該節(jié)點從Etcd中監(jiān)控信息,獲取當前系統(tǒng)配置,然后輸出每種組件類型的實例數(shù)量,并存儲在類型圖中的節(jié)點的約束文件夾下以req(required)標識,如圖3所示。
[0026]4)健康管理。負責健康管理的節(jié)點將實例圖與系統(tǒng)的期望狀態(tài)比對,根據(jù)結果實施以下操作:I)殺死或重啟未響應組件;2)實例化新組件;3)銷毀不需要的組件;4)按照基數(shù)約束,配置組件間聯(lián)系。
[0027]5)自修復。通過在不同故障域中測試部署組件,上述架構可以從故障中修復,而且故障組件會在秒級重啟。只要剩余集群節(jié)點數(shù)量大于一致性所需最小值(3個),故障節(jié)點以外的某個節(jié)點會被選舉為新leader,預期的應用狀態(tài)和監(jiān)控數(shù)據(jù)在Etcd集群中共享,使得健康管理和自動伸縮組件無狀態(tài),進而正確管理單一服務。
[0028]6)單一服務組件化?;诜站幣趴山M合性的概念,同樣的架構也可以用來部署自管理的服務組合以及使用微服務架構的應用。正如可以在單一服務中使用類型圖表示組件,類型圖同樣可以表示基于微服務的應用以及相互調(diào)用關系,實例圖則可以表示多個微服務實例,提供彈性及性能的保證,如圖4。
[0029]圖5直觀展示了Etcd集群如何用來實現(xiàn)自管理的微服務應用。每個微服務以單一服務的形式部署,但是組件持有兩個etcd令牌。本地令牌用來和原來一樣形成單一服務集群并選舉leader,第二個令牌用于被選舉出的leader節(jié)點們組成更高一層的多服務集群。組合集群用于微服務終端發(fā)現(xiàn),也用于微服務組合層次的leader選舉。再加上跨故障域的布置,上面提出的架構能夠進行分布層次的自管理;每個單元都是活躍的自管理元素,通過新建單元以維持形態(tài)。
【主權項】
1.一種自管理的微服務架構,其特征在于:該微服務架構包括服務編排、配置共享和服務發(fā)現(xiàn)兩個方面;服務編排,是一種自動化部署的抽象,通過表示所需資源及其拓撲關系的類型圖定義一個服務,當需要實例化時,編排器就開始對資源進行部署和配置;配置共享和服務發(fā)現(xiàn),考慮到部署簡便和文檔豐富,使用EtccUEtcd是分布式配置共享及服務發(fā)現(xiàn)的一致性鍵值倉庫,多個節(jié)點運行Etcd服務器,相互連通形成集群,通過一致性算法進行容錯和保持一致性,統(tǒng)一集群中節(jié)點共享相同令牌,使用CoreOS提供的節(jié)點注冊服務來相互發(fā)現(xiàn)。2.根據(jù)權利要求1所述的自管理的微服務架構,其特征在于:使用專用的節(jié)點注冊服務;Etcd使用的一致性算法提供Leader的選舉功能,集群中的某個節(jié)點被其他節(jié)點選舉為唯一的“協(xié)調(diào)者”。3.—種權利要求1所述的自管理的微服務架構的服務方法,其特征在于包括以下步驟: 1)組件部署和發(fā)現(xiàn):初始的自管理單一服務部署通過編排服務實現(xiàn);已部署的組件定位自己在類型圖中的角色;每個組件使用uuid標識,所有組件作為節(jié)點共享令牌來訪問Etcd集群,并相互發(fā)現(xiàn);當編排器部署完成初始化組件,就在Etcd上將對應服務狀態(tài)設置為“active”,當初始化完成后,被選舉為leader的組件開始履行自動擴展和健康管理的自管理功能; 2)監(jiān)控:假設每個相關組件都執(zhí)行內(nèi)部監(jiān)控,并將監(jiān)控指標發(fā)布給Etcd進行聚合;Etcd使存儲的監(jiān)控信息變得無狀態(tài)達到伸縮的彈性效果;即使虛機或容器的伸縮過程發(fā)生故障,會立即啟用新的組件,從中斷處接替伸縮過程; 3)自動伸縮:自動伸縮組件使用性能模型進行組件橫向擴展;主要功能是確定在保證服務質(zhì)量前提下每種類型組件所需實例戶數(shù)量;自動伸縮由leader節(jié)點啟動,該節(jié)點從Etcd中監(jiān)控信息,獲取當前系統(tǒng)配置,然后輸出每種組件類型的實例數(shù)量,并存儲在類型圖中的節(jié)點的約束文件夾下以r eq標識; 4)健康管理:負責健康管理的節(jié)點將實例圖與系統(tǒng)的期望狀態(tài)比對,根據(jù)結果實施以下操作:(I)殺死或重啟未響應組件;(2)實例化新組件;(3)銷毀不需要的組件;(4)按照基數(shù)約束,配置組件間聯(lián)系; 5)自修復:通過在不同故障域中測試部署組件,上述架構從故障中修復,而且故障組件在秒級重啟;只要剩余集群節(jié)點數(shù)量大于一致性所需最小值,故障節(jié)點以外的某個節(jié)點被選舉為新leader,預期的應用狀態(tài)和監(jiān)控數(shù)據(jù)在Etcd集群中共享,使得健康管理和自動伸縮組件無狀態(tài),進而正確管理單一服務; 6)單一服務組件化:每個微服務以單一服務的形式部署,但是組件持有兩個Etcd令牌;本地令牌用來和原來一樣形成單一服務集群并選舉leader,第二個令牌用于被選舉出的leader節(jié)點們組成更高一層的多服務集群。4.根據(jù)權利要求3所述的自管理的微服務架構的服務方法,其特征在于:步驟2)中,所述監(jiān)控指標是指,系統(tǒng)底層指標,包括CPU、10、RAM;上層應用的指標,包括響應時間、吞吐量。
【文檔編號】H04L29/08GK105933448SQ201610493852
【公開日】2016年9月7日
【申請日】2016年6月29日
【發(fā)明人】趙軍, 程偉華, 譚晶
【申請人】江蘇電力信息技術有限公司, 國網(wǎng)江蘇省電力公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宜丰县| 集贤县| 博白县| 昂仁县| 灵山县| 自治县| 芜湖县| 子长县| 遵化市| 徐汇区| 泽州县| 台州市| 隆尧县| 新巴尔虎左旗| 聊城市| 洞头县| 留坝县| 辽宁省| 同江市| 龙州县| 曲沃县| 贵溪市| 贡觉县| 乐都县| 勃利县| 同江市| 洛扎县| 永丰县| 罗源县| 正定县| 阳信县| 白玉县| 灌南县| 靖边县| 景德镇市| 千阳县| 小金县| 凤冈县| 新宁县| 扎鲁特旗| 新安县|