国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

應(yīng)用運(yùn)維自動化平臺設(shè)計與實(shí)踐

2019-10-07 14:59:33蔡國華黃鵬秦國鋒
新一代 2019年13期
關(guān)鍵詞:自動化

蔡國華 黃鵬 秦國鋒

摘 要:中國搜索應(yīng)用運(yùn)維自動化平臺,是根據(jù)技術(shù)業(yè)務(wù)實(shí)際需求設(shè)計和研發(fā)的,實(shí)現(xiàn)了對關(guān)系型數(shù)據(jù)庫、nosql數(shù)據(jù)庫、存儲和緩存系統(tǒng)等自動化部署和管理,有效地提升了應(yīng)用運(yùn)維的效率,降低了技術(shù)系統(tǒng)因故障隱患而產(chǎn)生的風(fēng)險。

關(guān)鍵詞:應(yīng)用運(yùn)維;自動化;SaltStack

一、平臺建設(shè)背景

傳統(tǒng)運(yùn)維管理對服務(wù)器的操作幾乎都是手動方式:手動安裝操作系統(tǒng)、手動部署應(yīng)用、手動更新等。中國搜索隨著業(yè)務(wù)快速發(fā)展,服務(wù)器數(shù)量日趨龐大,技術(shù)架構(gòu)也越來越復(fù)雜,涉及到關(guān)系型數(shù)據(jù)庫、nosql數(shù)據(jù)庫、存儲和緩存系統(tǒng)等使用和管理。在日常的應(yīng)用運(yùn)維工作中,也碰到了越來越多的問題,主要表現(xiàn)在:

·服務(wù)器數(shù)量龐大,通過手動方式部署應(yīng)用和更新,運(yùn)維效率較低。

·應(yīng)用系統(tǒng)和數(shù)據(jù)庫版本不統(tǒng)一,維護(hù)起來比較困難。

·線上業(yè)務(wù)種類復(fù)雜,各個應(yīng)用系統(tǒng)采用不同的配置,無法進(jìn)行統(tǒng)一配置管理

·以傳統(tǒng)方式登陸服務(wù)器查看應(yīng)用日志,效率比較低,無法對日志做出有效的處理和分析。

為了提高運(yùn)維效率,對涉及到的應(yīng)用系統(tǒng)和數(shù)據(jù)庫進(jìn)行統(tǒng)一管理,將運(yùn)維人員從重復(fù)性的工作中解放出來,有必要開發(fā)一套應(yīng)用運(yùn)維自動化平臺,實(shí)現(xiàn)對關(guān)系型數(shù)據(jù)庫、nosql數(shù)據(jù)庫、存儲和緩存系統(tǒng)等自動化部署和管理。

二、應(yīng)用運(yùn)維自動化平臺技術(shù)介紹

中國搜索應(yīng)用運(yùn)維自動化平臺是基于開源軟件SaltStack,使用python開發(fā),是集應(yīng)用系統(tǒng)安裝、配置、管理、監(jiān)控于一體的自動化運(yùn)維平臺。主要使用的技術(shù)如下:

(一)開源軟件Saltstack

SaltStack是一個服務(wù)器基礎(chǔ)架構(gòu)集中化管理平臺,具備配置管理、遠(yuǎn)程執(zhí)行、監(jiān)控等功能,基于Python語言實(shí)現(xiàn),結(jié)合輕量級消息隊(duì)列(ZeroMQ)與Python第三方模塊構(gòu)建。通過部署SaltStack,可以在大規(guī)模服務(wù)器集群上做到批量執(zhí)行命令,根據(jù)不同業(yè)務(wù)進(jìn)行配置集中化管理、分發(fā)文件、采集服務(wù)器數(shù)據(jù)、操作系統(tǒng)基礎(chǔ)及軟件包管理等。

SaltStack具有以下特性,實(shí)現(xiàn)系統(tǒng)批量管理:

·部署簡單、管理方便。

·支持大部分的操作系統(tǒng),如Unix/Linux/Windows環(huán)境;架構(gòu)上使用C/S管理模式,易于擴(kuò)展。

·配置簡單、功能覆蓋廣。

·主控端(Master)與被控端(Minion)基于證書認(rèn)證,確保安全可靠的通信。

·支持API及自定義Python模塊,輕松實(shí)現(xiàn)功能擴(kuò)展。

SaltStack的異步執(zhí)行模式可以很好地應(yīng)對上千臺設(shè)備(甚至更多)的任務(wù)執(zhí)行,特別適合耗時場景的應(yīng)用。

(二)前端界面采用Vue開發(fā)

Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架。與其它大型框架不同的是,Vue 被設(shè)計為可以自底向上逐層應(yīng)用。Vue 的核心庫只關(guān)注視圖層,不僅易于上手,還便于與第三方庫或既有項(xiàng)目整合。另一方面,當(dāng)與現(xiàn)代化的工具鏈以及各種支持類庫結(jié)合使用時,Vue也完全能夠?yàn)閺?fù)雜的單頁應(yīng)用提供驅(qū)動。

(三)后端程序采用Python+flask

Flask是一個基于Python開發(fā)并且依賴jinja2模板和Werkzeug WSGI服務(wù)的一個微型框架,對于Werkzeug本質(zhì)是Socket服務(wù)端,其用于接收http請求并對請求進(jìn)行預(yù)處理,然后觸發(fā)Flask框架,開發(fā)人員基于Flask框架提供的功能對請求進(jìn)行相應(yīng)的處理,并返回給用戶,如果要返回給用戶復(fù)雜的內(nèi)容時,需要借助jinja2模板來實(shí)現(xiàn)對模板的處理。

三、應(yīng)用運(yùn)維自動化平臺架構(gòu)

(一)部署方案

中國搜索應(yīng)用運(yùn)維自動化平臺,以SaltStack為底層架構(gòu),前端采用Vue技術(shù),后端采用Python+flask,前后端分離,功能上實(shí)現(xiàn)集安裝,配置,集中管理為一體。部署過程如下:

·服務(wù)器端Master 角色的安裝,配置好yum 源。

·客戶端Minion角色的安裝,配置好yum 源。

·客戶端Minion 配置

SaltStack-Minion 是 SaltStack 安裝在客戶端的代理,負(fù)責(zé)接收服務(wù)器端發(fā)布的指令并執(zhí)行,同時負(fù)責(zé)客戶端的狀態(tài)監(jiān)控??蛻舳艘氡?master 管理,需要修改其配置文件,將服務(wù)器指向到 Master 的地址。其配置文件位于/etc/salt/目錄下,名為 minion。

·服務(wù)器端Master 配置

SaltStack-Master 是 SaltStack 組件的核心服務(wù),負(fù)責(zé)發(fā)布指令及配置文件的分發(fā)與管理,及客戶端的管理功能。Master 要想正常提供服務(wù),需要接受客戶端的證書認(rèn)證請求。SaltStack 是通過 SSL 證書認(rèn)證的方式進(jìn)行通信的。輸入 salt-key? l 來查詢客戶端證書狀態(tài),并輸入 salt-key? A 接受客戶端認(rèn)證。

·搭建Flask+uwsgi+Nginx部署

在WEB服務(wù)器上搭建Flask+uwsgi+Nginx環(huán)境,并將后端代碼上傳到指定位置并啟動相應(yīng)的服務(wù)。

(二)整體架構(gòu)

·SaltStack Minion Master架構(gòu)

SaltStack采用 C/S 的架構(gòu),從部署結(jié)構(gòu)上看,SaltStack的在部署上可以分為Master和Minion兩個部分,其中Master相當(dāng)于統(tǒng)領(lǐng)所有機(jī)器的總管,而Minion則是部署在被管理機(jī)器上面的agent進(jìn)程,Master 可以發(fā)送任何指令讓 Minion 執(zhí)行,salt 有很多可執(zhí)行模塊,比如說CMD模塊,在安裝Minion的時候已經(jīng)自帶了,它們通常位于python 庫中。

SaltStack客戶端(Minion)在啟動時,會自動生成一套密鑰,包含私鑰和公鑰。之后將公鑰發(fā)送給SaltStack服務(wù)器端(Master),服務(wù)器端驗(yàn)證并接受公鑰,以此來建立可靠且加密的通信連接。同時通過消息隊(duì)列ZeroMQ在客戶端與服務(wù)端之間建立消息發(fā)布連接。

·Python+Flask架構(gòu)

利用Python的Salt模塊,自定義開發(fā)相應(yīng)的應(yīng)用模塊,并調(diào)用SaltStack Master 遠(yuǎn)程執(zhí)行和下發(fā)相應(yīng)的命令在SaltStack Minion上面執(zhí)行。

