丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開(kāi)發(fā)者 正文
發(fā)私信給優(yōu)維科技
發(fā)送

0

技術(shù)干貨|如何在微服務(wù)架構(gòu)下構(gòu)建高效的運(yùn)維管理平臺(tái)?

本文作者: 優(yōu)維科技 2017-05-26 12:12
導(dǎo)語(yǔ):如何構(gòu)建一個(gè)高效的運(yùn)維管理平臺(tái)?

雷鋒網(wǎng)編者按:本文為優(yōu)維科技CTO黎明在《云上運(yùn)維與研發(fā)最佳實(shí)踐》活動(dòng)上的內(nèi)容分享,本文結(jié)合微服務(wù)架構(gòu)特點(diǎn),解讀如何構(gòu)建一個(gè)高效運(yùn)維管理平臺(tái)。 

黎明帶領(lǐng)團(tuán)隊(duì)自主研發(fā)了全棧DevOps運(yùn)維管理平臺(tái)—EasyOps,是目前行業(yè)領(lǐng)先的智能化運(yùn)維管理平臺(tái)。作為前騰訊運(yùn)維研發(fā)負(fù)責(zé)人,黎明主導(dǎo)了多個(gè)運(yùn)維系統(tǒng)研發(fā)輿情監(jiān)控、大數(shù)據(jù)監(jiān)控平臺(tái)、CMDB、實(shí)時(shí)日志分析平臺(tái)、織云、客戶(hù)端體驗(yàn)監(jiān)控等。

本文內(nèi)容有三點(diǎn):

1、微服務(wù)架構(gòu)特點(diǎn)及其傳統(tǒng)巨石架構(gòu)的差異,以及傳統(tǒng)運(yùn)維工具面臨的挑戰(zhàn);

2、面向微服務(wù)的運(yùn)維平臺(tái)架構(gòu);

3、運(yùn)維平臺(tái)微服務(wù)進(jìn)化。

一、 微服務(wù)架構(gòu)與巨石架構(gòu)的差異

“微服務(wù)”與“巨石架構(gòu)”兩者并非對(duì)立,而是分別針對(duì)不同場(chǎng)景的解決方案。

巨石架構(gòu)指將所有“大腦”集中在一起,以CS架構(gòu)為代表,將所有的邏輯放在唯一應(yīng)用中,再加入前端UI組件、Service、MVC架構(gòu)、數(shù)據(jù)庫(kù)等部分。它的技術(shù)架構(gòu)不復(fù)雜,調(diào)試、部署、管理方便,是適用于絕大部分系統(tǒng)的解決方案。

但是在互聯(lián)網(wǎng)要求“多、快、好、省”的應(yīng)用場(chǎng)景下,“巨石架構(gòu)”面臨諸多挑戰(zhàn)。

多:互聯(lián)網(wǎng)用戶(hù)量巨大,達(dá)百萬(wàn)級(jí)在線(xiàn)量;

快:服務(wù)請(qǐng)求反應(yīng)速度要在一秒以?xún)?nèi)甚至更快;

好:服務(wù)質(zhì)量穩(wěn)定性要高;

省:硬件成本增漲要低于用戶(hù)量增漲速度。

技術(shù)干貨|如何在微服務(wù)架構(gòu)下構(gòu)建高效的運(yùn)維管理平臺(tái)?

△ 巨石架構(gòu)

   如何解決這四個(gè)問(wèn)題——增強(qiáng)整個(gè)平臺(tái)的靈活性。 

技術(shù)干貨|如何在微服務(wù)架構(gòu)下構(gòu)建高效的運(yùn)維管理平臺(tái)?

△ 系統(tǒng)的擴(kuò)展

平臺(tái)擴(kuò)展能力

1.平行擴(kuò)展:一般的無(wú)狀態(tài)服務(wù)器可以通過(guò)服務(wù)器擴(kuò)容完成平行擴(kuò)展;

2.分區(qū):對(duì)于有狀態(tài)的服務(wù)可以通過(guò)分區(qū)增強(qiáng)平臺(tái)靈活性,如:南北方用戶(hù)分屬A、B不同集群。 

平臺(tái)上的擴(kuò)展“巨石架構(gòu)”可以適應(yīng),但是功能上的擴(kuò)展卻比較難適應(yīng)。

功能擴(kuò)展能力

功能維度上,如何使系統(tǒng)變得更融洽?

1.靈活控制成本:局部調(diào)整,變更模塊、邏輯,而不是整個(gè)系統(tǒng)去修改。

