摘要:而且,用友云配置中心以服務(wù)的方式提供統(tǒng)一的管理界面,結(jié)合用友云的認證中心可以提供可靠的安全保障。
微服務(wù)架構(gòu)是這幾年IT領(lǐng)域的一個高頻詞匯,越來越多的項目和應(yīng)用正在以微服務(wù)的思想進行重構(gòu)。相比于單體應(yīng)用和SOA架構(gòu),微服務(wù)優(yōu)勢也逐漸凸顯,被廣大架構(gòu)師和技術(shù)人員引入和推崇。當然,單體應(yīng)用、SOA、微服務(wù)等各有優(yōu)勢和不足。
單體架構(gòu)在早期的企業(yè)內(nèi)部信息化或者搭建中小型項目時很常見,簡單說就是將應(yīng)用程序的所有功能都打包成一個獨立的單元,可以是JAR、WAR、EAR或其它歸檔格式。一般單體應(yīng)用使用通用的IDE即可開發(fā)調(diào)試,項目便于共享、易于部署和測試。但是單體架構(gòu)的應(yīng)用不夠靈活,任何修改都需要重新構(gòu)建和部署,而且應(yīng)用可能較大,不利于持續(xù)的迭代和交付。此類應(yīng)用容易受到技術(shù)棧的限制,一旦先期設(shè)計出現(xiàn)問題,后期的技術(shù)債務(wù)會加重負擔。
微服務(wù)架構(gòu)模式有點像SOA,它們都由多個服務(wù)構(gòu)成。SOA架構(gòu)將多服務(wù)整合在一起,但其和服務(wù)總線ESB過于緊密的聯(lián)系以及其復(fù)雜性,也使得其在互聯(lián)網(wǎng)應(yīng)用中的部分場景里不太適用。微服務(wù)架構(gòu)模式不包含ESB服務(wù),微服務(wù)應(yīng)用樂于采用簡單輕量級協(xié)議,比如REST或者RPC來實現(xiàn)。
常見的微服務(wù)調(diào)用拓撲結(jié)構(gòu)如下,此示例是基于Spring Cloud的微服務(wù)調(diào)用。完整的微服務(wù)解決方案應(yīng)該包括服務(wù)注冊治理中心、API網(wǎng)關(guān)、服務(wù)的降級熔斷以及分布式配置等機制。
在業(yè)務(wù)邏輯體現(xiàn)上,其調(diào)用關(guān)系可能如下:
微服務(wù)架構(gòu)下有很多優(yōu)勢,這里不做具體擴展,可簡單羅列如下:
1:獨立微服務(wù)復(fù)雜度可控制;
2:可靈活水平擴展;
3:可獨立部署運維;
4:開發(fā)針對性強、支持小團隊敏捷開發(fā);
5:提高系統(tǒng)的可組合性和可替代性;
但是,在解決服務(wù)拆分問題、水平擴展問題的同時,其使用也衍生出了一系列問題,如分布式應(yīng)用部署自動化問題、數(shù)據(jù)一致性、配置文件管理、服務(wù)的注冊、服務(wù)的治理等。當然,也有一系列的方案來處理解決上述問題,如基于DevOps的自動化運維工具(用友云運維平臺)、配置中心、最終一致性方案、服務(wù)注冊治理中心與統(tǒng)一的服務(wù)網(wǎng)關(guān)等。
本文主要討論下在微服務(wù)和分布式架構(gòu)下,配置文件如何更好的管理。
每個微服務(wù)都維護著相對獨立的業(yè)務(wù),服務(wù)之間通過RPC或者REST API的方式相互調(diào)用,聚合成整體。每個微服務(wù)一般有自己的數(shù)據(jù)庫和支撐環(huán)境,每一個微服務(wù)實例也會擁有自己的運行環(huán)境或者說是獨立的進程,也就相應(yīng)的需要維護一份自身環(huán)境的配置文件,如Spring的配置文件、屬性文件、業(yè)務(wù)的XML文件、AccessKey認證文件等等。
一個完整的業(yè)務(wù)通常由多個微服務(wù)組成,每個微服務(wù)在開發(fā)環(huán)境、測試環(huán)境、預(yù)發(fā)布環(huán)境和生產(chǎn)環(huán)境對應(yīng)著不同的配置信息,需要針對不同環(huán)境維護多份。開發(fā)者在開發(fā)測試以及聯(lián)調(diào)的時候需要對應(yīng)不同的環(huán)境信息,頻繁的修改和調(diào)整配置信息,帶來了很大麻煩。大量的配置文件的維護給運維人員帶來相當大的困擾。
痛點一:配置文件太多,如果開發(fā)規(guī)范不嚴格,各個組件集成在一起時配置文件整合麻煩;
痛點二:一個服務(wù)一般對應(yīng)開發(fā)、測試、預(yù)發(fā)布、生產(chǎn)等多組環(huán)境,多套環(huán)境下配置文件手動管理也很復(fù)雜;
痛點三:運行中的環(huán)境對應(yīng)的配置項需要變化調(diào)整時,調(diào)整配置文件需要重啟環(huán)境;
上述問題的出現(xiàn),迫切需要一個統(tǒng)一的配置文件管理、維護的服務(wù)出現(xiàn),此服務(wù)需能統(tǒng)一管理多個微服務(wù)的配置文件,還能根據(jù)開發(fā)、測試、預(yù)發(fā)布、生產(chǎn)等環(huán)境進行區(qū)分隔離,并且能記錄配置文件的多個版本。我們通常將這類服務(wù)定義為分布式配置管理或者配置中心。
在配置中心的管理下,運維管理員只構(gòu)建一份代碼,即可發(fā)布到不同的環(huán)境,應(yīng)用從配置中心拉取不同環(huán)境的配置,各個應(yīng)用可以定義多個配置文件,運維管理員在配置中心統(tǒng)一維護各個服務(wù)的配置信息。
配置中心具有的如下幾大基礎(chǔ)功能:
1:配置文件和配置項的統(tǒng)一管理、支持多套環(huán)境;
2:提供統(tǒng)一SDK,獲取不同的配置;
3:統(tǒng)一的信息監(jiān)控和統(tǒng)計;
4:實時或近實時推動變化信息到客戶端;
同時,配置中心本還要考慮安全和加密等問題,其自身也是集群應(yīng)用,應(yīng)該具有高可用、支持高并發(fā)等特性。
業(yè)界常用的配置中心開源產(chǎn)品如百度的disconf和阿里的diamond以及攜程的Apollo等,幾種產(chǎn)品各有所長,這里也不統(tǒng)一展開。用友云配置中心(以下簡稱配置中心)在對比開源產(chǎn)品提供功能的基礎(chǔ)上,提供基于自身技術(shù)特色的配置中心服務(wù),更加適用用友云體系的云產(chǎn)品,其示意圖如下:
配置中心優(yōu)勢:
優(yōu)勢1:配置中心服務(wù)端權(quán)限控制,統(tǒng)一管理界面;
通過配置中心的服務(wù)端,管理員可以進行應(yīng)用管理、配置管理、文件上傳、在線修改、查看客戶端連線狀態(tài)等操作;可以通過超級管理員登錄,也可以統(tǒng)一在開發(fā)者中心進行登錄。管理員可以配置通知郵箱,在配置文件變化后以郵件方式通知對應(yīng)的關(guān)注人。
優(yōu)勢2:支持配置的多環(huán)境、多應(yīng)用、多版本;
業(yè)務(wù)應(yīng)用可能同時有多個版本在線,也可能有測試、預(yù)發(fā)布、生產(chǎn)等多個環(huán)境同時運行。配置中心包含應(yīng)用、環(huán)境、版本等概念,可以維護多個應(yīng)用,針對每個應(yīng)用的不同環(huán)境,管理多個版本的配置文件,保證不同版本業(yè)務(wù)應(yīng)用的運行環(huán)境對應(yīng)不同版本的配置文件的需要。
優(yōu)勢3:支持SaaS應(yīng)用的多租戶隔離、應(yīng)用隔離管理;
基于用友云平臺,已經(jīng)發(fā)展起了很多SaaS應(yīng)用,各個SaaS應(yīng)用在數(shù)據(jù)庫隔離、文件存儲隔離、緩存隔離等做了大量的工作。配置中心也支持將各個租戶的配置文件數(shù)據(jù)隔離管理,更好的適配了SaaS應(yīng)用對于數(shù)據(jù)隔離的需求。
優(yōu)勢4:SDK、動態(tài)屬性注入、回調(diào)機制;
和配置中心管理服務(wù)端配和使用的,是Client端的SDK。利用SDK,開發(fā)者可以集成配置中心的拉取配置、監(jiān)聽變化等功能,其使用配置和注解的方式讓集成過程簡單快捷且侵入較小。
優(yōu)勢5:實時監(jiān)控連接狀態(tài);
配置中心的管理員可以下開發(fā)者中心的控制臺,監(jiān)控到各個版本的配置文件被客戶端的拉去和連接的狀態(tài),令管理員可以全局監(jiān)控各個客戶端的狀態(tài)。
優(yōu)勢6:多種連接方式,短輪詢和長輪詢機制支持近實時推送;
集成與使用篇
用友云的配置中心的集成和使用相當簡單,可以通過SDK的方式多帶帶使用,也可以通過開發(fā)者中心應(yīng)用管理中的配置提取和下載方式使用。
使用方式一:SDK方式
步驟1:配置文件統(tǒng)一管理,通過界面操作配置文件的上傳和修改;
步驟2:屬性文件、XML文件SDK拉取;
步驟3:配置變化動態(tài)通知、屬性注入和回調(diào)機制支持,注解支持;
可以看到,無需編寫復(fù)雜的代碼,只需要進行Spring的配置修改和少量的Annotation的編寫即可,大大簡化了開發(fā)者的集成過程。
使用方式二:開發(fā)者中心結(jié)合配置中心使用(用友云配置中心和開發(fā)者中心結(jié)合,相得益彰!)
用友云開發(fā)者中心簡介:用友云開發(fā)者中心為開者提供了資源管理、持續(xù)集成、持續(xù)交付、容器服務(wù)、鏡像倉庫等應(yīng)用基礎(chǔ)服務(wù),同時為應(yīng)用的微服務(wù)架構(gòu)落地提供完備的支撐,結(jié)合DevOps的理念,通過提供自動化運維、日志管理、中間件服務(wù)等功能,幫助開發(fā)及運維人員降低產(chǎn)品研發(fā)迭代過程中的負擔。詳情請參考http://iuap.yonyou.com/produc...://developer.yonyoucloud.com。
(1)與配置中心的結(jié)合,在開發(fā)者中心的應(yīng)用發(fā)布的過程中進行配置文件提取,并使用golang版本工具拉取配置;
(2)配置中心將各個租戶間數(shù)據(jù)進行隔離并加入了權(quán)限控制,使得其對多租戶的支持更加完善;
此之外,配置中心和消息總線結(jié)合,可以完美支持微服務(wù)間解耦!
配置中心是邏輯解耦,物理不解耦的微服務(wù)的利器。它可以解決配置導(dǎo)致的系統(tǒng)耦合,架構(gòu)反向依賴的問題,配置中心的演進過程,配置私藏到全局配置文件,到配置中心。
異步消息是邏輯上解耦,物理上也解耦的微服務(wù)架構(gòu)利器。它非常適合數(shù)據(jù)驅(qū)動的任務(wù)依賴,調(diào)用方不關(guān)注處理結(jié)果,或者調(diào)用方關(guān)注處理結(jié)果,但是回調(diào)的時間很長的場景。
綜上所述,利用用友云配置中心,可以集中管理微服務(wù)架構(gòu)下應(yīng)用的配置文件,并且其支持多套環(huán)境、多個版本,提供完善的SDK,可利用注解的方式簡便的拉取指定的配置。而且,用友云配置中心以服務(wù)的方式提供統(tǒng)一的管理界面,結(jié)合用友云的認證中心可以提供可靠的安全保障。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/11950.html
摘要:用友云平臺基于云原生架構(gòu)的基礎(chǔ),賦能所有云成為真正的云架構(gòu)平臺。用友云平臺上已經(jīng)運營著財務(wù)采購支付等領(lǐng)域云,及政務(wù)能源建筑等行業(yè)云。用友云平臺中有一個開發(fā)者中心,是云原生的最好體現(xiàn)。 數(shù)字化經(jīng)濟的出現(xiàn),企業(yè)需要通過新技術(shù)實現(xiàn)數(shù)字化轉(zhuǎn)型,完成企業(yè)管理和業(yè)務(wù)模式變革。而云計算是數(shù)字化中尤為重要且能夠更快實現(xiàn)的技術(shù)手段。真正的云應(yīng)用必須是基于云原生架構(gòu)的,PaaS是一個重要的步驟,因為這是云...
摘要:如何使用開發(fā)者中心進行在線調(diào)試如果你已經(jīng)使用了開發(fā)者中心部署應(yīng)用上云,那么,可以非常榮幸的告訴你,看完下面的步驟,只需幾秒鐘的配置,就可以解救你于水火之中。此過程也可以用于日常開發(fā)過程中的在線定位問題,面對眾多的微服務(wù),無需再煩惱了。 現(xiàn)在,大家開始越來越多的談?wù)摰礁呖捎眉軜?gòu)的互聯(lián)網(wǎng)應(yīng)用。什么是高可用?高可用HA(High Availability)是分布式系統(tǒng)架構(gòu)設(shè)計中必須考慮的因素...
摘要:如何使用開發(fā)者中心進行在線調(diào)試如果你已經(jīng)使用了開發(fā)者中心部署應(yīng)用上云,那么,可以非常榮幸的告訴你,看完下面的步驟,只需幾秒鐘的配置,就可以解救你于水火之中。此過程也可以用于日常開發(fā)過程中的在線定位問題,面對眾多的微服務(wù),無需再煩惱了。 現(xiàn)在,大家開始越來越多的談?wù)摰礁呖捎眉軜?gòu)的互聯(lián)網(wǎng)應(yīng)用。什么是高可用?高可用HA(High Availability)是分布式系統(tǒng)架構(gòu)設(shè)計中必須考慮的因素...
摘要:針對這種情況,友戶通特定開發(fā)了聯(lián)邦用戶中心來支持企業(yè)的自有用戶中心。友戶通支持通過協(xié)議使用企業(yè)內(nèi)部的支持協(xié)議的用戶中心賬號進行登錄。友戶通目前支持標準協(xié)議以及友戶通自定義協(xié)議可供企業(yè)集成。 友戶通做用友云的用戶系統(tǒng)也一年多了,經(jīng)常聽實施、售前等說要私有化部署友戶通,原因無非是企業(yè)的考慮到用戶安全性和單一用戶賬號的需求。但由于用戶管理的復(fù)雜性,友戶通部署與維護并不容易,因此經(jīng)常糾結(jié)在用戶...
摘要:導(dǎo)讀本文介紹了基于技術(shù)的企業(yè)級應(yīng)用容器平臺,從云的定義云服務(wù)分類,到用友云基礎(chǔ)平臺平臺總體架構(gòu)架構(gòu)預(yù)覽部署架構(gòu)平臺核心價值和核心競爭力,闡述基礎(chǔ)平臺成為廣大傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型的一把尖刀。 導(dǎo)讀:本文介紹了基于Docker技術(shù)的企業(yè)級應(yīng)用容器平臺,從云的定義、云服務(wù)分類,到用友云PaaS基礎(chǔ)平臺、平臺總體架構(gòu)、架構(gòu)預(yù)覽、部署架構(gòu)、平臺核心價值和核心競爭力,闡述PaaS基礎(chǔ)平臺成為廣大...
閱讀 3242·2021-10-27 14:20
閱讀 2525·2021-10-08 10:05
閱讀 1625·2021-09-09 09:33
閱讀 2902·2019-08-30 13:16
閱讀 1435·2019-08-29 18:34
閱讀 1170·2019-08-29 10:58
閱讀 1228·2019-08-28 18:22
閱讀 1226·2019-08-26 13:33