亚洲一区人妻,久久三级免费,国模少妇无码一区二区三区,日韩av动漫

國(guó)內(nèi)或國(guó)外 期刊或論文

您當(dāng)前的位置:發(fā)表學(xué)術(shù)論文網(wǎng)電子論文》 高并發(fā)場(chǎng)景下自動(dòng)化運(yùn)維方案的設(shè)計(jì)與實(shí)現(xiàn)> 正文

高并發(fā)場(chǎng)景下自動(dòng)化運(yùn)維方案的設(shè)計(jì)與實(shí)現(xiàn)

所屬分類(lèi):電子論文 閱讀次 時(shí)間:2021-12-13 11:11

本文摘要:摘要為了使系統(tǒng)在高并發(fā)訪問(wèn)下能夠流暢訪問(wèn)和運(yùn)行,減少運(yùn)維人員的工作量,本文提出一種云環(huán)境下的自動(dòng)化部署運(yùn)維方案,并對(duì)方案設(shè)計(jì)和實(shí)現(xiàn)過(guò)程進(jìn)行描述。該方案能夠滿足高并發(fā)的訪問(wèn)量,同時(shí)在保證業(yè)務(wù)不間斷和穩(wěn)定的前提下,能夠進(jìn)行動(dòng)態(tài)擴(kuò)容,為企業(yè)節(jié)省了大量時(shí)間

  摘要為了使系統(tǒng)在高并發(fā)訪問(wèn)下能夠流暢訪問(wèn)和運(yùn)行,減少運(yùn)維人員的工作量,本文提出一種云環(huán)境下的自動(dòng)化部署運(yùn)維方案,并對(duì)方案設(shè)計(jì)和實(shí)現(xiàn)過(guò)程進(jìn)行描述。該方案能夠滿足高并發(fā)的訪問(wèn)量,同時(shí)在保證業(yè)務(wù)不間斷和穩(wěn)定的前提下,能夠進(jìn)行動(dòng)態(tài)擴(kuò)容,為企業(yè)節(jié)省了大量時(shí)間和成本。

  關(guān)鍵詞云環(huán)境;高并發(fā);自動(dòng)化部署;codis;運(yùn)維

