国内或国外 期刊或论文

您当前的位置: 发表学术论文网电子论文》 高并发场景下自动化运维方案的设计与实现> 正文

高并发场景下自动化运维方案的设计与实现

所属分类:电子论文 阅读次 时间:2021-12-13 11:11

本文摘要:摘要为了使系统在高并发访问下能够流畅访问和运行,减少运维人员的工作量,本文提出一种云环境下的自动化部署运维方案,并对方案设计和实现过程进行描述。该方案能够满足高并发的访问量,同时在保证业务不间断和稳定的前提下,能够进行动态扩容,为企业节省了大量时间

  摘要为了使系统在高并发访问下能够流畅访问和运行,减少运维人员的工作量,本文提出一种云环境下的自动化部署运维方案,并对方案设计和实现过程进行描述。该方案能够满足高并发的访问量,同时在保证业务不间断和稳定的前提下,能够进行动态扩容,为企业节省了大量时间和成本。

  关键词云环境;高并发;自动化部署;codis;运维

自动化论文

  1引言

  随着社会的发展,用户对于系统的访问方式从单一途径转变成多元途径,访问量也在不断地增加。一旦用户访问过程中出现卡顿或者数据丢失,必将影响用户对于系统的好感度。高并发下如何使系统能够流畅访问变得至关重要。传统的手动部署和运维方式也已不再适合当今瞬息万变的社会。目前对于高并发场景下的解决方案,业界主要有:由单机向分布式集群转换、对流量高并发处理算法进行优化、对Redis集群系统进行优化等[1-3]。

  自动化论文范例: 变电站自动化系统扰动同步协同攻击及防护分析

  这些方法能够有效应对流量的高并发,但是仅仅依靠算法优化只能短时间内解决问题,无法从长远上彻底解决流量不断增加的问题。由单机向集群转换需要增加成本,如果没有充分利用服务器资源,会造成资源的浪费。同时,高并发场景在最短的时间内完成自动化部署以及实时的监控对于企业来说非常关键[4]。

  只有这样才能更好应对突发状况,并专注于业务功能的开发。本文提出一种云环境下自动化部署运维的高并发读取方案,紧跟新一代信息技术的步伐,采用云计算相关技术,通过自动化部署和实时监控运维来减少企业的成本并缓解运维人员的压力。方案采用NoSQL中的Redis集群技术,除了满足高并发下的用户流畅访问外,还可根据访问量进行动态的节点增加和删除,能够根据业务需求设置数据的过期时间和回收策略,为用户提供更好的访问体验。

  2方案设计

  传统的关系型数据库在处理大量高并发业务时具有其局限性[5]。而在NoSQL数据库中,Redis支持高并发量的访问,同时具备丰富的数据类型以及丰富的特性,因而适用于高并发下的业务场景。单机的Redis部署显然无法满足大数据量的高并发访问,因而需要考虑Redis的分布式集群方案。在Redis分布式集群部署方案中,Codis以稳定性、在线动态扩展能力和高可用性备受青睐。本文主要以Codis作为分布式Redis集群的解决方案进行设计。对于上层应用来说,使用Codis和使用原生的Redis没有特别大的区别,使用过程就像使用单机版本的Redis一样,后台的工作会由Codis进行转发。Codis主要由CodisServer、CodisProxy、CodisDashboard、CodisFE等组件构成,同时还可以为集群提供Zookeeper、Etcd和Fs三种外部存储。

  在部署Codis集群时,需要安装Go运行环境、下载和编译源代码等一系列操作。该过程需要消耗一定的时间,而且在部署不同的机器时还需要保持环境的一致,也很考验部署人员的水平。因而本方案采用开源的Docker容器引擎,将Codis集群所需要的应用及依赖环境打包到可移植的镜像中,避免环境因素对业务产生影响,也避免部署人员耗费过多精力。Docker可以快速并且一致地交付应用程序,可以响应式的部署和扩展[6]。同时可通过在同一硬件上运行多个实例的方式充分利用机器资源。随着业务的不断发展,Codis集群规模越来越庞大,每添加一个节点要部署一次服务器对于运维人员来说非常繁琐,因而需要借助自动化部署工具。

  Ansible能够进行批量的系统设置和程序部署[7],因此在进行系统优化设置和软件部署时采用Ansible组件能简化整个流程。在编写配置文件后即可快速地在另一个环境中部署,无需重复完成繁杂的操作。其主要由AnsiblePlayBooks、Inventory、Modules、Plugins、API和Ansiblecore等部分组成。

  该方案主要应用AnsiblePlayBooks的任务流编排功能,将需要完成的部署步骤写入配置文件中,经过调试测试后由Ansible顺序执行部署操作。对于已上线运行的应用系统,监控是必不可少也是至关重要的部分,需要实时监控系统的各项指标,保证业务系统的稳定性。Codis虽然具有监控页面,但是仍然需要对系统的各项指标进行监控。本方案使用Zabbix监控工具对系统的关键指标进行实时监控[8],通过接口采集数据并以图形化页面进行展示。同时Zabbix具有警告功能,当触发警告时可自动通知运维人员,增加了系统的健壮性。

  3具体实现

  根据前述的设计思想,本方案主要通过Codis、Docker、Ansible和Zabbix等组件来实现高可用和自动化部署运维,既适用于OpenStack私有云平台或公有云平台的云主机部署,也适用于本地环境部署。

  3.1镜像准备

  机器的操作系统采用CentOS7.5版本,需要进行基本的环境准备,包括修改主机名和hosts文件、免密登录等操作。为了更好提高性能,需要对系统环境进行优化,例如关闭防火墙与SELinux、设置系统最大文件数等。需要安装启动docker服务,并设置开机自启动,同时需要安装Ansible组件,后续通过ansible-playbook进行编排实现。方案中所有应用使用到的组件均采用Docker镜像的方式提供服务。

  Codis镜像准备步骤如下,先通过dockerpull操作从仓库拉取centos镜像,通过dockerrun-itd的方式创建容器,然后通过dockerexec-it容器名/bin/bash方式进入容器。在容器中搭建Go环境,下载并编译Codis源代码,生成配置文件。通过exit指令退出容器后使用dockercommit指令将容器制作成镜像,利用dockersave指令将镜像打成tar包。至此Codis专属的tar包镜像制作完毕,可拷贝至不同机器上进行使用。

  3.2方案实现

  Codis自带的Zookeeper为单节点,为了Codis的稳定性需要部署Zookeeper集群用于节点间通讯。由于方案中后续涉及docker容器较多,不同容器之间关系复杂,手动运维难免耗时耗力易出错,因而需要容器管理工具对涉及到的容器进行统一管理。

  容器管理工具众多,本方案选择docker-compose工具。该工具能够实现对Docker容器集群的快速编排。如果整个项目复杂度较高,可安装Rancher对容器进行全方位的管理。通过dockerpull操作从仓库拉取Zookeeper镜像,配置三个节点的Zookeeper集群,修改其配置文件并创建myid文件,通过docker-compose将集群启动。需要注意的是,由于采用docker容器的方式进行部署,为了保证数据的稳定性和可用性,所有组件的配置文件和数据保存路径都需要通过映射的方式由本地挂载到容器中,避免容器出现故障后导致数据丢失。

  修改完配置文件即可编写docker-compose.yml文件,包含Codis-dashboard、Codis-fe、Codis-proxy、CodisServer等。容器启动后可通过日志文件查看启动状态,也可通过docker-compose相关指令查看容器状态。访问web浏览器查看Codis集群管理页面,通过Codisfe添加组并初始化slot,配置每个Redis的主从节点和sentinel节点。可通过Codis集群管理页面查看集群信息和实时的QPS,当发现集群压力上升时无需停止服务即可动态进行用户无感知的扩容。为了更好监控docker容器,可在配置文件中设置service的属性为restart,当容器挂掉后可自动重启,保证业务的不间断性。部署完Codis集群后,可使用redis-benchmark进行压力测试,测试集群的承受能力,并根据业务需求调整Codis集群的实例数。

  3.3监控实现

  通过Docker容器方式部署集群可以充分利用机器的性能,最大化地节省成本,但是仍然需要时刻监控机器的整体性能,因而本方案中引入Zabbix组件对机器性能进行实时监控。通过dockerpull操作从仓库拉取Zabbix镜像,配置监控指标包括物理服务器的健康状况和资源使用率、网络吞吐及磁盘IO的性能数据等,并配置警告模板。当触发警告时可以通过邮件、短信方式通知运维人员,让运维人员有充足的时间进行处理,保证系统的稳定性。为了实现整个设计方案的自动化,可使用ansible-playbook进行编排。将上述所有涉及到的操作写入yaml文件中,完成Codis+Zookeeper+Zabbix的一键部署。

  4结束语

  随着新一代信息技术的发展,传统的部署运维方式必然需要改进。本文提出一种云环境下高并发访问的自动化部署运维方案。该方案和目前业界方案相比,采用docker镜像部署,除了满足高并发访问还能够随着访问量的上升快速进行动态扩容,能够从长远角度解决高访问量问题。同时采用容器技术能充分利用机器资源,不造成资源浪费,而且实时监控资源使用情况。

  方案集成了自动化部署和运维工具,大大减轻了运维人员的工作量。该方案将云环境、高并发访问数据库、自动化部署和运维监控结合在一起,能够为企业带来便利并节省成本。下一步,仍需要结合不同的NoSQL数据库如Mongodb,扩大方案的适用范围。同时可集成Grafana组件对监控数据进行更加美观的图形化展示,可根据具体的业务进行组件的二次开发,更好地适应多元化的业务场景。

  参考文献

  [1]沈萍萍,关辉,韦阳,梅秀玲.分布式集群系统架构设计及应用部署.信息技术与信息化,2021(01):159-162

  [2]赵俊哲.网络流量高并发优化处理研究[硕士学位论文].南京邮电大学,南京,2020

  [3]伍华锋,王小刚,候劲,唐小林.Redis集群系统的优化研究与实现.四川轻化工大学学报(自然科学版),2020,33(06):39-45

  [4]蒋鸿飞.云计算平台自动化部署子系统的设计与实现[硕士学位论文].西安电子科技大学,西安,2020

  [5]闵昭浩,杨卓凡.NoSQL数据库与关系型数据库对比.电子技术与软件工程,2021(14):199-201

  [6]雷惊鹏,唐雅文,颜世波,王胜.基于Docker和Kubernetes的ELK日志分析系统的研究与实现.太原学院学报(自然科学版),2021,39(02):61-67

  作者:黄伟

转载请注明来自发表学术论文网:http://www.fbxslw.com/dzlw/29061.html