巨石架構(gòu)的所有模塊都捆綁在一起,進(jìn)行擴(kuò)展時(shí),由于每個(gè)模塊巨大,只能高成本平行整體擴(kuò)容。

微服務(wù)架構(gòu)下模塊產(chǎn)品的服務(wù)器分布非常靈活,擴(kuò)容成本低,現(xiàn)在都會(huì)選擇將服務(wù)器模塊切分,進(jìn)行微服務(wù)化改造,提升平臺(tái)支撐能力。

二、微服務(wù)架構(gòu)下如何構(gòu)建一個(gè)運(yùn)維管理平臺(tái)

上文講述了微服務(wù)架構(gòu)與巨石架構(gòu)的差異,接下來(lái)了解如何構(gòu)建一個(gè)運(yùn)維管理平臺(tái)。

運(yùn)維平臺(tái)管理最重要的是應(yīng)用。對(duì)于應(yīng)用運(yùn)維來(lái)說(shuō),系統(tǒng)的前端所接入的官網(wǎng)、中間的邏輯服務(wù),后端的存儲(chǔ)、緩存,分屬于不同的運(yùn)維。

把運(yùn)維平臺(tái)拆分成三塊具體化部件對(duì)應(yīng)到工作中。

運(yùn)維平臺(tái)的內(nèi)部應(yīng)用、內(nèi)部依賴(lài)是什么?——程序、配置文件、計(jì)算的資源

是什么支撐運(yùn)維平臺(tái)作為一個(gè)互聯(lián)網(wǎng)應(yīng)用?——內(nèi)存、CPU

運(yùn)維平臺(tái)依賴(lài)的資源有哪些?——系統(tǒng)鏡像

這是CMDB IT資源管理系統(tǒng)要承載的,在自動(dòng)化擴(kuò)容、環(huán)境部署時(shí),只有了解這些數(shù)據(jù),上層系統(tǒng)才知道如何構(gòu)建這個(gè)應(yīng)用。很多運(yùn)維團(tuán)隊(duì),僅僅做到“工具化”,卻沒(méi)有跟“資源管理配置”聯(lián)動(dòng)起來(lái)。

技術(shù)干貨|如何在微服務(wù)架構(gòu)下構(gòu)建高效的運(yùn)維管理平臺(tái)?

資源有效管理之后,是研發(fā)、運(yùn)維這類(lèi)的動(dòng)作管理。如:版本更新,遷移服務(wù)、搭建測(cè)試環(huán)境等標(biāo)準(zhǔn)化的動(dòng)作。

在擁有資源和動(dòng)作,達(dá)成自動(dòng)化運(yùn)維的閉環(huán)后。運(yùn)維人員只需事前維護(hù)好準(zhǔn)確的資源配置數(shù)據(jù)(CMDB),余下動(dòng)作系統(tǒng)會(huì)自驅(qū)完成。如果把資源跟動(dòng)作相混雜,每次運(yùn)用都需要耗費(fèi)資源定制專(zhuān)用的發(fā)布腳本、構(gòu)建腳本。

除了資源跟動(dòng)作管理,還有狀態(tài)(監(jiān)控)管理。每個(gè)公司都會(huì)有“監(jiān)控”系統(tǒng)。這里需要強(qiáng)調(diào)的是意識(shí)的問(wèn)題,因?yàn)樵谡麄€(gè)上層、應(yīng)用層監(jiān)控設(shè)計(jì)中考慮了“自動(dòng)容災(zāi)切換”能力,所以我們不需要關(guān)注底層的監(jiān)控。只要應(yīng)用層沒(méi)有告警,不用管底層服務(wù)器和機(jī)房是否掛掉。

我剛參加工作時(shí),系統(tǒng)經(jīng)常告警,需要半夜爬起來(lái)重啟機(jī)器、刪文件。現(xiàn)在運(yùn)維只會(huì)接到通知,告知服務(wù)器掛掉,進(jìn)行確認(rèn),不用實(shí)時(shí)處理。基于這個(gè)邏輯,在業(yè)務(wù)沒(méi)有告警的情況下,我們系統(tǒng)就是正常的。

完善的運(yùn)維管理平臺(tái)能夠合理的把資源、動(dòng)作、狀態(tài)協(xié)調(diào)管理。

這張圖將上面那張簡(jiǎn)單的圖做了擴(kuò)展、細(xì)分。

最上面是面向運(yùn)維,包含運(yùn)維、研發(fā)者的服務(wù)目錄和日常任務(wù)中心、狀態(tài)中心的統(tǒng)一運(yùn)維門(mén)戶(hù)。

下面是調(diào)度編排系統(tǒng),產(chǎn)品擴(kuò)展根據(jù)不同行業(yè)及其業(yè)務(wù)特性,做出不同編排需求,將這些不同的需求選項(xiàng)進(jìn)行固化。

中間是運(yùn)維平臺(tái)的核心,執(zhí)行層的系統(tǒng)。忽略灰色的傳統(tǒng)API模塊,現(xiàn)在我們運(yùn)維日常使用的就是這個(gè)包括持續(xù)交付平臺(tái)、統(tǒng)一監(jiān)控平臺(tái)和ITOA運(yùn)營(yíng)分析平臺(tái)在內(nèi)的立體化監(jiān)控系統(tǒng),通過(guò)它實(shí)現(xiàn)動(dòng)作、狀態(tài)管理。針對(duì)基礎(chǔ)設(shè)施、平臺(tái)系統(tǒng)、應(yīng)用級(jí)、服務(wù)級(jí)甚至更高層的需求,提供精確度、優(yōu)先級(jí)不同的接口。

底層是CMDB資源管理。傳統(tǒng)CMDB管理對(duì)象,屬于硬件資產(chǎn)。在云化技術(shù)發(fā)展之后,會(huì)越來(lái)越弱化。應(yīng)用運(yùn)維就不需要關(guān)注太多。這里CMDB包含了業(yè)務(wù)信息管理、應(yīng)用程序包、配置、定時(shí)調(diào)度任務(wù)、流程、工具、權(quán)限、系統(tǒng)配置等基礎(chǔ)資源。

三、運(yùn)維平臺(tái)的微服務(wù)進(jìn)化

伴隨著公司業(yè)務(wù)的發(fā)展,如何將正在應(yīng)用的系統(tǒng)進(jìn)行架構(gòu)上的優(yōu)化或者規(guī)劃?

1.技術(shù)選型

首先,微服務(wù)跟基礎(chǔ)架構(gòu)的區(qū)別在于,微服務(wù)的組件拆分后是通過(guò)網(wǎng)絡(luò)傳輸?shù)?。因此通訊?biāo)準(zhǔn)要做出合理的選型。

微服務(wù)的架構(gòu),通常是異構(gòu)架構(gòu)。比如我們的平臺(tái)運(yùn)用了Python、JAVA、PHP等語(yǔ)言,必須選擇同時(shí)兼容多種語(yǔ)言的協(xié)議。就像我們之前選用protobuf時(shí),發(fā)現(xiàn)Python自帶的庫(kù)兼容Linux系統(tǒng)不成熟。在不同場(chǎng)景下,微服務(wù)的技術(shù)選型需要有較強(qiáng)的兼容性。

其次是語(yǔ)言的選擇。微服務(wù)強(qiáng)調(diào)接口的穩(wěn)定性,在保證服務(wù)穩(wěn)定的情況下,可以自由選擇熟悉的語(yǔ)言。

2.微服務(wù)的規(guī)劃

單一職責(zé)原則:每個(gè)服務(wù)應(yīng)該負(fù)責(zé)該功能的一個(gè)單獨(dú)的部分。

明確發(fā)布接口:每個(gè)服務(wù)都會(huì)發(fā)布定義明確的接口,而且保持不變,消費(fèi)者只關(guān)心接口而對(duì)于被消費(fèi)的服務(wù)沒(méi)有任何運(yùn)行依賴(lài);

獨(dú)立部署、升級(jí)、擴(kuò)展和替換:每個(gè)服務(wù)都可以單獨(dú)部署及重新部署而不影響整個(gè)系統(tǒng),這使得服務(wù)很容易升級(jí)與擴(kuò)展。

3. 平臺(tái)構(gòu)建

通過(guò)下面的兩個(gè)模塊來(lái)講解平臺(tái)的架構(gòu)。

1) CMDB系統(tǒng)怎樣做簡(jiǎn)單的分拆,使之更容易維護(hù)?

CMDB是一個(gè)有大量配置系統(tǒng)存在的可以進(jìn)行查詢(xún)、修改的數(shù)據(jù)庫(kù)管理系統(tǒng),它的內(nèi)部包含模型管理,配置管理、自動(dòng)發(fā)現(xiàn)。

技術(shù)干貨|如何在微服務(wù)架構(gòu)下構(gòu)建高效的運(yùn)維管理平臺(tái)?

A)模型管理

CMDB中,我們會(huì)管理大量隨著產(chǎn)品技術(shù)站演進(jìn)動(dòng)態(tài)變化的資源和相異的動(dòng)作,所以要獨(dú)立出模型管理的模塊,保證CMDB動(dòng)態(tài)可調(diào)整。

B)配置管理

由于CMDB的信息敏感度高,很多公司要求,將敏感業(yè)務(wù)信息,特別是應(yīng)用和IP這類(lèi)關(guān)聯(lián)關(guān)系的信息保存在里面。

C)自動(dòng)發(fā)現(xiàn)

如果CMDB沒(méi)有完善的自動(dòng)發(fā)現(xiàn)機(jī)制,它失敗的概率會(huì)非常高。就像傳統(tǒng)CMDB有一個(gè)在嚴(yán)謹(jǐn)?shù)膶徟鷻C(jī)制運(yùn)行下的配置變更流程。但是即使在配置跟現(xiàn)網(wǎng)一致的情況下,還是需要每半年進(jìn)行一次資產(chǎn)盤(pán)整,對(duì)信息進(jìn)行糾正。對(duì)于有海量業(yè)務(wù)的系統(tǒng)來(lái)說(shuō),沒(méi)有“自動(dòng)發(fā)現(xiàn)”能力的CMDB是不合格的

通過(guò)“自動(dòng)發(fā)現(xiàn)”,去自動(dòng)化采集服務(wù)器帶寬、網(wǎng)卡速度、內(nèi)存、磁盤(pán)空間、進(jìn)程等信息,由CMDB進(jìn)行管理。模塊管理相對(duì)傳統(tǒng),“自動(dòng)發(fā)現(xiàn)”是CMDB的核心,在同時(shí)管理數(shù)十萬(wàn)臺(tái)服務(wù)器時(shí),只能通過(guò)“自動(dòng)發(fā)現(xiàn)”的探偵才能進(jìn)行自動(dòng)化維護(hù)。

2) 持續(xù)部署系統(tǒng)

 技術(shù)干貨|如何在微服務(wù)架構(gòu)下構(gòu)建高效的運(yùn)維管理平臺(tái)?

持續(xù)部署系統(tǒng)負(fù)責(zé)自動(dòng)化發(fā)布。上圖將持續(xù)部署系統(tǒng)的平臺(tái)構(gòu)建分為多個(gè)子模塊。

A) 構(gòu)建管理

構(gòu)建即以靜態(tài)圖片、業(yè)務(wù)程序、配置文件等為主的部署對(duì)象。根據(jù)DevOps中的原則,需要將一切版本化。所以需要一個(gè)構(gòu)建庫(kù)負(fù)責(zé)管理所有發(fā)布到生產(chǎn)環(huán)境的資源。

通過(guò)統(tǒng)一的構(gòu)建庫(kù),對(duì)所有發(fā)布到線(xiàn)網(wǎng)上的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化管理,以此可以快速在其他機(jī)房重建原系統(tǒng)等。同時(shí)它還擁有信息共享功能,過(guò)去運(yùn)維發(fā)包之后跟蹤困難,現(xiàn)在研發(fā)人員只需向構(gòu)建庫(kù)輸入版本信息,運(yùn)維從構(gòu)建庫(kù)中導(dǎo)出就好了。

B) 任務(wù)管理

任務(wù)庫(kù)負(fù)責(zé)存儲(chǔ)日常發(fā)布任務(wù),滿(mǎn)足自動(dòng)化發(fā)布需求。曾經(jīng)由于很多研發(fā)人員貪圖方便,選擇在現(xiàn)網(wǎng)直接更改系統(tǒng),記錄信息錯(cuò)亂變更很不利于任務(wù)管理的日常下發(fā)。

常常是錯(cuò)誤的,所以我們并不使用“任務(wù)下發(fā)完成之后,系統(tǒng)設(shè)置自動(dòng)更新”這種設(shè)計(jì)。在無(wú)法信任上層管理系統(tǒng)的情況下,現(xiàn)網(wǎng)信息、數(shù)據(jù)必須實(shí)時(shí)掃描上報(bào)。

為了保證信息的發(fā)布成功,必須以Agent上報(bào)的信息為準(zhǔn)。因?yàn)榕渲眯畔⒋嬖诖罅孔兏肟?,在無(wú)法保證唯一入口的情況下,不能想當(dāng)然的設(shè)計(jì)系統(tǒng)。

命令通道與數(shù)據(jù)通道是除了構(gòu)建庫(kù)、任務(wù)庫(kù)、實(shí)例庫(kù)之外的上層系統(tǒng)的基本構(gòu)成。首先命令通道與數(shù)據(jù)通道需要分開(kāi)管理。騰訊曾經(jīng)需要將1G的文件發(fā)送到兩千臺(tái)服務(wù)器,頻率達(dá)到一周一次,一次一周,不斷重試、失敗。后來(lái)將命令與數(shù)據(jù)切開(kāi),每次只傳輸幾十K的命令腳本,服務(wù)器再也沒(méi)有阻塞。