自動(dòng)化論文

  1引言

  隨著社會(huì)的發(fā)展,用戶對(duì)于系統(tǒng)的訪問(wèn)方式從單一途徑轉(zhuǎn)變成多元途徑,訪問(wèn)量也在不斷地增加。一旦用戶訪問(wèn)過(guò)程中出現(xiàn)卡頓或者數(shù)據(jù)丟失,必將影響用戶對(duì)于系統(tǒng)的好感度。高并發(fā)下如何使系統(tǒng)能夠流暢訪問(wèn)變得至關(guān)重要。傳統(tǒng)的手動(dòng)部署和運(yùn)維方式也已不再適合當(dāng)今瞬息萬(wàn)變的社會(huì)。目前對(duì)于高并發(fā)場(chǎng)景下的解決方案,業(yè)界主要有:由單機(jī)向分布式集群轉(zhuǎn)換、對(duì)流量高并發(fā)處理算法進(jìn)行優(yōu)化、對(duì)Redis集群系統(tǒng)進(jìn)行優(yōu)化等[1-3]。

  自動(dòng)化論文范例: 變電站自動(dòng)化系統(tǒng)擾動(dòng)同步協(xié)同攻擊及防護(hù)分析

  這些方法能夠有效應(yīng)對(duì)流量的高并發(fā),但是僅僅依靠算法優(yōu)化只能短時(shí)間內(nèi)解決問(wèn)題,無(wú)法從長(zhǎng)遠(yuǎn)上徹底解決流量不斷增加的問(wèn)題。由單機(jī)向集群轉(zhuǎn)換需要增加成本,如果沒(méi)有充分利用服務(wù)器資源,會(huì)造成資源的浪費(fèi)。同時(shí),高并發(fā)場(chǎng)景在最短的時(shí)間內(nèi)完成自動(dòng)化部署以及實(shí)時(shí)的監(jiān)控對(duì)于企業(yè)來(lái)說(shuō)非常關(guān)鍵[4]。

  只有這樣才能更好應(yīng)對(duì)突發(fā)狀況,并專(zhuān)注于業(yè)務(wù)功能的開(kāi)發(fā)。本文提出一種云環(huán)境下自動(dòng)化部署運(yùn)維的高并發(fā)讀取方案,緊跟新一代信息技術(shù)的步伐,采用云計(jì)算相關(guān)技術(shù),通過(guò)自動(dòng)化部署和實(shí)時(shí)監(jiān)控運(yùn)維來(lái)減少企業(yè)的成本并緩解運(yùn)維人員的壓力。方案采用NoSQL中的Redis集群技術(shù),除了滿足高并發(fā)下的用戶流暢訪問(wèn)外,還可根據(jù)訪問(wèn)量進(jìn)行動(dòng)態(tài)的節(jié)點(diǎn)增加和刪除,能夠根據(jù)業(yè)務(wù)需求設(shè)置數(shù)據(jù)的過(guò)期時(shí)間和回收策略,為用戶提供更好的訪問(wèn)體驗(yàn)。

  2方案設(shè)計(jì)

  傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在處理大量高并發(fā)業(yè)務(wù)時(shí)具有其局限性[5]。而在NoSQL數(shù)據(jù)庫(kù)中,Redis支持高并發(fā)量的訪問(wèn),同時(shí)具備豐富的數(shù)據(jù)類(lèi)型以及豐富的特性,因而適用于高并發(fā)下的業(yè)務(wù)場(chǎng)景。單機(jī)的Redis部署顯然無(wú)法滿足大數(shù)據(jù)量的高并發(fā)訪問(wèn),因而需要考慮Redis的分布式集群方案。在Redis分布式集群部署方案中,Codis以穩(wěn)定性、在線動(dòng)態(tài)擴(kuò)展能力和高可用性備受青睞。本文主要以Codis作為分布式Redis集群的解決方案進(jìn)行設(shè)計(jì)。對(duì)于上層應(yīng)用來(lái)說(shuō),使用Codis和使用原生的Redis沒(méi)有特別大的區(qū)別,使用過(guò)程就像使用單機(jī)版本的Redis一樣,后臺(tái)的工作會(huì)由Codis進(jìn)行轉(zhuǎn)發(fā)。Codis主要由CodisServer、CodisProxy、CodisDashboard、CodisFE等組件構(gòu)成,同時(shí)還可以為集群提供Zookeeper、Etcd和Fs三種外部存儲(chǔ)。

  在部署Codis集群時(shí),需要安裝Go運(yùn)行環(huán)境、下載和編譯源代碼等一系列操作。該過(guò)程需要消耗一定的時(shí)間,而且在部署不同的機(jī)器時(shí)還需要保持環(huán)境的一致,也很考驗(yàn)部署人員的水平。因而本方案采用開(kāi)源的Docker容器引擎,將Codis集群所需要的應(yīng)用及依賴(lài)環(huán)境打包到可移植的鏡像中,避免環(huán)境因素對(duì)業(yè)務(wù)產(chǎn)生影響,也避免部署人員耗費(fèi)過(guò)多精力。Docker可以快速并且一致地交付應(yīng)用程序,可以響應(yīng)式的部署和擴(kuò)展[6]。同時(shí)可通過(guò)在同一硬件上運(yùn)行多個(gè)實(shí)例的方式充分利用機(jī)器資源。隨著業(yè)務(wù)的不斷發(fā)展,Codis集群規(guī)模越來(lái)越龐大,每添加一個(gè)節(jié)點(diǎn)要部署一次服務(wù)器對(duì)于運(yùn)維人員來(lái)說(shuō)非常繁瑣,因而需要借助自動(dòng)化部署工具。

  Ansible能夠進(jìn)行批量的系統(tǒng)設(shè)置和程序部署[7],因此在進(jìn)行系統(tǒng)優(yōu)化設(shè)置和軟件部署時(shí)采用Ansible組件能簡(jiǎn)化整個(gè)流程。在編寫(xiě)配置文件后即可快速地在另一個(gè)環(huán)境中部署,無(wú)需重復(fù)完成繁雜的操作。其主要由AnsiblePlayBooks、Inventory、Modules、Plugins、API和Ansiblecore等部分組成。

  該方案主要應(yīng)用AnsiblePlayBooks的任務(wù)流編排功能,將需要完成的部署步驟寫(xiě)入配置文件中,經(jīng)過(guò)調(diào)試測(cè)試后由Ansible順序執(zhí)行部署操作。對(duì)于已上線運(yùn)行的應(yīng)用系統(tǒng),監(jiān)控是必不可少也是至關(guān)重要的部分,需要實(shí)時(shí)監(jiān)控系統(tǒng)的各項(xiàng)指標(biāo),保證業(yè)務(wù)系統(tǒng)的穩(wěn)定性。Codis雖然具有監(jiān)控頁(yè)面,但是仍然需要對(duì)系統(tǒng)的各項(xiàng)指標(biāo)進(jìn)行監(jiān)控。本方案使用Zabbix監(jiān)控工具對(duì)系統(tǒng)的關(guān)鍵指標(biāo)進(jìn)行實(shí)時(shí)監(jiān)控[8],通過(guò)接口采集數(shù)據(jù)并以圖形化頁(yè)面進(jìn)行展示。同時(shí)Zabbix具有警告功能,當(dāng)觸發(fā)警告時(shí)可自動(dòng)通知運(yùn)維人員,增加了系統(tǒng)的健壯性。

  3具體實(shí)現(xiàn)

  根據(jù)前述的設(shè)計(jì)思想,本方案主要通過(guò)Codis、Docker、Ansible和Zabbix等組件來(lái)實(shí)現(xiàn)高可用和自動(dòng)化部署運(yùn)維,既適用于OpenStack私有云平臺(tái)或公有云平臺(tái)的云主機(jī)部署,也適用于本地環(huán)境部署。

  3.1鏡像準(zhǔn)備

  機(jī)器的操作系統(tǒng)采用CentOS7.5版本,需要進(jìn)行基本的環(huán)境準(zhǔn)備,包括修改主機(jī)名和hosts文件、免密登錄等操作。為了更好提高性能,需要對(duì)系統(tǒng)環(huán)境進(jìn)行優(yōu)化,例如關(guān)閉防火墻與SELinux、設(shè)置系統(tǒng)最大文件數(shù)等。需要安裝啟動(dòng)docker服務(wù),并設(shè)置開(kāi)機(jī)自啟動(dòng),同時(shí)需要安裝Ansible組件,后續(xù)通過(guò)ansible-playbook進(jìn)行編排實(shí)現(xiàn)。方案中所有應(yīng)用使用到的組件均采用Docker鏡像的方式提供服務(wù)。

  Codis鏡像準(zhǔn)備步驟如下,先通過(guò)dockerpull操作從倉(cāng)庫(kù)拉取centos鏡像,通過(guò)dockerrun-itd的方式創(chuàng)建容器,然后通過(guò)dockerexec-it容器名/bin/bash方式進(jìn)入容器。在容器中搭建Go環(huán)境,下載并編譯Codis源代碼,生成配置文件。通過(guò)exit指令退出容器后使用dockercommit指令將容器制作成鏡像,利用dockersave指令將鏡像打成tar包。至此Codis專(zhuān)屬的tar包鏡像制作完畢,可拷貝至不同機(jī)器上進(jìn)行使用。

  3.2方案實(shí)現(xiàn)

  Codis自帶的Zookeeper為單節(jié)點(diǎn),為了Codis的穩(wěn)定性需要部署Zookeeper集群用于節(jié)點(diǎn)間通訊。由于方案中后續(xù)涉及docker容器較多,不同容器之間關(guān)系復(fù)雜,手動(dòng)運(yùn)維難免耗時(shí)耗力易出錯(cuò),因而需要容器管理工具對(duì)涉及到的容器進(jìn)行統(tǒng)一管理。

  容器管理工具眾多,本方案選擇docker-compose工具。該工具能夠?qū)崿F(xiàn)對(duì)Docker容器集群的快速編排。如果整個(gè)項(xiàng)目復(fù)雜度較高,可安裝Rancher對(duì)容器進(jìn)行全方位的管理。通過(guò)dockerpull操作從倉(cāng)庫(kù)拉取Zookeeper鏡像,配置三個(gè)節(jié)點(diǎn)的Zookeeper集群,修改其配置文件并創(chuàng)建myid文件,通過(guò)docker-compose將集群?jiǎn)?dòng)。需要注意的是,由于采用docker容器的方式進(jìn)行部署,為了保證數(shù)據(jù)的穩(wěn)定性和可用性,所有組件的配置文件和數(shù)據(jù)保存路徑都需要通過(guò)映射的方式由本地掛載到容器中,避免容器出現(xiàn)故障后導(dǎo)致數(shù)據(jù)丟失。

  修改完配置文件即可編寫(xiě)docker-compose.yml文件,包含Codis-dashboard、Codis-fe、Codis-proxy、CodisServer等。容器啟動(dòng)后可通過(guò)日志文件查看啟動(dòng)狀態(tài),也可通過(guò)docker-compose相關(guān)指令查看容器狀態(tài)。訪問(wèn)web瀏覽器查看Codis集群管理頁(yè)面,通過(guò)Codisfe添加組并初始化slot,配置每個(gè)Redis的主從節(jié)點(diǎn)和sentinel節(jié)點(diǎn)。可通過(guò)Codis集群管理頁(yè)面查看集群信息和實(shí)時(shí)的QPS,當(dāng)發(fā)現(xiàn)集群壓力上升時(shí)無(wú)需停止服務(wù)即可動(dòng)態(tài)進(jìn)行用戶無(wú)感知的擴(kuò)容。為了更好監(jiān)控docker容器,可在配置文件中設(shè)置service的屬性為restart,當(dāng)容器掛掉后可自動(dòng)重啟,保證業(yè)務(wù)的不間斷性。部署完Codis集群后,可使用redis-benchmark進(jìn)行壓力測(cè)試,測(cè)試集群的承受能力,并根據(jù)業(yè)務(wù)需求調(diào)整Codis集群的實(shí)例數(shù)。

  3.3監(jiān)控實(shí)現(xiàn)

  通過(guò)Docker容器方式部署集群可以充分利用機(jī)器的性能,最大化地節(jié)省成本,但是仍然需要時(shí)刻監(jiān)控機(jī)器的整體性能,因而本方案中引入Zabbix組件對(duì)機(jī)器性能進(jìn)行實(shí)時(shí)監(jiān)控。通過(guò)dockerpull操作從倉(cāng)庫(kù)拉取Zabbix鏡像,配置監(jiān)控指標(biāo)包括物理服務(wù)器的健康狀況和資源使用率、網(wǎng)絡(luò)吞吐及磁盤(pán)IO的性能數(shù)據(jù)等,并配置警告模板。當(dāng)觸發(fā)警告時(shí)可以通過(guò)郵件、短信方式通知運(yùn)維人員,讓運(yùn)維人員有充足的時(shí)間進(jìn)行處理,保證系統(tǒng)的穩(wěn)定性。為了實(shí)現(xiàn)整個(gè)設(shè)計(jì)方案的自動(dòng)化,可使用ansible-playbook進(jìn)行編排。將上述所有涉及到的操作寫(xiě)入yaml文件中,完成Codis+Zookeeper+Zabbix的一鍵部署。

  4結(jié)束語(yǔ)

  隨著新一代信息技術(shù)的發(fā)展,傳統(tǒng)的部署運(yùn)維方式必然需要改進(jìn)。本文提出一種云環(huán)境下高并發(fā)訪問(wèn)的自動(dòng)化部署運(yùn)維方案。該方案和目前業(yè)界方案相比,采用docker鏡像部署,除了滿足高并發(fā)訪問(wèn)還能夠隨著訪問(wèn)量的上升快速進(jìn)行動(dòng)態(tài)擴(kuò)容,能夠從長(zhǎng)遠(yuǎn)角度解決高訪問(wèn)量問(wèn)題。同時(shí)采用容器技術(shù)能充分利用機(jī)器資源,不造成資源浪費(fèi),而且實(shí)時(shí)監(jiān)控資源使用情況。

  方案集成了自動(dòng)化部署和運(yùn)維工具,大大減輕了運(yùn)維人員的工作量。該方案將云環(huán)境、高并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)、自動(dòng)化部署和運(yùn)維監(jiān)控結(jié)合在一起,能夠?yàn)槠髽I(yè)帶來(lái)便利并節(jié)省成本。下一步,仍需要結(jié)合不同的NoSQL數(shù)據(jù)庫(kù)如Mongodb,擴(kuò)大方案的適用范圍。同時(shí)可集成Grafana組件對(duì)監(jiān)控?cái)?shù)據(jù)進(jìn)行更加美觀的圖形化展示,可根據(jù)具體的業(yè)務(wù)進(jìn)行組件的二次開(kāi)發(fā),更好地適應(yīng)多元化的業(yè)務(wù)場(chǎng)景。

  參考文獻(xiàn)

  [1]沈萍萍,關(guān)輝,韋陽(yáng),梅秀玲.分布式集群系統(tǒng)架構(gòu)設(shè)計(jì)及應(yīng)用部署.信息技術(shù)與信息化,2021(01):159-162

  [2]趙俊哲.網(wǎng)絡(luò)流量高并發(fā)優(yōu)化處理研究[碩士學(xué)位論文].南京郵電大學(xué),南京,2020

  [3]伍華鋒,王小剛,候勁,唐小林.Redis集群系統(tǒng)的優(yōu)化研究與實(shí)現(xiàn).四川輕化工大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,33(06):39-45

  [4]蔣鴻飛.云計(jì)算平臺(tái)自動(dòng)化部署子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[碩士學(xué)位論文].西安電子科技大學(xué),西安,2020

  [5]閔昭浩,楊卓凡.NoSQL數(shù)據(jù)庫(kù)與關(guān)系型數(shù)據(jù)庫(kù)對(duì)比.電子技術(shù)與軟件工程,2021(14):199-201

  [6]雷驚鵬,唐雅文,顏世波,王勝.基于Docker和Kubernetes的ELK日志分析系統(tǒng)的研究與實(shí)現(xiàn).太原學(xué)院學(xué)報(bào)(自然科學(xué)版),2021,39(02):61-67

  作者:黃偉

轉(zhuǎn)載請(qǐng)注明來(lái)自發(fā)表學(xué)術(shù)論文網(wǎng):http:///dzlw/29061.html