了解最新公司動態(tài)及行業(yè)資訊
講師簡介
胡俊亞:攜程高級技術(shù)支持工程師
個(gè)人簡介:攜程技術(shù)支持中心高級技術(shù)支持工程師,負(fù)責(zé)管理公司及其他運(yùn)維平臺,開發(fā)運(yùn)維自動化工具
與您分享的主題是基于攜程的運(yùn)維自動化平臺
今年5月,勒索病毒爆發(fā),席卷全球,波及政府部門、醫(yī)療機(jī)構(gòu)、公共交通、學(xué)校、企業(yè)等,給世界帶來巨大損失
如果有投資眼光的人遇到這個(gè)問題,他們可能會考慮購買比特幣。作為一名運(yùn)維工程師,我只考慮如何防止病毒影響我公司的業(yè)務(wù)。我相信很多運(yùn)維同事都參與了打擊勒索病毒的斗爭
盡管該病毒傳播范圍廣,似乎很強(qiáng)大,但有許多應(yīng)對措施。例如,關(guān)閉端口445以防止病毒傳播,或在上建立交換機(jī)域名以防止病毒運(yùn)行。當(dāng)然,這些都是唯一的解決方案。基本上,服務(wù)器的安全補(bǔ)丁應(yīng)該及時(shí)更新
如果只有幾個(gè)或幾十個(gè)服務(wù)器,則補(bǔ)丁更新非常簡單。您可以登錄并單擊安裝或單擊命令。當(dāng)您有數(shù)千臺服務(wù)器時(shí),不可能依靠手動工作。一次向所有服務(wù)器發(fā)送命令是不合適的,這可能會對業(yè)務(wù)產(chǎn)生巨大影響
那么,如何自動修補(bǔ)數(shù)以萬計(jì)的服務(wù)器
讓我們首先看看如何修補(bǔ)服務(wù)器
上圖是一個(gè)相對簡單的操作過程。首先,檢查服務(wù)器是否安裝了修補(bǔ)程序。如果是,則過程結(jié)束。如果尚未安裝,請首先將服務(wù)器從群集中拉離生產(chǎn)環(huán)境,然后安裝修補(bǔ)程序,然后重新啟動服務(wù)器以使修補(bǔ)程序生效
在進(jìn)入集群之前,您可能需要啟動應(yīng)用程序,例如,讓應(yīng)用程序構(gòu)建緩存,將應(yīng)用程序恢復(fù)到正常狀態(tài),然后訪問生產(chǎn)流量。還有一些復(fù)雜的問題。例如,集群拉出一些服務(wù)器后,其余的服務(wù)器可能無法承載它們。應(yīng)考慮群集可用性
如果要自動化修補(bǔ)服務(wù)器的過程,需要完成兩項(xiàng)任務(wù):
自動修補(bǔ)一臺服務(wù)器后,它將從1臺擴(kuò)展到100臺,并修補(bǔ)數(shù)千臺服務(wù)器。要做的一件事是把重要的事情說三遍
無論您在操作方面有多熟練,在技術(shù)方面有多熟練,在開發(fā)工具方面有多自信,在進(jìn)行大規(guī)模生產(chǎn)操作和維護(hù)時(shí)都應(yīng)該謹(jǐn)慎。批量灰度是一種很好的謹(jǐn)慎方式,可以大大減少對生產(chǎn)的影響,提高網(wǎng)站的可用性
基于以上對數(shù)萬臺服務(wù)器自動補(bǔ)丁的需求,我們搭建了一個(gè)自動運(yùn)維平臺,包括三個(gè)模塊:
這樣的系統(tǒng)不僅可以完成配線功能,而且基本上可以覆蓋日常運(yùn)行維護(hù)的各種自動化要求。因此,它與您共享
下面將詳細(xì)介紹這三個(gè)方面
遙控器
它是一個(gè)開源的遠(yuǎn)程管理平臺,可以管理各種操作系統(tǒng)的服務(wù)器,主要包括和。它安裝在要管理的服務(wù)器上。啟動后,它將與建立長連接,向發(fā)送任務(wù),并將任務(wù)結(jié)果返回給
類似的遠(yuǎn)程管理工具包括、chef和。您可以根據(jù)實(shí)際應(yīng)用場景進(jìn)行選擇。去年,我在GOPs北京分享了攜程的一些經(jīng)驗(yàn)。你可以參考它。我不再重復(fù)了
2.操作流程
從運(yùn)維的發(fā)展過程來看,首先是傳統(tǒng)運(yùn)維,主要依靠人工操作。例如,啟動服務(wù)器時(shí),登錄服務(wù)器會根據(jù)操作文檔逐步操作。更高級的是,將配置命令寫入腳本,然后運(yùn)行一個(gè)或多個(gè)腳本來完成配置
缺點(diǎn)是什么?首先,人們每天重復(fù)這樣的工作,這很累,不體現(xiàn)價(jià)值。配送效率低。當(dāng)他們感到疲勞時(shí),很容易出錯(cuò)并忘記一些配置
使用腳本很容易用相同的函數(shù)重復(fù)開發(fā)。許多腳本沒有專門記錄日志,因此很難找到歷史操作。腳本用于運(yùn)維操作,出現(xiàn)故障。由于沒有統(tǒng)一的運(yùn)維操作日志,不可能及時(shí)知道誰做了什么
隨著時(shí)代的發(fā)展,運(yùn)維已經(jīng)發(fā)展到一個(gè)更加先進(jìn)的時(shí)代,我們也處在這個(gè)時(shí)代。這個(gè)時(shí)代的一個(gè)明顯特征是使用各種開源工具和開發(fā)許多工具。該工具提高了效率,大大加快了操作和維護(hù)自動化的進(jìn)程
有這么多可用的工具,將會出現(xiàn)一些問題。例如,以下問題:
為了解決上述問題,我們考慮使用基于事件驅(qū)動的開源自動化運(yùn)維平臺
您有多種工具為許多操作提供API。可以在上實(shí)現(xiàn)這些API調(diào)用,然后可以將它們組合到復(fù)雜的任務(wù)中
可實(shí)現(xiàn)插件操作,操作邏輯可視化,運(yùn)維日志統(tǒng)一
提供web界面和API。您可以將各種工具的操作放入其中服務(wù)器運(yùn)維,選擇操作,填寫參數(shù),然后單擊運(yùn)行
你能用它做什么
在我們的日常生活中有許多不同的變更操作,但我們經(jīng)常重復(fù)做相同的事情,例如安裝軟件、重新啟動服務(wù)、拉入和拉出集群等。如果不同的變更操作流程被拆分,那么這些小的操作和維護(hù)原子操作將被拆分
相反,我們可以將這些操作和維護(hù)原子操作結(jié)合起來。例如,樂高積木可以拼出各種模型,我可以將原子操作結(jié)合到各種更改過程中。這樣,同一個(gè)操作只需實(shí)現(xiàn)一次,就可以重用,避免了重復(fù)的車輪制造,大大提高了開發(fā)效率
在故障處理方面,我們來看一個(gè)常規(guī)案例
例如,在凌晨2點(diǎn),有一個(gè)關(guān)于訂單下降的警報(bào)。NOC召開電話會議,并致電相關(guān)工程師。接到電話后,工程師們模模糊糊地站了起來,問出了什么問題。國家奧委會需要發(fā)表聲明。然后工程師們趕緊打開電腦,通過VPN登錄內(nèi)網(wǎng)查看相關(guān)監(jiān)控指標(biāo),并利用自己的經(jīng)驗(yàn)進(jìn)行故障排除。最終定位故障、修復(fù)并最終恢復(fù)需要花費(fèi)大量時(shí)間
這種故障處理過程有什么問題
1、修復(fù)時(shí)間長
半夜處理故障。操作容易出錯(cuò),影響第二天的工作
3、隨著業(yè)務(wù)的增長,警報(bào)數(shù)量增加,無法及時(shí)處理
4、網(wǎng)站可用性降低
如果是,故障排除的過程是什么?您可以監(jiān)視警報(bào)。當(dāng)報(bào)警發(fā)送到時(shí),您可以先執(zhí)行一些分析。根據(jù)專家經(jīng)驗(yàn)或機(jī)器學(xué)習(xí),分析完成后,可以判斷報(bào)警是否可以自動處理。如果是,您可以執(zhí)行故障修復(fù)和故障恢復(fù)
如果您自己無法處理,您將收集故障異常內(nèi)容和初步分析結(jié)果,并發(fā)送給相應(yīng)的工程師服務(wù)器運(yùn)維,這為工程師收集信息和排除故障節(jié)省了一些時(shí)間,工程師可以快速修復(fù)故障。對于一些常見的、多發(fā)的故障,如果有固定的處理方法,可以移交給自動處理
可與結(jié)合進(jìn)行日常操作和維護(hù)。例如,當(dāng)您參與GOP時(shí),您可以向您發(fā)送警報(bào)和初步分析。您可以通過手機(jī)向聊天室發(fā)送指示以快速修復(fù)故障
在了解的一些功能之后,讓我們看看的部署體系結(jié)構(gòu)。圖中黃色部分是的主要模塊,包括身份驗(yàn)證、API、規(guī)則引擎、、webui等。作為引擎,它充當(dāng)數(shù)據(jù)庫,存儲定義和日志,是所有任務(wù)的消息隊(duì)列。這是一個(gè)高度可用的體系結(jié)構(gòu)。并在每臺服務(wù)器上運(yùn)行
這是的數(shù)據(jù)流圖。聊天通過此處的規(guī)則引擎映射到操作。上述操作和維護(hù)的原子操作被合并到一個(gè)工作流中。工作流的解決由完成,每個(gè)特定執(zhí)行由完成
有三個(gè)好處:
3.批量灰度
雖然它有很多優(yōu)點(diǎn),但當(dāng)您想要執(zhí)行
24小時(shí)免費(fèi)咨詢
請輸入您的聯(lián)系電話,座機(jī)請加區(qū)號