CN113014445B - 用于服务器的运维方法、装置、平台及电子设备 - Google Patents
用于服务器的运维方法、装置、平台及电子设备 Download PDFInfo
- Publication number
- CN113014445B CN113014445B CN202110173331.5A CN202110173331A CN113014445B CN 113014445 B CN113014445 B CN 113014445B CN 202110173331 A CN202110173331 A CN 202110173331A CN 113014445 B CN113014445 B CN 113014445B
- Authority
- CN
- China
- Prior art keywords
- server
- maintenance
- node
- version
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开提供了一种用于服务器的运维方法,涉及金融技术领域和其他技术领域,该方法包括:从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象;以及对至少一个服务器批量执行本次任务所涉及的运维操作。本公开还提供了一种用于服务器的运维装置、运维平台、电子设备、计算机可读存储介质以及计算机程序产品。
Description
技术领域
本公开涉及金融技术领域和其他技术领域,特别是涉及一种用于服务器的运维方法、用于服务器的运维装置、运维平台、电子设备、计算机可读存储介质以及计算机程序产品。
背景技术
服务器运维通常包括对服务器的硬件配置、软件安装、机房上下架等进行技术维护,对服务器的工作环境进行测试,对运行虚拟化技术产品的物理机进行配置、管理、日常监控、健康检查、故障诊断和故障处理等,对实际生产中应用的程序版本进行检测以确定是否能够正常运行,以及对测试中的程序版本产生的安装日志进行检查以便找出报错信息,等等。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:运维人员通常使用命令行或脚本来执行运维操作,无法同时对多个运维对象批量执行运维操作。
发明内容
有鉴于此,本公开提供了一种用于服务器的运维方法、用于服务器的运维装置、运维平台、电子设备、计算机可读存储介质以及计算机程序产品。
本公开的一方面提供了一种用于服务器的运维方法,包括:从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象;以及对上述至少一个服务器批量执行上述本次任务所涉及的运维操作。
根据本公开的实施例,基于用户输入的过滤条件,从上述服务器列表中筛选出上述至少一个服务器。
根据本公开的实施例,基于用户通过图形化用户界面输入的上述过滤条件,从上述服务器列表中筛选出上述至少一个服务器。
根据本公开的实施例,对上述至少一个服务器批量执行上述本次任务所涉及的运维操作,包括:针对上述至少一个服务器中的每个服务器,确定当前服务器中包含的所有测试对象;针对每个测试对象,执行以下操作:获取与当前测试对象关联的句柄;以及通过上述句柄自动访问上述当前测试对象,以检测上述当前测试对象当前是否能够正常工作。
根据本公开的实施例,上述方法还包括,针对上述每个测试对象,还执行以下操作:获取浏览器驱动;基于上述浏览器驱动,启动对应的浏览器;以及其中,在上述浏览器中通过上述句柄自动访问上述当前测试对象。
根据本公开的实施例,对上述至少一个服务器批量执行上述本次任务所涉及的运维操作,包括:确定上述至少一个服务器涉及的所有服务节点,其中上述所有服务节点均为Nginx服务节点的后端节点;针对上述所有服务节点中的每个节点,执行以下操作:每隔第一预设时间对当前节点执行一次异常探测操作,得到对应的探测结果;以及响应于上述探测结果表征上述当前节点处于异常状态,将上述当前节点的节点信息列入非健康节点列表并禁止使用上述当前节点继续提供服务。
根据本公开的实施例,上述方法还包括:响应于上述探测结果表征上述当前节点处于异常状态,对上述当前节点执行重启***操作或者切换主备节点操作。
根据本公开的实施例,上述方法还包括:在对列入上述非健康节点列表中的节点执行上述重启***操作的情况下,通过Ping命令,每隔第二预设时间测试列入上述非健康节点列表中的每个节点是否已恢复至健康状态,得到对应的测试结果;以及将上述测试结果表征已恢复至健康状态的每个节点的节点信息重新列入健康节点列表并重启上述已恢复至健康状态的节点,以便继续提供相应服务。
根据本公开的实施例,上述方法还包括:对预交付使用的程序版本进行内容校验,以确定上述程序版本的准确性。
根据本公开的实施例,上述预交付使用的程序版本为本期版本;与上述本期版本关联的上一期版本为已交付使用的程序版本;上述对预交付使用的程序版本进行内容校验,包括:获取上述本期版本对应的第一镜像名以及上述上一期版本对应的第二镜像名;确定镜像仓库中是否存在与上述第一镜像名匹配的第一镜像文件以及与上述第二镜像名匹配的第二镜像文件;响应于确定上述镜像仓库中存在上述第一镜像文件以及上述第二镜像文件,找出上述第一镜像文件和上述第二镜像文件并对找出的两个镜像文件进行比对,以确定上述第一镜像文件中涉及的以下程序清单中的至少之一:新增加的程序、已删除的程序和被修改的程序;以及获取并基于比对结果,确定上述本期版本是否准确。
根据本公开的实施例,启动第一容器和第二容器,其中上述第一容器用于运行上述第一镜像文件,上述第二容器用于运行上述第二镜像文件;基于上述第一容器,找出上述第一镜像文件所在的第一文件夹;从上述第一文件夹中找出上述第一镜像文件;基于上述第二容器,找出上述第二镜像文件所在的第二文件夹;以及从上述第二文件夹中找出上述第二镜像文件。
根据本公开的实施例,响应于上述比对结果表征上述本期版本中实际更新的内容与预期更新的内容一致,确定上述本期版本准确。
根据本公开的实施例,上述方法还包括:通过上述服务器列表中涉及的所有服务器中的每个服务器,将服务器自身产生的日志转换成JSON格式后保存至ES数据库中;以及针对保存在上述ES数据库中的日志,提供满足特定需求的个性化服务。
根据本公开的实施例,上述个性化服务包括以下中的至少之一:日志归类汇总服务,日志聚合分析服务,基于关键词的日志查询服务,数据下钻服务和仪表板定制服务。
本公开的另一方面提供了一种用于服务器的运维装置,包括:运维对象筛选模块,用于从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象;以及运维操作批量执行模块,用于对上述至少一个服务器批量执行上述本次任务所涉及的运维操作。
本公开的又一方面提供了一种运维平台,包括:前端设备,用于提供图形化用户界面,以便用户创建并提交运维任务;以及后端框架,用于实现如上所述的用于服务器的运维方法。
本公开的再一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
本公开的又一方面还提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
本公开的再一方面还提供了一种计算机程序产品,包括计算机程序,上述计算机程序在被处理器执行时实现如上所述的方法。
根据本公开的实施例,可以根据实际运维需求,从预先配置的全量服务器列表或者特定服务器列表(如针对在特定时刻需要执行重启操作的所有服务器配置的列表)中筛选出一个或者多个服务器作为本次任务所针对的运维对象,进而对这个/这些运维对象批量执行本次任务所涉及的运维操作,因而能够实现同时对多个不同的运维对象批量执行同一种或者同一系列运维操作,从而可以至少部分地解决相关技术中使用命令行或脚本来执行运维操作,无法同时对多个运维对象批量执行运维操作的技术问题,进而可以提高运维效率。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的适于用于服务器的运维方法、装置和平台的应用场景;
图2示意性示出了根据本公开一实施例的运维平台的结构框图和运维平台对服务器进行运维的场景示意;
图3示意性示出了根据本公开实施例的用于服务器的运维方法的流程图;
图4示意性示出了根据本公开实施例的用于服务器的运维方法的具体实施流程图;
图5示意性示出了根据本公开一实施例的批量执行运维操作包括测试目标Web应用能否正常运行的详细实施流程图;
图6示意性示出了根据本公开另一实施例的批量执行运维操作包括测试目标Web应用能否正常运行的详细实施流程图;
图7示意性示出了根据本公开一实施例的批量执行运维操作包括对服务节点进行异常探测的详细实施流程图;
图8示意性示出了根据本公开另一实施例的批量执行运维操作包括对服务节点进行异常探测、异常修复和重启的详细实施流程图;
图9示意性示出了图8所示的批量执行运维操作中针对每个服务节点进行异常探测、异常修复和重启的执行过程示意图;
图10示意性示出了根据本公开又一实施例的用于服务器的运维方法中包括对预交付的应用程序版本的内容准确性进行校验的详细实施流程图;
图11示意性示出了根据本公开一实施例的用于服务器的运维方法中找出第一镜像文件和第二镜像文件的详细实施流程图;
图12示意性示出了根据本公开一实施例的用于服务器的运维方法中包括对各个Web应用程序测试过程中的安装日志进行自动分析的详细实施流程图;
图13示意性示出了根据本公开一实施例的用于服务器的运维装置的结构框图;以及
图14示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
本公开的实施例提供了一种用于服务器的运维方法以及能够实现该方法的运维装置和运维平台。该运维方法包括:从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象;并对该至少一个服务器批量执行本次任务所涉及的运维操作。
本公开实施例的用于服务器的运维方法以应用于金融领域作为示例,不公开的用于服务器的运维方法还可以应用于其他领域,不以实施例作为限制。
图1示意性示出了根据本公开实施例的适于用于服务器的运维方法、装置和平台的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,终端设备101、102、103可以通过网络104与服务器105以及与服务器105通信连接的其他服务器(如服务器106、107、108)或者服务器集群进行数据交互,以接收或发送消息等。
网络104为用于在终端设备101、102、103和服务器105之间或者用于在终端设备101、102、103和服务器106、107、108之间提供通信链路的介质。网络12可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103上可以安装有各种通讯客户端应用,例如金融类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。金融类应用例如为:网上银行APP、电子钱包APP或者其他银行理财类APP。终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、笔记本电脑、台式计算机、智能手环或者其他电子设备等。
服务器105、106、107、108可以是提供各种服务的服务器。例如上述服务器105、106、107、108可以是对用户利用终端设备101、102、103所访问的金融类应用提供服务支持的目标服务器;或者上述服务器105可以是对用户利用终端设备101、102、103所访问的金融类应用提供服务支持的反向代理服务器105,通过该反向代理服务器105来实现用户请求的转发,以访问目标服务器106、107、108。上述服务器105、106、107、108可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备101、102、103。
例如,用户在通过浏览器访问金融类Web业务应用时,浏览器给Web服务器发送HTTP请求。服务器接收到请求后解析请求,将解析后的请求发送给Web后端框架。后端框架接收到请求后进行处理(如数据库交互、业务处理等操作),处理结束后把HTTP的响应对象返回给服务器。服务器把接收到的HTTP响应对象报文最后返回给浏览器,最终浏览器得到想要的页面。
用户还可以通过终端设备101、102、103执行各种客户端应用的安装或更新,所要安装的客户端应用或者需要更新的客户端应用新版本可以通过访问服务器105、106、107、108获取。基于运维人员对于服务器105、106、107、108的日常运维工作可以实现对于各种应用程序的部署以及应用程序更新版本的测试校验,在应用程序更新版本校验通过后才会发布。
服务器运维通常包括对服务器的硬件配置、软件安装、机房上下架等进行技术维护,对服务器的工作环境进行测试,对运行虚拟化技术产品的物理机进行配置、管理、日常监控、健康检查、故障诊断和故障处理等,对实际生产中应用的程序版本进行检测以确定是否能够正常运行,以及对测试中的程序版本产生的安装日志进行检查以便找出报错信息,等等。
对于采用Linux操作***的服务器,通常采用命令行或者自动化脚本的方式来进行各种运维操作。例如在部署应用程序到一个服务器群组中的某一个特定服务器的过程中,用户需要登录该特定服务器,然后采用命令行的形式将所要部署的应用程序加载到该特定服务器的安装目录下,实现应用程序在该特定服务器中的部署。
然而,采用命令行的方式每次只能操作一台服务器,无法同时对多个运维对象批量执行运维操作,工作效率低下,有误操作的风险。随着企业的服务器数量增长到数以千计以后,对运维工作提出了更大的挑战,传统的手工运维和依靠自动化脚本进行服务器运维的方式已经无法满足运维工作的要求。
有鉴于此,本公开的第一个示例性实施例提供了一种改进型的用于服务器的运维方法和平台,以至少部分地解决相关技术中使用命令行或脚本来执行运维操作,无法同时对多个运维对象批量执行运维操作的技术问题。
图2示意性示出了根据本公开一实施例的运维平台的结构框图和运维平台对服务器进行运维的场景示意。
如图2所示,示意了本公开实施例提供的运维平台200对服务器105、106、107、108进行运维的场景,上述运维平台200包括:前端设备201,用于提供图形化用户界面,以便用户创建并提交运维任务;以及后端框架202,用于实现用于服务器的运维方法,该用于服务器的运维方法将于后续参照图3~图12进行详细描述,这里不作详述。
运维平台200的前端设备201提供图形化用户界面,例如可视化示意出创建运维任务的界面,针对各个运维任务的对象、操作条件、筛选参数等均有输入框或选择框。
根据本公开的实施例,用户可以通过前端设备201显示的图形化用户界面输入过滤条件,以使得后端框架202可以从服务器列表中筛选出至少一个服务器。
如图2所示,后端框架202包括:路由层202a、控制层202b、模型层202c、数据库202d和视图层202e。
路由层202a用于根据请求地址在控制层202b查找对应的处理程序。
控制层202b主要用于接收运维操作请求,控制运维操作执行预定逻辑,以及返回运维操作的结果,与视图层202e和模型层202c交互等。本公开实施例提供的运维方法的主要操作逻辑在控制层202b实现,包括:测试目标Web应用能否正常运行的控制逻辑;针对服务节点进行异常探测的控制逻辑;针对服务节点进行异常探测和异常修复的控制逻辑;对预交付的应用程序版本的内容准确性进行校验的控制逻辑;对日志进行自动分析的控制逻辑等。
模型层202c主要用于实现与数据库202d的交互,对数据库202d中的数据进行增加、删除、查询、改动等操作。
视图层202e主要用于编写html、css、js代码等。
示例性的,例如在运维平台200测试目标Web应用能否正常运行时,运维人员通过前端设备201创建并提交测试目标Web应用能否正常运行的运维任务,则在运维平台200的后端框架202响应于前端设备的请求,实施操作S501、S502、S503、S601、S602和S603(参照图5和图6所示),最终后端框架202执行完各个操作之后,向前端设备201返回操作结果,完成一次运维任务。
图3示意性示出了根据本公开实施例的用于服务器的运维方法的流程图。
本公开实施例提供的用于服务器的运维方法可以由上述运维平台200来执行。该运维平台200可以包括前端设备201和后端框架202。具体地,该运维方法可以通过该后端框架202来执行。本公开实施例的该运维平台200对与之关联的所有运维对象均具有访问权限。基于不同的运维需求,可以将所有运维对象划分为不同的组别。在实际运维操作中,根据运维需求可以在各个服务器组中增减服务器的个数,也可以增减服务器组的个数。
本公开实施例提供的运维方法可以对服务器群组中包含的多个服务器同时进行批量运维操作,因而运维工作效率高。
在一实施例中,需要进行运维的服务器与主机配置免密登录,将上述需要进行运维的服务器预先以组为单位进行管理,以实现批量化运维操作。
如图3所示,本公开实施例提供的运维方法包括以下操作:S301和S302。
在操作S301,从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象。
在操作S302,对上述至少一个服务器批量执行上述本次任务所涉及的运维操作。
示例性的,上述服务器列表中包含有多个服务器的信息,每个服务器的信息可以包括但不限于以下信息中的至少之一:服务器名称、服务器的IP地址、服务器所在分组等。服务器分组的依据可以包括但不限于:业务类型、需要进行运维操作的类型,等等。
为了便于实现批量化运维操作,多台服务器可以预先被配置为免密登录,配置的方式可以是批量化配置。
根据本公开的实施例,基于用户输入的过滤条件,从上述预先配置的服务器列表中筛选出上述至少一个服务器。
根据本公开的实施例,运维平台可以包括前端设备,该前端设备用于提供图形化用户界面,用户可以通过该界面创建并提交运维任务。这里的用户可以是运维工作人员。在一实施例中,前端设备可以显示Web用户界面(Web UI)。用户可以通过显示在前端设备上的图形化用户界面输入过滤条件(如某个特定服务器列表中记录的所有服务器的IP地址),后端框架在执行操作S301时,可以基于用户通过该前端设备上显示的图形化用户界面输入的过滤条件,从服务器列表中筛选出至少一个服务器。然后,后端框架执行操作S302,对上述至少一个服务器批量执行上述本次任务所涉及的运维操作。
基于本公开实施例提供的运维方法和平台,可以根据实际运维需求,从预先配置的全量服务器列表或者特定服务器列表(如针对在特定时刻需要执行重启操作的所有服务器配置的列表)中筛选出一个或者多个服务器作为本次任务所针对的运维对象,进而对这个/这些运维对象批量执行本次任务所涉及的运维操作,因而能够实现同时对多个不同的运维对象批量执行同一种或者同一系列运维操作,从而可以至少部分地解决相关技术中使用命令行或脚本来执行运维操作,无法同时对多个运维对象批量执行运维操作的技术问题,进而可以提高运维效率。
图4示意性示出了根据本公开实施例的用于服务器的运维方法的具体实施流程图。
如图4所示,在一具体实施例中,本公开实施例提供的运维方法的详细实施过程包括以下操作:S401、S402和S403。本实施例中的操作S402和S403分别对应于前述实施例中的操作S301和S302,本公开实施例在此不再赘述。
在操作S401,获取服务器列表,上述服务器列表包含多个服务器的信息,每个服务器的信息包括但不限于以下信息至少之一:服务器名称、服务器的IP地址、服务器所在分组,等等。
服务器列表可以预先创建/配置并保存于运维平台的数据库中。操作S401可以由后端框架执行。
在操作S402,基于用户输入的过滤条件对该服务器列表进行筛选,以便筛选出符合该过滤条件的一个或者多个服务器。
返回参考图2,用户可以通过运维平台200的前端设备201所显示的图形化用户界面输入该过滤条件,响应于用户通过前端设备输入了过滤条件,后端框架可以执行操作S402和S403。
在操作S403,对筛选出的服务器批量执行本次任务所涉及的运维操作。
在本公开实施例中,用户还可以通过运维平台的前端设备的图形化用户界面输入运维任务的参数,后端框架可以根据用户输入的参数来对筛选出来的服务器批量化执行本次任务所涉及的运维操作。
通过本公开实施例,运维人员可以通过运维平台的前端设备输入过滤条件,后端框架可以从预先设置的服务器列表中找出符合该条件的所有服务器,并对找出的所有服务器同时执行相同或者类似的运维操作,因而可以实现批量化的运维操作,进而可以提升运维的工作效率。
图5示意性示出了根据本公开一实施例的批量执行运维操作包括测试目标Web应用能否正常运行的详细实施流程图。
如今市面上的浏览器种类越来越多,而且主流浏览器诸如IE、Chrome、Firefox、Safari或Opera浏览器等的版本更新较为频繁,因此测试Web应用在不同浏览器以及相同浏览器的不同版本的运行环境下是否能够兼容且很好地工作这一工作量很大,首先对于Web应用声称的支持浏览器进行兼容性测试时,如何在短时间内确定Web应用能否加载正常是一个亟需解决的技术问题。
应该理解,采用命令行和脚本的运维方式难以在短时间内确定所有的测试环境是否都正常。
有鉴于此,本公开的实施例提供了一种可以批量化确定测试环境(如Web测试环境)是否准备就绪,即可以批量化确定待测试的应用程序(如Web应用程序)是否能够正常运行的运维方式。
在本实施例中,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作包括:批量测试目标Web应用能否正常运行。
如图5所示,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作可以包括针对该至少一个服务器中的每个服务器执行以下操作:S501、S502和S503。
在操作S501,确定当前服务器中的所有测试对象。
应该理解,在本操作S501中,该所有测试对象可以包括所有需要测试的应用程序,以及每个需要测试的应用程序所包含的所有需要测试的功能。
针对每个测试对象,执行操作S502和S503。
在操作S502,获取与当前测试对象关联的句柄。
在操作S503,通过句柄自动访问当前测试对象,以检测当前测试对象当前是否能够正常工作。
示例性的,在操作S501中,确定要执行批量运维操作的每个服务器中包含的所有测试对象。本实施例中,所有测试对象为需要进行测试的一个或多个目标Web应用,例如该目标Web应用为网上银行应用程序。
在操作S502和操作S503中,确定每个测试对象是否能够正常工作,具体可以包括,先获取与当前测试对象关联的句柄,然后通过句柄自动访问当前的测试对象,以检测该测试对象当前是否能够正常工作。
应该理解,在本公开实施例中,句柄(Handle)可以用来表示对象或者项目的标识符。上述对象或者项目可以包括:模块、应用程序实例、窗口、控制、位图、资源或者文件等。
本实施例中,可以针对每个测试对象预先设置与之关联的句柄,该句柄指向针对当前测试对象要执行的操作命令包。这里不需要用户(运维人员)手动操作当前测试对象,通过句柄指向的操作命令包来取代人工手动点击的操作,诸如打开浏览器、点击当前测试对象的网址或者链接以打开便通过浏览器显示该测试对象的页面以及页面中涉及的待测试的页面元素等。
图6示意性示出了根据本公开另一实施例的批量执行运维操作包括测试目标Web应用能否正常运行的详细实施流程图。
批量执行运维操作的具体流程除了包括如图5所示的操作S501~S503之外,如图6所示,该流程还可以包括以下操作:S601、S602和S603。
在操作S601,获取浏览器驱动。
在操作S602,基于浏览器驱动,启动对应的浏览器。
需要说明的是,在本公开实施例中,可以在操作S502之前,执行操作S601和操作S602。此外,操作S501可以在操作S601之前执行,或者在操作S602之后执行,本公开实施例在此不做限定。
在操作S603,在浏览器中通过句柄自动访问当前测试对象。
在本公开实施例中,可以模拟用户操作,自动执行操作S601和操作S602,以便自动打开浏览器,并基于关联句柄且通过该浏览器自动打开待测应用程序的页面,执行点击等相关运维操作。
应该理解,在本公开实施例中,通过句柄自动访问测试对象的过程中,如果测试对象能够正常显示,以及能够基于特定运维操作正常响应,则确定测试对象当前能够正常工作。否则,则确定测试对象无法正常工作。由于采用自动化方式能够批量化检测多个测试对象是否正常运行,因而可以至少解决相关技术中难以在短时间内确定所有测试环境是否正常的技术问题。
图7示意性示出了根据本公开一实施例的批量执行运维操作包括对服务节点进行异常探测的详细实施流程图。
相关技术中,服务器对终端设备提供服务时,大部分服务是通过Nginx对外提供服务。Nginx(engine x)是一种Http和反向代理Web服务器。发明人进一步发现:通常如果Nginx后端的某个服务器节点存在异常时,Nginx依然会把终端设备的请求转发给上述异常的服务器节点,当Nginx的尝试达到最大失败次数后才会将后端无响应的服务器节点设置为异常节点,然后再转发给别的服务器节点,这样浪费了转发给异常节点的次数和线上流量。
有鉴于此,本公开的实施例还提供了一种对服务节点进行异常探测的运维方式,可以避免转发次数和转发流量的浪费。
在本实施例中,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作包括:对服务节点进行异常探测。
如图7所示,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作可以包括针对该至少一个服务器中的每个服务器执行以下操作:S701、S702和S703。
在操作S701,确定至少一个服务器(即本次任务所针对的所有运维对象)涉及的所有服务节点,其中所有服务节点均为Nginx服务节点的后端节点。
本实施例中,一个服务器提供服务时所涉及到的所有服务节点均为Nginx服务节点的后端节点,由Nginx服务节点向后端节点转发终端设备的请求。
针对所有服务节点中的每个节点,执行以下操作S702和S703。
在操作S702,每隔第一预设时间对当前节点执行一次异常探测操作,得到对应的探测结果。
探测结果为:当前节点处于正常状态或处于异常状态。
在操作S703,响应于探测结果表征当前节点处于异常状态,将当前节点的节点信息列入非健康节点列表并禁止使用当前节点继续提供服务。
在一实施例中,初始状态下默认所有服务节点均处于正常状态,所有服务节点的节点信息在健康节点列表中,当检测到某个节点处于异常状态的情况下,会将该节点的节点信息从健康节点列表移入至非健康节点列表中,Nginx服务节点不能给处于非健康节点列表中的节点转发业务数据或者业务请求,如此禁止使用状态异常的节点提供服务的同时还避免了Nginx服务节点向异常节点转发所导致的转发次数和转发流量的浪费。
通过上述操作S701~S703实现了异常自动检测,针对使用状态异常的节点,禁止Nginx服务节点给使用状态异常的节点转发服务请求或服务数据。由于在异常探测过程中,可以实时检测出所有服务节点中发生异常的一个或多个节点,通过将该一个或多个节点加入至非健康节点列表并禁止Nginx服务节点向异常的该一个或多个节点转发业务数据或业务请求,从而避免了转发次数和转发流量的浪费,因而可以至少解决相关技术中在Nginx后端的某个服务器节点存在异常时,Nginx依然会把终端设备的请求转发给上述异常的服务器节点导致的转发次数和转发流量浪费的技术问题。
图8示意性示出了根据本公开另一实施例的批量执行运维操作包括对服务节点进行异常探测、异常修复和重启的详细实施流程图。图9示意性示出了图8所示的批量执行运维操作中针对每个服务节点进行异常探测、异常修复和重启的执行过程示意图。
根据本公开的另一实施例,如图8所示,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作除了包括对服务节点进行异常探测之外,还包括对服务节点进行异常修复的操作,还可以进一步包括重启操作。
如图8所示,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作除了包括针对该至少一个服务器中的每个服务器执行上述实施例中的操作S701、S702和S703之外,还可以包括以下操作:S804、S805和S806。并且,如图7所示的操作S701~S703与如图8所示的操作S701~S703分别对应相同,本公开实施例在此不再赘述。
在操作S804,响应于探测结果表征当前节点处于异常状态,对当前节点执行重启***操作或者切换主备节点操作。
在一实施例中,在当前节点处于异常状态的情况下,对当前服务节点执行重启***的操作。
在另一实施例中,为了保证服务器提供服务的可靠性,通常还会针对各个服务节点设置主节点和备用节点,在主节点发生故障/异常的情况下启用备用节点。因此,如果当前节点处于异常状态,则执行重启***的操作或者切换主备节点的操作,以使得处于异常状态的节点尽快通过重启的方式恢复至正常状态,或者被替换为正常的备用节点。
在操作S805,在对列入非健康节点列表中的节点执行重启***操作的情况下,通过Ping命令,每隔第二预设时间测试列入非健康节点列表中的每个节点是否已恢复至健康状态,得到对应的测试结果。
因特网包探索器(Packet Internet Groper,Ping)是一种工作于TCP/IP网络体系结构中应用层的一个服务命令,用于测试网络连接状态。
在操作S806,将测试结果表征已恢复至健康状态的每个节点的节点信息重新列入健康节点列表并重启已恢复至健康状态的节点,以便继续提供相应服务。
在其它实施例中,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作包括针对该至少一个服务器中的每个服务器执行操作S701、S702、S703和S804。
如图9所示,对至少一个服务器(即本次任务所针对的所有运维对象)批量执行本次任务所涉及的运维操作包括针对该至少一个服务器中的每个服务器执行操作S701、S702、S703、S804、S805和S806之外,还包括操作S901、S902和S903。可以理解的是,如图9所示的操作S701、S702、S703、S804、S805和S806与如图8所示的操作S701、S702、S703、S804、S805和S806分别对应相同,本公开实施例在此不再赘述。
在操作S901,根据探测结果确定当前节点是否处于异常状态。
在探测结果表征当前节点处于异常状态的情况下,依次执行操作S703和操作S804。此外,在其他实施例里,操作S703和操作S804也可以并列执行。本公开实施例在此不限定二者执行的具体顺序。
在操作S902,将当前节点的节点信息列入健康节点列表。
在一实施例中,在操作S901确定当前节点处于正常状态的情况下,执行该操作S902。或者在另一实施例中,默认所有服务节点均处于正常状态,将所有服务节点的节点信息均列入健康节点列表中;当探测到健康节点列表中的某个节点发生异常时,将该节点从健康节点列表中移出,并列入至非健康节点列表中。
在操作S903,根据测试结果确定当前节点是否恢复健康。
在一实施例中,在操作S805之后执行操作S903。在操作S903中根据测试结果确定当前节点恢复健康的情况下,执行操作S806。对于测试结果表征经过重启***操作之后仍然处于异常状态(尚未恢复健康)的节点,仍然让这些节点保留在非健康节点列表中。
在一实施例中,初始状态下默认所有服务节点均处于正常状态,所有服务节点的节点信息在健康节点列表中,当检测到某个节点处于异常状态的情况下,会将该节点的节点信息从健康节点列表移入至非健康节点列表中。当对列入非健康节点列表中的节点执行恢复操作(例如重启操作)之后测试得到某个节点已经恢复至健康状态,则将该恢复至健康状态的节点再由非健康节点列表重新移植到健康节点列表中。由于本公开实施例提供的运维方法允许Nginx服务节点给处于健康节点列表中的节点转发业务数据或者业务请求,禁止Nginx服务节点给处于非健康节点列表中的节点转发业务数据或者业务请求,如此避免了Nginx服务节点给异常服务节点转发导致的转发次数和转发流量的浪费,同时还针对异常节点进行异常恢复的操作(例如执行重启***操作或者切换主备节点操作),还能够根据异常恢复的结果来实时调整健康节点列表和非健康节点列表中的节点,从而能够实现所有服务节点的异常维护以及转发资源的动态调整。
图10示意性示出了根据本公开又一实施例的用于服务器的运维方法中包括对预交付的应用程序版本的内容准确性进行校验的详细实施流程图。
为了确保交付生产的Web应用程序版本的内容是正确的,本公开的实施例提供了一种对预交付的应用程序版本的内容准确性进行校验的运维方法。
根据本公开的实施例,本公开实施例提供的运维方法除了包括上述操作S301和S302之外,如图10所示,该运维方法还包括:对预交付使用的程序版本进行内容校验,以确定程序版本的准确性。
其中,预交付使用的程序版本为本期版本;与本期版本关联的上一期版本为已交付使用的程序版本。
上述对预交付使用的程序版本进行内容校验包括以下操作:S1001、S1002、S1003和S1004。
需要说明的是,在本公开实施例中,对操作S1001、S1002、S1003和S1004与操作S301和S302的执行顺序不做限定。
在操作S1001,获取本期版本对应的第一镜像名以及上一期版本对应的第二镜像名。
在操作S1002,确定镜像仓库中是否存在与第一镜像名匹配的第一镜像文件以及与第二镜像名匹配的第二镜像文件。
根据本公开的实施例,上述镜像仓库位于云端平台中,用于存储PAAS(Platformas a Service)镜像。
在操作S1003,响应于确定镜像仓库中存在第一镜像文件以及第二镜像文件,找出第一镜像文件和第二镜像文件并对找出的两个镜像文件进行比对,以确定第一镜像文件中涉及的以下程序清单中的至少之一:新增加的程序、已删除的程序和被修改的程序。
在操作S1004,获取并基于比对结果,确定本期版本是否准确。
如果比对结果表征本期版本中实际更新的内容与预期更新的内容一致,则确定本期版本准确。
图11示意性示出了根据本公开一实施例的用于服务器的运维方法中找出第一镜像文件和第二镜像文件的详细实施流程图。
根据本公开的实施例,如图11所示,找出第一镜像文件和第二镜像文件具体包括以下操作:S1101、S1102、S1103、S1104和S1105。
在操作S1101,启动第一容器和第二容器,其中第一容器用于运行第一镜像文件,第二容器用于运行第二镜像文件。
在操作S1102,基于第一容器,找出第一镜像文件所在的第一文件夹。
在操作S1103,从第一文件夹中找出第一镜像文件。
在操作S1104,基于第二容器,找出第二镜像文件所在的第二文件夹。
在操作S1105,从第二文件夹中找出第二镜像文件。
在一实施例中,当第一镜像文件和第二镜像文件的内容比对完成之后,删除第一容器和第二容器。
本实施例的通过比对本期版本的第一镜像文件与上一期版本的第二镜像文件,从而确定本期版本的第一镜像文件相较于上一期版本的第二镜像文件作出的实际改动所涉及的程序,从而通过实际改动所涉及的程序与预期更新的内容进行比对来确定本期版本的准确度,从而确保了交付生产的本期版本的正确性。
图12示意性示出了根据本公开一实施例的用于服务器的运维方法中包括对日志进行自动分析的详细实施流程图。
由于在每期Web应用程序版本的测试过程中需要安装上千个版本,会产生大量的版本安装日志,相关技术主要依靠人工检查安装日志,这种情况下经常出现漏看报错信息的问题,还存在日志检查不及时的问题。有些相关技术采用开源日志采集工具采集日志后进行分析,这些日志采集工具还存在CPU使用率高的问题。
有鉴于此,本公开的实施例还提供了一种能够降低CPU使用率的日志分析的运维方法。
根据本公开的实施例,本公开实施例提供的运维方法除了包括上述操作S301和S302之外,如图12所示,该运维方法还包括以下操作:S1201、S1202。
在操作S1201,通过服务器列表中涉及的所有服务器中的每个服务器,将服务器自身产生的日志转换成JSON格式后保存至ES数据库中。
在上述操作S1201中,可以由服务器将自身产生的日志转换为JSON格式后保存至ES数据库中。ES(ElasticSearch)数据库是一种高拓展和开源的全文搜索和分析的数据库,可以存储、搜索以及分析海量数据。该ES数据库通过http接口使用JSON格式进行数据操作,数据存储的最小单位为文档,本质上是一个JSON文本。通过直接将JSON格式报文存入ElasticSearch数据库的方式降低了CPU的使用率。
在操作S1202,针对保存在ES数据库中的日志,提供满足特定需求的个性化服务。
根据本公开的实施例,个性化服务包括以下中的至少之一:日志归类汇总服务,日志聚合分析服务,基于关键词的日志查询服务,数据下钻服务和仪表板定制服务。
其中,可以在定制的仪表板中实现日志归类汇总,日志聚合分析、基于关键词的日志查询和数据下钻。
需要说明的是,在本公开实施例中,对操作S1201、S1202与操作S301和S302的执行顺序不做限定。
本公开的实施例还提供了一种用于服务器的运维装置。
图13示意性示出了根据本公开一实施例的用于服务器的运维装置的结构框图。
如图13所示,上述运维装置1300包括:运维对象筛选模块1301以及运维操作批量执行模块1302。
上述运维对象筛选模块1301用于从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象。
根据本公开的实施例,服务器列表包含多个服务器的信息,每个服务器的信息包括但不限于以下信息至少之一:服务器名称、服务器的IP地址、服务器所在分组,等等。服务器列表可以预先创建/配置并保存于运维平台的数据库中。
根据本公开的实施例,基于用户输入的过滤条件,从服务器列表中筛选出至少一个服务器。
根据本公开的实施例,基于用户通过图形化用户界面输入的过滤条件,从服务器列表中筛选出至少一个服务器。
上述运维操作批量执行模块1302用于对至少一个服务器批量执行本次任务所涉及的运维操作。
根据本公开的实施例,参照图2和图13所示,用户可以通过运维平台200的前端设备201的图形化用户界面输入运维任务的参数,运维操作批量执行模块1302可以根据用户输入的参数来对筛选出来的服务器批量化执行本次任务所涉及的运维操作。
上述任务包括但不限于下任务至少一种:测试目标Web应用能否正常运行的任务;针对服务节点进行异常探测的任务;针对服务节点进行异常探测和异常修复的任务;对预交付的应用程序版本的内容准确性进行校验的任务;对日志进行自动分析的任务。
上述运维装置1300还包括以下模块:测试对象就绪自动化检查模块、服务异常检测和自动修复模块、镜像差异比对模块以及程序版本安装日志分析模块。
上述测试对象就绪自动化检查模块用于检测Web应用是否能够正常工作。测试对象就绪自动化检查模块可以包括能够执行上述第一个实施例所描述的操作S501~S503的功能子模块,或者,能够执行S501~S503和S601~S603的功能子模块。上述测试对象就绪自动化检查模块可以是隶属于运维操作批量执行模块的模块,也可以是单独设置的一个模块。
上述服务异常检测和自动修复模块用于测试服务器所涉及的服务节点是否异常以及对异常进行修复。服务异常检测和自动修复模块可以包括能够执行上述第一个实施例所描述的S701~S706的功能子模块。上述服务异常检测和自动修复模块可以是隶属于运维操作批量执行模块的模块,也可以是单独设置的一个模块。
上述镜像差异比对模块用于对预交付的应用程序版本的内容准确性进行校验。镜像差异比对模块包括能够执行上述第一个实施例所描述的操作S1001~S1004的功能子模块。镜像差异比对模块可以是隶属于运维操作批量执行模块的模块,也可以是单独设置的一个模块。
上述程序版本安装日志分析模块用于对日志进行自动分析。程序版本安装日志分析模块用于针对保存在ES数据库中的日志,提供满足特定需求的个性化服务。根据本公开的实施例,个性化服务包括以下中的至少之一:日志归类汇总服务,日志聚合分析服务,基于关键词的日志查询服务,数据下钻服务和仪表板定制服务。上述程序版本安装日志分析模块可以是隶属于运维操作批量执行模块的模块,也可以是单独设置的一个模块。
需要说明的是,运维装置部分的实施例方式与运维方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
根据本公开的实施例的模块、单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,运维对象筛选模块1301、运维操作批量执行模块1302、测试对象就绪自动化检查模块、服务异常检测和自动修复模块、镜像差异比对模块以及程序版本安装日志分析模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,运维对象筛选模块1301、运维操作批量执行模块1302、测试对象就绪自动化检查模块、服务异常检测和自动修复模块、镜像差异比对模块以及程序版本安装日志分析模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,运维对象筛选模块1301、运维操作批量执行模块1302、测试对象就绪自动化检查模块、服务异常检测和自动修复模块、镜像差异比对模块以及程序版本安装日志分析模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
本公开的实施例还提供了一种电子设备。上述电子设备包括:一个或多个处理器;以及用于存储一个或多个程序的存储器。其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现如上上述的任一种用于服务器的运维方法。
图14示意性示出了根据本公开实施例的电子设备的框图。图14示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图14所示,根据本公开实施例的电子设备1400包括处理器1401,其可以根据存储在只读存储器(ROM)1402中的程序或者从存储部分1408加载到随机访问存储器(RAM)1403中的程序而执行各种适当的动作和处理。处理器1401例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1401还可以包括用于缓存用途的板载存储器。处理器1401可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1403中,存储有电子设备1400操作所需的各种程序和数据。处理器1401、ROM 1402以及RAM 1403通过总线1404彼此相连。处理器1401通过执行ROM 1402和/或RAM1403中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,上述程序也可以存储在除ROM1402和RAM 1403以外的一个或多个存储器中。处理器1401也可以通过执行存储在上述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1400还可以包括输入/输出(I/O)接口1405,输入/输出(I/O)接口1405也连接至总线1404。电子设备140还可以包括连接至I/O接口1405的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如局域网(LAN)卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至I/O接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被处理器1401执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的用于服务器的运维方法。
在该计算机程序被处理器1401执行时,执行本公开实施例的***/装置中限定的上述功能。根据本公开的实施例,上文描述的***、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1409被下载和安装,和/或从可拆卸介质1411被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1402和/或RAM 1403和/或ROM 1402和RAM 1403以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (15)
1.一种用于服务器的运维方法,包括:
从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象;
对所述至少一个服务器批量执行所述本次任务所涉及的运维操作;以及
对预交付使用的程序版本进行内容校验,以确定所述程序版本的准确性,
其中,对所述至少一个服务器批量执行所述本次任务所涉及的运维操作,包括:
确定所述至少一个服务器涉及的所有服务节点,其中所述所有服务节点均为Nginx服务节点的后端节点;
针对所述所有服务节点中的每个节点,执行以下操作:
每隔第一预设时间对当前节点执行一次异常探测操作,得到对应的探测结果;以及
响应于所述探测结果表征所述当前节点处于异常状态,将所述当前节点的节点信息列入非健康节点列表并禁止使用所述当前节点继续提供服务,
对预交付使用的程序版本进行内容校验,以确定所述程序版本的准确性,
其中,所述预交付使用的程序版本为本期版本;
与所述本期版本关联的上一期版本为已交付使用的程序版本;
所述对预交付使用的程序版本进行内容校验,包括:
获取所述本期版本对应的第一镜像名以及所述上一期版本对应的第二镜像名;
确定镜像仓库中是否存在与所述第一镜像名匹配的第一镜像文件以及与所述第二镜像名匹配的第二镜像文件;
响应于确定所述镜像仓库中存在所述第一镜像文件以及所述第二镜像文件,找出所述第一镜像文件和所述第二镜像文件并对找出的两个镜像文件进行比对,以确定所述第一镜像文件中涉及的以下程序清单中的至少之一:新增加的程序、已删除的程序和被修改的程序;以及
获取并基于比对结果,确定所述本期版本是否准确。
2.根据权利要求1所述的方法,其中:
基于用户输入的过滤条件,从所述服务器列表中筛选出所述至少一个服务器。
3.根据权利要求2所述的方法,其中:
基于用户通过图形化用户界面输入的所述过滤条件,从所述服务器列表中筛选出所述至少一个服务器。
4.根据权利要求1所述的方法,其中,对所述至少一个服务器批量执行所述本次任务所涉及的运维操作,还包括:针对所述至少一个服务器中的每个服务器,
确定当前服务器中包含的所有测试对象;
针对每个测试对象,执行以下操作:
获取与当前测试对象关联的句柄;以及
通过所述句柄自动访问所述当前测试对象,以检测所述当前测试对象当前是否能够正常工作。
5.根据权利要求4所述的方法,还包括,针对所述每个测试对象,还执行以下操作:
获取浏览器驱动;
基于所述浏览器驱动,启动对应的浏览器;以及
其中,在所述浏览器中通过所述句柄自动访问所述当前测试对象。
6.根据权利要求1所述的方法,还包括:响应于所述探测结果表征所述当前节点处于异常状态,
对所述当前节点执行重启***操作或者切换主备节点操作。
7.根据权利要求6所述的方法,还包括:在对列入所述非健康节点列表中的节点执行所述重启***操作的情况下,
通过Ping命令,每隔第二预设时间测试列入所述非健康节点列表中的每个节点是否已恢复至健康状态,得到对应的测试结果;以及
将所述测试结果表征已恢复至健康状态的每个节点的节点信息重新列入健康节点列表并重启所述已恢复至健康状态的节点,以便继续提供相应服务。
8.根据权利要求1所述的方法,其中:
启动第一容器和第二容器,其中所述第一容器用于运行所述第一镜像文件,所述第二容器用于运行所述第二镜像文件;
基于所述第一容器,找出所述第一镜像文件所在的第一文件夹;
从所述第一文件夹中找出所述第一镜像文件;
基于所述第二容器,找出所述第二镜像文件所在的第二文件夹;以及
从所述第二文件夹中找出所述第二镜像文件。
9.根据权利要求1所述的方法,其中:
响应于所述比对结果表征所述本期版本中实际更新的内容与预期更新的内容一致,确定所述本期版本准确。
10.根据权利要求1所述的方法,还包括:
通过所述服务器列表中涉及的所有服务器中的每个服务器,将服务器自身产生的日志转换成JSON格式后保存至ES数据库中;以及
针对保存在所述ES数据库中的日志,提供满足特定需求的个性化服务。
11.根据权利要求10所述的方法,其中,所述个性化服务包括以下中的至少之一:日志归类汇总服务,日志聚合分析服务,基于关键词的日志查询服务,数据下钻服务和仪表板定制服务。
12.一种用于服务器的运维装置,包括:
运维对象筛选模块,用于从预先配置的服务器列表中筛选出至少一个服务器作为本次任务所针对的运维对象;
运维操作批量执行模块,用于对所述至少一个服务器批量执行所述本次任务所涉及的运维操作;以及
镜像差异比对模块,用于对预交付使用的程序版本进行内容校验,以确定所述程序版本的准确性,其中
用于对所述至少一个服务器批量执行所述本次任务所涉及的运维操作,包括:
确定所述至少一个服务器涉及的所有服务节点,其中所述所有服务节点均为Nginx服务节点的后端节点;
针对所述所有服务节点中的每个节点,执行以下操作:
每隔第一预设时间对当前节点执行一次异常探测操作,得到对应的探测结果;以及
响应于所述探测结果表征所述当前节点处于异常状态,将所述当前节点的节点信息列入非健康节点列表并禁止使用所述当前节点继续提供服务,和
用于对预交付使用的程序版本进行内容校验,以确定所述程序版本的准确性,
其中,所述预交付使用的程序版本为本期版本;
与所述本期版本关联的上一期版本为已交付使用的程序版本;
所述对预交付使用的程序版本进行内容校验,包括:
获取所述本期版本对应的第一镜像名以及所述上一期版本对应的第二镜像名;
确定镜像仓库中是否存在与所述第一镜像名匹配的第一镜像文件以及与所述第二镜像名匹配的第二镜像文件;
响应于确定所述镜像仓库中存在所述第一镜像文件以及所述第二镜像文件,找出所述第一镜像文件和所述第二镜像文件并对找出的两个镜像文件进行比对,以确定所述第一镜像文件中涉及的以下程序清单中的至少之一:新增加的程序、已删除的程序和被修改的程序;以及
获取并基于比对结果,确定所述本期版本是否准确。
13.一种运维平台,包括:
前端设备,用于提供图形化用户界面,以便用户创建并提交运维任务;以及
后端框架,用于实现权利要求1至11中任一项所述的用于服务器的运维方法。
14.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至11中任一项所述的方法。
15.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110173331.5A CN113014445B (zh) | 2021-02-08 | 2021-02-08 | 用于服务器的运维方法、装置、平台及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110173331.5A CN113014445B (zh) | 2021-02-08 | 2021-02-08 | 用于服务器的运维方法、装置、平台及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014445A CN113014445A (zh) | 2021-06-22 |
CN113014445B true CN113014445B (zh) | 2022-11-11 |
Family
ID=76384139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110173331.5A Active CN113014445B (zh) | 2021-02-08 | 2021-02-08 | 用于服务器的运维方法、装置、平台及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014445B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535208A (zh) * | 2021-08-05 | 2021-10-22 | 浙江万朋教育科技股份有限公司 | 基于python实现可视化集中维护和更新测试应用程序的方法 |
CN113992491B (zh) * | 2021-09-29 | 2024-04-02 | 中通服科信信息技术有限公司 | 应用程序服务器群运维管理***、方法及装置 |
CN114760314A (zh) * | 2022-04-06 | 2022-07-15 | 中国工商银行股份有限公司 | 服务器管理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019033088A1 (en) * | 2017-08-11 | 2019-02-14 | ALTR Solutions, Inc. | IMMUABLE DATA MEMORY FOR LOW LATENCY WRITING AND READING OF LARGE DATA SETS |
CN110457204A (zh) * | 2019-07-05 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 代码测试方法、装置、计算机设备和存储介质 |
CN110661831A (zh) * | 2018-06-29 | 2020-01-07 | 复旦大学 | 一种基于可信第三方的大数据试验场安全初始化方法 |
CN112087516A (zh) * | 2020-09-10 | 2020-12-15 | 星辰天合(北京)数据科技有限公司 | 基于Docker虚拟化技术的存储升级方法和装置 |
CN112084008A (zh) * | 2020-09-10 | 2020-12-15 | 浪潮云信息技术股份公司 | 一种基于容器技术快速部署云管***的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9928161B1 (en) * | 2016-09-08 | 2018-03-27 | Fmr Llc | Automated quality assurance testing of browser-based applications |
CN106953758A (zh) * | 2017-03-20 | 2017-07-14 | 北京搜狐新媒体信息技术有限公司 | 一种基于Nginx服务器的动态配置管理方法及*** |
CN109165024A (zh) * | 2018-07-26 | 2019-01-08 | 天讯瑞达通信技术有限公司 | 一种运维平台自动部署和监控服务器***的方法 |
CN110460476B (zh) * | 2019-08-23 | 2022-08-02 | 福建广电网络集团股份有限公司 | 一种网络运维管理方法 |
CN111177617A (zh) * | 2019-12-06 | 2020-05-19 | 上海上讯信息技术股份有限公司 | 基于运维管理***的web直接运维方法、装置及电子设备 |
CN111371615B (zh) * | 2020-03-04 | 2023-07-14 | 深信服科技股份有限公司 | 在线服务器、运维工具的更新方法及***和可读存储介质 |
-
2021
- 2021-02-08 CN CN202110173331.5A patent/CN113014445B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019033088A1 (en) * | 2017-08-11 | 2019-02-14 | ALTR Solutions, Inc. | IMMUABLE DATA MEMORY FOR LOW LATENCY WRITING AND READING OF LARGE DATA SETS |
CN110661831A (zh) * | 2018-06-29 | 2020-01-07 | 复旦大学 | 一种基于可信第三方的大数据试验场安全初始化方法 |
CN110457204A (zh) * | 2019-07-05 | 2019-11-15 | 深圳壹账通智能科技有限公司 | 代码测试方法、装置、计算机设备和存储介质 |
CN112087516A (zh) * | 2020-09-10 | 2020-12-15 | 星辰天合(北京)数据科技有限公司 | 基于Docker虚拟化技术的存储升级方法和装置 |
CN112084008A (zh) * | 2020-09-10 | 2020-12-15 | 浪潮云信息技术股份公司 | 一种基于容器技术快速部署云管***的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113014445A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014445B (zh) | 用于服务器的运维方法、装置、平台及电子设备 | |
CN109302522B (zh) | 测试方法、装置以及计算机***和介质 | |
US10437703B2 (en) | Correlation of source code with system dump information | |
US20170177765A1 (en) | Test case generation | |
US8140578B2 (en) | Multilevel hierarchical associations between entities in a knowledge system | |
US10795748B2 (en) | Tailoring diagnostic information in a multithreaded environment | |
US10152367B2 (en) | System dump analysis | |
US10216617B2 (en) | Automatically complete a specific software task using hidden tags | |
US10884911B2 (en) | System and method for use in regression testing of electronic document hyperlinks | |
US9946630B2 (en) | Efficiently debugging software code | |
US11221907B1 (en) | Centralized software issue triage system | |
CN109901985B (zh) | 分布式测试装置及方法、存储介质和电子设备 | |
CN110851471A (zh) | 分布式日志数据处理方法、装置以及*** | |
US9256509B1 (en) | Computing environment analyzer | |
CN113918864A (zh) | 网站页面的测试方法、测试***、装置、电子设备及介质 | |
CN112506772B (zh) | web自动化测试方法、装置、电子设备和存储介质 | |
US10802947B2 (en) | Filter trace based on function level | |
US20220012167A1 (en) | Machine Learning Based Test Coverage In A Production Environment | |
US10637722B2 (en) | Automated remote message management | |
US9354962B1 (en) | Memory dump file collection and analysis using analysis server and cloud knowledge base | |
Marinho et al. | Evaluating testing strategies for resource related failures in mobile applications | |
US9298539B1 (en) | Automated error recovery for workflows | |
CN113986768A (zh) | 应用程序稳定性测试方法、装置、设备及介质 | |
CN114064510A (zh) | 功能测试方法、装置、电子设备和存储介质 | |
US20160275002A1 (en) | Image capture in application lifecycle management for documentation and support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |