• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    應(yīng)用運(yùn)維自動(dòng)化平臺(tái)設(shè)計(jì)與實(shí)踐

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

    蔡國(guó)華 黃鵬 秦國(guó)鋒

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

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

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

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

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

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

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

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

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

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

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

    (一)開源軟件Saltstack

    SaltStack是一個(gè)服務(wù)器基礎(chǔ)架構(gòu)集中化管理平臺(tái),具備配置管理、遠(yuǎn)程執(zhí)行、監(jiān)控等功能,基于Python語言實(shí)現(xiàn),結(jié)合輕量級(jí)消息隊(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)批量管理:

    ·部署簡(jiǎn)單、管理方便。

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

    ·配置簡(jiǎn)單、功能覆蓋廣。

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

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

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

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

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

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

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

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

    (一)部署方案

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

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

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

    ·客戶端Minion 配置

    SaltStack-Minion 是 SaltStack 安裝在客戶端的代理,負(fù)責(zé)接收服務(wù)器端發(fā)布的指令并執(zhí)行,同時(shí)負(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)證請(qǐng)求。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)境,并將后端代碼上傳到指定位置并啟動(dòng)相應(yīng)的服務(wù)。

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

    ·SaltStack Minion Master架構(gòu)

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

    SaltStack客戶端(Minion)在啟動(dòng)時(shí),會(huì)自動(dòng)生成一套密鑰,包含私鑰和公鑰。之后將公鑰發(fā)送給SaltStack服務(wù)器端(Master),服務(wù)器端驗(yàn)證并接受公鑰,以此來建立可靠且加密的通信連接。同時(shí)通過消息隊(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)維自動(dòng)化平臺(tái)功能

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    五、總結(jié)與展望

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

    猜你喜歡
    自動(dòng)化
    國(guó)內(nèi)焊接設(shè)備市場(chǎng)現(xiàn)狀及發(fā)展趨勢(shì)研究
    供電企業(yè)電力自動(dòng)化主站系統(tǒng)研究
    錦界煤礦連采膠帶機(jī)集控系統(tǒng)的介紹
    供熱站自動(dòng)控制系統(tǒng)中PLC的應(yīng)用
    AGV小車在白酒行業(yè)自動(dòng)化立體倉庫中的應(yīng)用
    電氣工程及其自動(dòng)化問題與對(duì)策
    我國(guó)機(jī)械設(shè)計(jì)制造及其自動(dòng)化的現(xiàn)狀及發(fā)展趨勢(shì)
    淺論節(jié)能設(shè)計(jì)理念在機(jī)械制造與自動(dòng)化中的應(yīng)用
    簡(jiǎn)析火力發(fā)電廠熱工自動(dòng)化儀表應(yīng)用及故障排除方法
    配網(wǎng)自動(dòng)化實(shí)用化模式建設(shè)及系統(tǒng)運(yùn)行
    博白县| 浪卡子县| 靖江市| 义马市| 寻甸| 浪卡子县| 桂林市| 文安县| 昭平县| 木里| 冀州市| 丹凤县| 太保市| 布尔津县| 乌拉特前旗| 津市市| 广河县| 宁河县| 桦川县| 双柏县| 章丘市| 高密市| 阳江市| 轮台县| 永福县| 彭州市| 从江县| 武隆县| 鄄城县| 邹城市| 山西省| 普安县| 丰顺县| 庆云县| 屯昌县| 石屏县| 贺州市| 剑河县| 修武县| 昆山市| 循化|