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

國內或國外 期刊或論文

您當前的位置:發(fā)表學術論文網電子論文》 高并發(fā)場景下自動化運維方案的設計與實現> 正文

高并發(fā)場景下自動化運維方案的設計與實現

所屬分類:電子論文 閱讀次 時間:2021-12-13 11:11

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

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

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

自動化論文

  1引言

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

  自動化論文范例: 變電站自動化系統擾動同步協同攻擊及防護分析

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

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

  2方案設計

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

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

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

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

  3具體實現

  根據前述的設計思想,本方案主要通過Codis、Docker、Ansible和Zabbix等組件來實現高可用和自動化部署運維,既適用于OpenStack私有云平臺或公有云平臺的云主機部署,也適用于本地環(huán)境部署。

  3.1鏡像準備

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

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

  3.2方案實現

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

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

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

  3.3監(jiān)控實現

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

  4結束語

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

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

  參考文獻

  [1]沈萍萍,關輝,韋陽,梅秀玲.分布式集群系統架構設計及應用部署.信息技術與信息化,2021(01):159-162

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

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

  [4]蔣鴻飛.云計算平臺自動化部署子系統的設計與實現[碩士學位論文].西安電子科技大學,西安,2020

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

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

  作者:黃偉

轉載請注明來自發(fā)表學術論文網:http:///dzlw/29061.html