四、應(yīng)用運(yùn)維自動化平臺功能

中國搜索應(yīng)用運(yùn)維自動化平臺主要提供了以下功能:

·應(yīng)用安裝:Mysql高可用集群、Redis集群、MongoDB集群、ES集群、FastDFS集群自動化安裝。

·配置管理:日常運(yùn)維涉及的配置文件管理,包括配置文件比對、配置文件批量更新等。

·日常運(yùn)維:網(wǎng)站靜態(tài)文件上線,回滾等日常操作。

·集中監(jiān)控: 自動安裝配置各個應(yīng)用系統(tǒng)的監(jiān)控腳本,使用Zabbix實(shí)現(xiàn)集中監(jiān)控。

·集中備份: 集中備份關(guān)鍵數(shù)據(jù),例如Mysql,Mongodb等數(shù)據(jù)。

·集中日志管理: 使用ELK管理操作日志,方便查詢、統(tǒng)計。

(一)Mysql主從高可用架構(gòu)的自動化部署

Mysql是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其體積小、速度快,是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。

應(yīng)用運(yùn)維自動化平臺實(shí)現(xiàn)了Mysql的自動化安裝和配置。同時實(shí)現(xiàn)了對Keepalived和LVS自動化配置,實(shí)現(xiàn)了Mysql讀寫分離,主從自動化切換的高可用架構(gòu)。實(shí)現(xiàn)步驟如下:

·使用SaltStack把Mysql+LVS+Keepalived的高可用架構(gòu)模塊化。

·根據(jù)Web調(diào)用情況,程序會將Mysql安裝模塊下發(fā)到需要執(zhí)行Mysql安裝的機(jī)器。

·然后根據(jù)用戶輸入修改Keepalived配置和生成虛擬的讀寫IP。

·設(shè)置Mysql備份策略,實(shí)現(xiàn)自動化定時備份。

·查看每個管理的Mysql慢查詢的統(tǒng)計情況。

(二)Redis集群自動安裝配置

Redis集群是Redis官方提供的分布式解決方案,在3.0版本后推出的,有效地解決了Redis分布式的需求,當(dāng)一個Redis節(jié)點(diǎn)掛了可以快速的切換到另一個節(jié)點(diǎn)。當(dāng)遇到單機(jī)內(nèi)存、并發(fā)等瓶頸時,可以采用分布式方案要解決問題。

應(yīng)用運(yùn)維自動化平臺可以自動化安裝配置Redis,一鍵構(gòu)建Redis集群。應(yīng)用自動化平臺可以控制Redis實(shí)例啟停。應(yīng)用自動化平臺實(shí)現(xiàn)了Redis連接集中管理。實(shí)現(xiàn)步驟如下:

·使用SaltStack把Redis實(shí)例安裝模塊化。

·根據(jù)Web調(diào)用情況,程序會將Redis安裝模塊下發(fā)到需要執(zhí)行Redis安裝的機(jī)器。

·根據(jù)Redis實(shí)例的安裝情況,一鍵構(gòu)建Redis集群。

·可以查看Redis各個實(shí)例的連接數(shù)情況。

(三)MongoDB分片集群自動安裝配置

MongoDB分片是一種在多臺機(jī)器上分配數(shù)據(jù)的方法。MongoDB使用分片來支持具有非常大的數(shù)據(jù)集和高吞吐量操作。

應(yīng)用運(yùn)維自動化平臺實(shí)現(xiàn)了MongoDB分片集群的自動化安裝。實(shí)現(xiàn)了MongoDB實(shí)例的數(shù)據(jù)節(jié)點(diǎn)、集中配置、路由的自動化配置。實(shí)現(xiàn)了MongoDB實(shí)例的集中啟停,集中備份等功能。實(shí)現(xiàn)步驟如下:

·開發(fā)SaltStack MongoDB 安裝模塊、配置模塊、啟停模塊。

·通過前端Vue的請求下發(fā)MongoDB模塊到指定的機(jī)器。

·通過Python 調(diào)用Salt MongoDB安裝模塊,遠(yuǎn)程安裝MongoDB。

·通過Python MongoDB配置模塊,遠(yuǎn)程配置MongoDB。

·通過MongoDB啟停模塊,可以管理整個MongoDB機(jī)器。