開(kāi)源方案部分問(wèn)題依舊無(wú)法解決,像現(xiàn)在的異構(gòu)網(wǎng)絡(luò),在混合云的場(chǎng)景下,必須保證網(wǎng)絡(luò)互通,才能做到直連。大家可以選擇自己去編寫(xiě)Agent練手,通過(guò)反向通道連接中心管理服務(wù)器去解決此問(wèn)題。

微服務(wù)架構(gòu)下平臺(tái)架構(gòu)的底層基礎(chǔ)服務(wù)   

1.名字服務(wù)

名字服務(wù)指通過(guò)配置文件中匹配的名字查IP端口的服務(wù),可以選擇合適的開(kāi)源方案。如果自研的話(huà),可以對(duì)服務(wù)進(jìn)行靈活分區(qū)等。如深圳的服務(wù)器A訪(fǎng)問(wèn)在深圳、上海兩地均部署服務(wù)的B,我們只需要在,名字服務(wù)中與CMDB打通,使用深圳的服務(wù)器訪(fǎng)問(wèn)深圳的IP,達(dá)到同城訪(fǎng)問(wèn)的效果。這個(gè)操作在開(kāi)源方案中就無(wú)法完美實(shí)現(xiàn)。

2. 狀態(tài)監(jiān)控

要求能達(dá)到接口即調(diào)用數(shù)據(jù)采集的應(yīng)用層監(jiān)控。

通過(guò)訪(fǎng)問(wèn)量、成功率、平均時(shí)延這三個(gè)核心指標(biāo),低成本把握絕大部分需求。以訪(fǎng)問(wèn)量為例,當(dāng)訪(fǎng)問(wèn)失敗率上升告警時(shí),直接觸發(fā)名字服務(wù)聯(lián)動(dòng),將故障節(jié)點(diǎn)自動(dòng)摘除。

3.負(fù)載均衡

當(dāng)系統(tǒng)規(guī)模擴(kuò)大,節(jié)點(diǎn)劇增時(shí),增加中間代理的方法會(huì)增加系統(tǒng)內(nèi)部壓力。

如果落地到Agent,通過(guò)名字服務(wù)查詢(xún)IP列表,合并狀態(tài)信息,均衡節(jié)點(diǎn)請(qǐng)求,可以更好的達(dá)到負(fù)載均衡。

負(fù)載均衡的極端就是容災(zāi),正常情況下根據(jù)性能狀況保證每個(gè)節(jié)點(diǎn)處理合適的請(qǐng)求量即可。

這三點(diǎn)是運(yùn)維平臺(tái)或業(yè)務(wù)生產(chǎn)的系統(tǒng)中的核心能力。包括騰訊在內(nèi)的運(yùn)維平臺(tái)都是基于這三個(gè)服務(wù)閉環(huán)去運(yùn)行的。只有在做到這三點(diǎn),才能解決系統(tǒng)異常,維持系統(tǒng)的正常運(yùn)轉(zhuǎn)。

微服務(wù)運(yùn)維平臺(tái)的迭代重心

其實(shí)我們?cè)谄脚_(tái)構(gòu)建的時(shí)候,在整個(gè)的平臺(tái)進(jìn)化的過(guò)程中,其實(shí)是要有優(yōu)先級(jí),要有取舍的。總得來(lái)說(shuō),優(yōu)先要解決我們的瓶頸問(wèn)題。 然后是平行擴(kuò)展的能力,還有考慮服務(wù)復(fù)用的能力,甚至是一些開(kāi)源的解決方案的利用。但是開(kāi)源這個(gè)東西,我從來(lái)不覺(jué)得是說(shuō)大家把一堆的開(kāi)源工具用在一起,能夠形成一個(gè)很好的一個(gè)運(yùn)維平臺(tái)。

大家應(yīng)該是把這些開(kāi)源的能力,這些一個(gè)個(gè)的微服務(wù),核心的這個(gè)架構(gòu)還是必須要有自己的控制力在這里。比如:監(jiān)控。很多開(kāi)源的系統(tǒng),它是更偏重于執(zhí)行層的工具,但是核心的CMDB,核心的流程控制還是需要我們?nèi)ソㄔO(shè)的。

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知

技術(shù)干貨|如何在微服務(wù)架構(gòu)下構(gòu)建高效的運(yùn)維管理平臺(tái)?

分享:
相關(guān)文章
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話(huà)
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶(hù)安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)