·通過遠(yuǎn)程管理MongoDB主機(jī)實(shí)現(xiàn)MongoDB定時備份。

(四)ES集群自動安裝配置

ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發(fā)的,作為Apache許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級搜索引擎。

應(yīng)用運(yùn)維自動化平臺實(shí)現(xiàn)了ElasticSearch集群自動化安裝,并根據(jù)不同的應(yīng)用要求調(diào)整ElasticSearch集群中Node節(jié)點(diǎn)的配置,以便實(shí)現(xiàn)Node節(jié)點(diǎn)不同的角色,并管理整個ElasticSearch集群中Node節(jié)點(diǎn)的啟停。

(五)FastDFS集群自動安裝配置

FastDFS是一款開源的高性能分布式文件系統(tǒng)。主要功能包括文件存儲,文件同步和文件訪問,以及高容量和負(fù)載平衡,主要解決了海量數(shù)據(jù)存儲問題,特別適合以中小文件為載體的在線服務(wù)。

應(yīng)用運(yùn)維自動化平臺實(shí)現(xiàn)了FastDFS存儲集群的安裝,并可以定制FastDFS跟蹤服務(wù)器(Tracker Server)、存儲服務(wù)器(Storage Server)和客戶端(Clinet)的配置,并管理上述不同F(xiàn)astDFS角色啟停。

五、總結(jié)與展望

中國搜索應(yīng)用運(yùn)維自動化平臺,是根據(jù)公司技術(shù)業(yè)務(wù)實(shí)際需求設(shè)計和研發(fā)的,實(shí)現(xiàn)了對關(guān)系型數(shù)據(jù)庫、nosql數(shù)據(jù)庫、存儲和緩存系統(tǒng)等自動化部署和管理,有效地提升了應(yīng)用運(yùn)維的效率,降低了技術(shù)系統(tǒng)因故障隱患而產(chǎn)生的風(fēng)險。該平臺可靈活擴(kuò)展至更多運(yùn)維場景,具備向數(shù)據(jù)化、智能化演進(jìn)的可能性。目前我們正在對平臺向容器和微服務(wù)方向進(jìn)行研發(fā)與集成,使自動化覆蓋面能夠更加廣泛。后續(xù)我們還將根據(jù)業(yè)務(wù)實(shí)際需求,將機(jī)器學(xué)習(xí)和大數(shù)據(jù)技術(shù)應(yīng)用于自動化運(yùn)維中,實(shí)現(xiàn)智能化運(yùn)維。

參考文獻(xiàn):

[1]SaltStack官方說明:http://docs.saltstack.cn/

[2]Vue官方教程:https://cn.vuejs.org/v2/guide/

[3]Flask教程:http://docs.jinkan.org/docs/flask/

猜你喜歡
自動化
國內(nèi)焊接設(shè)備市場現(xiàn)狀及發(fā)展趨勢研究
供電企業(yè)電力自動化主站系統(tǒng)研究
錦界煤礦連采膠帶機(jī)集控系統(tǒng)的介紹
供熱站自動控制系統(tǒng)中PLC的應(yīng)用
AGV小車在白酒行業(yè)自動化立體倉庫中的應(yīng)用
中國市場(2016年36期)2016-10-19 03:40:15
電氣工程及其自動化問題與對策
我國機(jī)械設(shè)計制造及其自動化的現(xiàn)狀及發(fā)展趨勢
淺論節(jié)能設(shè)計理念在機(jī)械制造與自動化中的應(yīng)用
簡析火力發(fā)電廠熱工自動化儀表應(yīng)用及故障排除方法
配網(wǎng)自動化實(shí)用化模式建設(shè)及系統(tǒng)運(yùn)行
宁武县| 广州市| 榆中县| 保德县| 区。| 栾川县| 新巴尔虎左旗| 双牌县| 象山县| 仪陇县| 香港 | 德庆县| 凤台县| 南江县| 集贤县| 东平县| 蒙山县| 拉萨市| 特克斯县| 北宁市| 赤城县| 阳城县| 阜康市| 湄潭县| 延庆县| 卓尼县| 固镇县| 剑川县| 许昌县| 齐齐哈尔市| 平罗县| 新沂市| 德阳市| 乌苏市| 栾川县| 体育| 阳曲县| 涟水县| 东乌珠穆沁旗| 临澧县| 永州市|