CN110196731A - 一种运维系统、方法及存储介质 - Google Patents

一种运维系统、方法及存储介质 Download PDF

Info

Publication number
CN110196731A
CN110196731A CN201811270956.8A CN201811270956A CN110196731A CN 110196731 A CN110196731 A CN 110196731A CN 201811270956 A CN201811270956 A CN 201811270956A CN 110196731 A CN110196731 A CN 110196731A
Authority
CN
China
Prior art keywords
packet
production environment
operational order
operational
service server
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.)
Granted
Application number
CN201811270956.8A
Other languages
English (en)
Other versions
CN110196731B (zh
Inventor
聂鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811270956.8A priority Critical patent/CN110196731B/zh
Publication of CN110196731A publication Critical patent/CN110196731A/zh
Application granted granted Critical
Publication of CN110196731B publication Critical patent/CN110196731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种运维系统、方法及存储介质;系统包括:前台页面,用于通过应用程序接口,接收针对生产环境进行包的运维的操作命令,并将接收操作命令存储到任务队列中;后台逻辑层,用于从任务队列中读出任务队列包括的操作命令时,执行以下操作:根据存储服务层存储的生产环境中业务模块与业务服务器的对应关系,确定任务的目标业务模块所对应的业务服务器,通过命令通道向确定的业务服务器传输操作命令,以及,更新存储服务层中存储的对应包的包实例信息;存储服务层,用于存储生产环境中的业务模块与业务服务器的对应关系、以及包对应的包实例信息。

Description

一种运维系统、方法及存储介质
技术领域
本发明涉及电数字数据处理技术,尤其涉及一种运维系统、方法及存储介质。
背景技术
互联网特别是移动互联网的发展,不但出现了基于互联网的新兴业务,例如电子商务、社交网络、即时通信,传统行业也普遍将业务部分或者全部是迁移到互联网,利于金融业、餐饮业等各种第三方行业都部署了与自身业务相结合的业务系统。
生产环境是实现业务方的业务系统的软/硬件环境,支持对运维人员终端发起各种业务的请求进行处理,响应业务数据,例如社交网络的朋友动态、即时通信数据等。
生产环境中实现的各种业务功能有赖于通过安装包来在安装各种应用程序,而现有技术提供的包管理技术,都是针对面向用户的使用环境开发,由用户在终端的客户端中拉取安装包的方式进行应用程序的安装、升级等管理,这种简单的包管理技术无法适应生产环境中的大批量的业务服务器的批量化、高效率和应用场景的效率需求。
综上所述,相关技术尚无有效方案来对生产环境的安装包进行运维。
发明内容
本发明实施例提供一种运维系统、方法及存储介质,能够提升对生产环境的自动化的运维以提升运维效率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种运维系统,包括:
前台页面,用于通过应用程序接口,接收针对生产环境进行包的运维的操作命令,并将所述接收操作命令封装为任务的以存储到任务队列中;
后台逻辑层,用于从所述任务队列中读出的任务所包括的操作命令时,执行以下操作:
根据存储服务层存储的所述生产环境中业务模块与业务服务器的对应关系,确定所述任务的目标业务模块所对应的业务服务器,
通过命令通道向所述确定的业务服务器传输所述操作命令,以及,
更新所述存储服务层中存储的对应所述包的包实例信息;
所述存储服务层,用于存储所述生产环境中的业务模块与业务服务器的对应关系、以及所述包对应的包实例信息。
本发明实施例提供一种运维方法,所述方法包括:
在前台页面中通过应用程序接口,接收针对生产环境进行包的运维的操作命令,并将所述接收操作命令封装为任务以存储到任务队列中;
当从所述任务队列中读出的任务所包括的操作命令时,执行以下操作:
根据存储服务层存储的所述生产环境中业务模块与业务服务器的对应关系,确定所述任务的目标业务模块所对应的业务服务器,
通过命令通道向所述确定的业务服务器传输所述操作命令,以及,
更新所述存储服务层中存储的对应所述包的包实例信息。
上述方案中,所述方法还包括:
在所述存储服务层通过运行云数据库,以存储所述生产环境的以下包实例信息:全量包列表、包实例安装记录、包实例的进程监控信息和操作日志;以及,
通过运行分布式文件系统对所述云数据库进行容灾调度。
上述方案中,所述全量包列表包括所有已经创建的包的名称和版本;
所述包实例安装记录包括包的名称、版本和网络地址;
所述进程监控信息包括进程类型和对应的进程数量上限;
所述操作日志包括以下至少之一:包的名称、版本、操作时间、操作类型、操作结果和运维人员。
上述方案中,所述方法还包括:
在存储服务层中通过运行版本控制系统以存储不同的包所对应的以下安装文件:应用程序的二进制文件、配置文件和脚本。
上述方案中,所述方法还包括:
当从所述任务队列中读出用于创建新包的操作命令时,
从持续集成方法获取所述新包的安装文件,并存储到所述存储服务层运行的版本控制系统;
将所述新包的进程监控信息存储到所述存储服务层运行的云数据库,并根据所述新包的名称和版本更新所述云数据库存储的全量包列表。
上述方案中,当从所述任务队列中读出的任务包括用于安装所述包的操作命令时,
从所述存储服务层运行的版本控制系统中获取所述包所对应的文件,从所述存储服务层运行的云数据库获取所述包的进程监控信息,并封装为相应的包;
通过所述命令通道向所述确定的业务服务器传输所述操作命令以安装所述包对应的包实例;以及,
在所述存储服务层运行的云数据库所存储的包实例安装记录和操作日志中,添加相应包的记录。
上述方案中,当从所述任务队列中读出用于卸载的操作命令时,执行以下操作:
通过命令通道向所述确定的业务服务器传输所述操作命令,以调用所述包的脚本卸载所述包对应的包实例;
在所述存储服务层运行的云数据库所存储的包实例安装记录和进程监控信息中删除相应包的记录,在所述云数据库存储的操作日志中添加相应包的记录。
上述方案中,当从所述任务队列中读出的任务包括用于升级或降级的操作命令时,执行以下操作:
从所述存储服务层运行的版本控制系统中获取变动文件;
通过命令通道向所述确定的业务服务器传输所述操作命令,以调用所述包的脚本对应安装所述变动文件;
在所述存储服务层运行的云数据库所存储的包实例安装记录中更新相应包的记录,在所述云数据库存储的操作日志中添加相应包的记录。
上述方案中,当从所述任务队列中读出用于启动、重启或停止的操作命令时,执行以下操作:
通过命令通道向所述确定的业务服务器传输所述操作命令,以调用所述包中对应的脚本的响应所述操作命令;
在所述存储服务层运行的云数据库所存储的操作日志添加相应包的记录。
上述方案中,当从所述任务队列中读出用于查询的操作命令时,执行以下操作:
从所述存储服务层运行的云数据库中以关键字进行搜索,并在所述前台页面显示相应的搜索结果;
所述关键字包括以下至少之一:包名称、包版本、操作类型、操作结果和运维人员。
本发明实施例提供一种运维系统,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的运维方法。
本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的运维方法。
本发明实施例具有以下有益效果:
任务队列通过前台页面与后台逻辑层解耦,接收针对生产环境进行运维的操作命令并由后台逻辑层处理,实现了操作命令的良好吞吐性能;
通过存储层维护业务模块与业务服务器的对应关系,对业务模块对应的业务服务器进行了统一、高效地运维;
在包的运维过程中同步更新包实例信息,从而能够对包运维的相关记录的追溯和回退提供数据支持。
附图说明
图1是本发明实施例提供的全流程生产系统100的示例性的架构示意图;
图2是本发明实施例提供的全流程生产系统的示例性的工作流示意图;
图3是本发明实施例提供的运维系统200的示例性的功能架构示意图;
图4是本发明实施例提供的运维系统中管理服务器的示例性的结构示意图;
图5A是本发明实施例提供的命令通道215的示例性应用示意图;
图5B是本发明实施例提供的命令通道215的示例性应用示意图;
图6是本发明实施例提供的运维系统200的示例性的功能架构示意图;
图7是本发明实施例提供的配置管理数据存储数据的示例性示意图;
图8A是本发明实施例提供的运维方法用于创建新包的一个可选的流程示意图;
图8B是本发明实施例提供的运维方法用于包实例管理的一个可选的流程示意图;
图8C是本发明实施例提供的运维方法用于安装包的一个可选的流程示意图;
图8D是本发明实施例提供的运维方法用于卸载包的一个可选的流程示意图;
图8E是本发明实施例提供的运维方法的用于升级/降级包的一个可选的流程示意图;
图8F是本发明实施例提供的运维方法用于启动/停止/重启的一个可选的流程示意图;
图8G是本发明实施例提供的运维方法用于事件查询的一个可选的流程示意图;
图9是本发明实施例提供的运维系统自动运维生产环境的一个可选的架构示意图;
图10A是本发明实施例提供的运维系统在前台页面显示包实例管理的控制台的示意图;
图10B是本发明实施例提供的运维系统在前台页面显示包实例管理的控制台的示意图;
图10C是本发明实施例提供的运维系统在前台页面显示包版本管理的示意图;
图10D是本发明实施例提供的运维系统在前台页面的事件查询的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本发明实施例所使用的所有的技术和科学术语与属于本发明实施例的技术领域的技术人员通常理解的含义相同。本发明实施例所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)包,即安装包,是运维系统的基本的运维对象,包的一个典型目录结构包括:应用程序的二进制文件、应用程序依赖的库文件、配置文件(用于对应用程序配置运行的参数)、脚本(例如,用于管理包实例的启动、停止、重启、升级、降级和卸载)和进程监控信息(用于对包实例进行管理)。
2)进程监控信息,是指对包实例进行管理的相关参数;以重启管理为例,包括与进程名称对应的进程数量上限,当包实例的实际进程(也就是包中的应用程序的实际进程)的数量少于进程数量上限时,包实例将被重启。
3)包实例,即包的实例,是生产环境的业务服务器上运行包的应用程序所对应的一个或多个进程。
4)包管理,即包管理功能,是运维系统中以包为维度的管理,包括以下子功能:4.1)包实例(即发布的包的实例)管理,包括管理包实例的启动、重启、停止、卸载、升级和降级;4.2)包版本管理,包括管理发布到生产环境的包的不同版本,例如创建新的包,创建包的新版本;4.3)事件查询,操作日志中运维包的相关事件的查询,例如从包名称、包版本、操作类型、操作结果和运维人员中的至少一个维度查询操作日志。
5)流程管理,即流程管理功能,用于将运维系统中的功能串联起来,前一个功能的输出可以作为后一个功能输入,拼装出不同的自动化流程,实现无人职守的自动化操作。
6)容量管理,即容量管理功能,用于衡量生产环境的业务负载情况,并结合扩容和缩容调度,实现业务的负载和成本间的平衡。
7)生产环境,是指用于支撑业务系统的一个或多个业务的软/硬件环境,例如支撑社交网络即时通信的软/硬件环境,包括一系列的安装有包的业务服务器。
8)业务模块,是指生产环境的业务服务器被运维系统从不同层面抽象形成的模块,由生产环境中的一个或多个业务服务器实现,业务模块是运维系统向生产环境中的业务服务器进行包的运维的基本单位。
9)资源配置,是指当生产环境中的业务模块实现业务时,业务模块中所需要安装的包和需要的权限(例如,访问存储服务层中各种数据的数据接口的权限)。
首先说明实现本发明实施例的生产线式的全流程生产系统(也称为开发操作(DevOps系统))的示例性应用。
参见图1,图1是本发明实施例提供的全流程生产系统100的示例性的架构示意图,全流程生产系统100包括项目管理系统11、源代码管理系统12、持续集成系统13和运维系统200,实现完整的面向信息(IT,InformaTion)运维的工作流,以IT自动化以及持续集成(CI,Continuous Integration)、持续部署(CD,Continuous Delivery)为基础,来实现针对生产环境300的程式开发、测试和系统运维等所有环节。
需要指出,图1中仅示例性示出了一个生产环境,实现本发明实施例的全流程生产系统100可以同时连接多个生产环境;针对每个生产环境而对应运行全流程生产系统100的一个实例。
参见图2,图2是本发明实施例提供的全流程生产系统的示例性的工作流示意图,下面将结合图2对图1示出的全流程生产系统实现完整的面向IT运维的工作流过程进行说明。
项目管理系统11用于接收开发人员针对生产环境300中需要实现的功能而录入的产品需求(步骤101)和测试用例需求(步骤102);需求被分解成一个个能够直接开发实现的功能需求(步骤103),以满足功能的需求进行源代码的开发,接收开发人员上传对应的源代码。
源代码托管系统12用于实现源代码托管(步骤104),包括提交、存储、下载、比对和合并等功能,并对不同版本的源代码进行管理(步骤105)。通过触发持续集成系统13的持续集成能力,可一站式完成对代码及代码质量管理,项目及项目人员管理,提升研发效率。
持续集成系统13在持续集成的阶段将不断地对开发人员提交的代码进行构建版本(步骤106),进行编译和测试(步骤107),以在自动化的编译中尽早发现错误,并将编译后得到的应用程序作为制品输出(步骤108)。在一些实施例中,持续集成系统11每完成一个功能的更新就集成到主干代码中,可以快速发现错误,防止分支功能大幅偏离主干代码;同时,也避免了由于主干代码在不断更新,会导致以后集成的难度变大甚至难以集成的情况。
例如,当任意一个功能的代码被开发人员提交时,持续集成系统11将提交的代码集成主干代码中,在编译环境中进行自动化地编译,典型的过程包括:配置管理(新建代码仓库),代码检查(新建代码检查任务),编译构建(新建编译构建任务),发布管理(新建软件发布)。测试用例13将在编译后被用于进行自动化的测试(步骤109),典型的过程包括测试管理(新建测试任务)和测试管理(新建用例),测试完成的应用程序被测试/编译系统12输出到制品库。
运维系统200与制品库进行对接,运维人员能够在运维系统200的前台页面显示的控制台(即运维系统200的图形化控制界面)进行包创建、包实例管理和事件查询等操作。
例如,在进行包创建时,运维系统200提供统一的封装规范,将应用程序连同必要的文件(例如库文件、配置文件、脚本和进程监控信息等)打包(步骤110),并发布到生产环境300中(步骤111)。
运维系统200监控发布到生产环境300的业务服务器310中的包实例的运行数据(步骤112),以支持运维人员进行包实例管理、版本管理和事件查询,包括查询新创建的包、查询包的新版本;还可以支持运维人员对生产环境300的业务服务器中的包实例进行管理,如启动、停止、重启、升级、降级和卸载等。生产环境300的运行日志数据将用于作为反馈供开发人员优化代码。
继续说明如图1和图2所示的实现本发明实施例的运维系统200的示例性的功能架构。
参见图3,图3是本发明实施例提供的运维系统200的示例性的功能架构示意图,运维系统200的硬件层可以采用管理服务器的集群的方式实现,运维系统200与生产环境300对接,在图3中仅示例性示出了运维系统的200中的一个管理服务器210,当然,不排除可以实施多个管理服务器210的情况。
下面首先说明管理服务器210的示例性结构,参见图4,图4是本发明实施例提供的运维系统中管理服务器的示例性的结构示意图,包括至少一个处理器2101、存储器2106、至少一个网络接口2103和用户接口2105。管理服务器210中的各个组件通过总线系统2102耦合在一起。可理解,总线系统2102用于实现这些组件之间的连接通信。总线系统2102除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统2102。
用户接口2105可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
存储器2106可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memo ry)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、闪存(Flash Memory)等。易失性存储器可以是随机存取存储器(R AM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static RandomAccess Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random AccessMemory)。本发明实施例描述的存储器2106旨在包括这些和任意其它适合类型的存储器。
本发明实施例中的存储器2106能够存储数据以支持管理服务器210的操作。这些数据的示例包括:用于在管理服务器210上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。
作为本发明实施例提供的方法采用软硬件结合实施的示例,本发明实施例所提供的运维方法可以直接体现为由处理器440执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器2106,处理器2101读取存储器2106中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器440以及连接到总线450的其他组件)完成本发明实施例提供的运维方法。
作为软件模块的示例性结构,在一些实施例中,存储器2106中的软件模块可以包括如图3所示的前台页面211、后台逻辑层212、应用程序接口213、存储服务层214和命令通道215。
下面结合图3说明一个运维系统200针对生产环境300的自动化运维的示例。
生产环境300承载了社交网络的即时通信功能,支持用户通过终端500(图3中示例性示出了终端500-1和终端500-2)。当需要更新社交网络的即时通信功能的后台应用程序时,运维人员在终端600中登录运维系统200的控制台,实施向生产环境300中安装包的操作命令,管理包实例或者进行事件查询。运维系统200执行相应的自动化的运维流程:根据存储的业务模块与业务服务器的对应关系确定需要执行操作命令的目标的服务器310,通过命令通道215、经由网络400传输到生产环境300中的业务服务器310执行,并更新包对应的包实例信息以用于后续的运维,例如事件查询、包的升级和降级等。
继续结合图3说明自动运维系统200的示例性的功能架构,图3中以运维系统200的功能部署在一个管理服务器为例,但是不应视为功能部署方式的限制,例如在一些示例中,运维系统200的每个功能都可以由不同的管理服务器210(或集群)来实现。
前台页面211用于显示运维系统200的控制台,控制台是一种图形化的控制界面,用于通过应用程序接口213向运维人员提供远程访问能力,例如通过浏览器或专用客户端访问运维系统200的前台页面211以显示控制台。接收运维人员针对生产环境300进行包的运维的操作命令,例如运维人员实施的包创建、包实例管理和事件查询等操作的操作命令,操作命令以封装成任务的方式进行任务队列中,根据后台逻辑层212的处理能力,任务队列的任务以串行方式或并行方式被后台逻辑层读出,还可以显示后台逻辑层212支持操作命令的各种中间处理结果和最终处理结果,例如操作是否成功,操作日志的查询结果等。
应用程序接口213用于向运维人员提供各种灵活的方式来登录前台页面211的控制台。
例如,应用程序接口213可以是开放网络访问的端口,从而运维人员在终端600浏览器中通过“地址+端口”的方式可以访问前台页面211中的控制台。
又例如,应用程序接口213可以是开放的应用程序接口(API,APplicatio nInterface),运维人员在终端600中安装的运维工具通过调用相应的API能够访问前台页面211来显示控制台。
存储服务层214是运维系统200的数据层,用于支撑后台逻辑层212实现各种功能的数据,包括生产环境300中的业务模块与业务服务器310之间的对应关系、以及包对应的包实例信息。
在一些实施例中,存储服务层214可以分类存储以下类型的数据:
1)生产环境中的业务模块300与业务服务器的对应关系、以及所述业务模块300的资源配置;
2)包实例信息,包括:全量包列表,即运维系统200创建的所有的包的列表,包括未安装、已经安装和已经卸载的包;包实例安装记录,包括已经安装到生产环境300的包的名称、版本和地址(即安装包的业务服务器的网络地址);包实例的进程监控信息;操作日志,即全量包列表中各个包的操作日志,包括包的名称、包的版本、操作类型(安装、启动、停止、重启、卸载、升级和降级)、操作结果(成功/失败)和实施操作的运维人员的名称;
3)不同的包所对应以下安装文件,包括应用程序的二进制文件、配置文件和脚本。
后台逻辑层212用于封装包管理功能的实现逻辑,包括包实例管理、包版本管理和事件查询等功能的实现逻辑;各种功能通过应用程序接口213在前台页面211的控制台中与运维人员进行人机交互,按照先入先出的方式,并行或串行地从任务队列中读取任务,并根据存储服务层存储214存储的生产环境中业务模块与业务服务器的对应关系,确定任务的目标业务模块所对应的业务服务器,确定任务的目标业务模块所对应的业务服务器,通过命令通道215向确定的业务服务310传输执行任务中所包括的操作命令。
例如,当操作命令用于进行包实例的管理(如启动、重启和停止时),由业务服务器310通过运行包管理框架311(例如,包括包中的各种对包实例进行管理的脚本,供运维系统200调用)对包实例进行操作。当操作命令完成时,后台逻辑层211将更新存储服务层214中存储的对应包的包实例信息。
命令通道215是运维系统200与生产环境300之间基于各种传输协议所建立的链路,基于运维系统200与生产环境300之间的网络400承载,在网络400使用代理(Agent)协议或安全壳(SSH,Secure Shell)协议建立穿透生产环境400的异构网络的链路以传输操作命令(当然,也可以传输数据,例如包),使得用于实现包实例管理、包版本管理和事件查询等包管理功能的操作命令能够忽略不同生产环境300的网络复杂的情况,而向生产环境300的业务服务器310传输,并在必要时传输业务服务器310完成操作命令所需要的数据,例如包。
实际应用中生产环境300不可避免地存在网络结构复杂的问题,例如不同的生产环境300可能部署了不同的公有云,有些生产环境300中甚至搭建了私有的互联网数据中心(IDC,Internet Data Center)和多个私有子网,所以往往会出现生产环境300的网络不通(例如上行和下行中只有一个方向通)、安全策略限制和通信协议限制等问题。当运维人员需要对这样的生产环境进行发布包时,在可利用带宽上将受到很大的限制。
本发明实施例提供的命令通道215能够克服生产环境300的网络异构对可用带宽造成的限制,下面示例性说明。
参见图5A,图5A是本发明实施例提供的命令通道215的示例性应用示意图,命令通道215通过部署在生产环境300的代理(Proxy)程序(运行Proxy协议,具有公网访问能力)与Agent程序通信,通过Proxy程序克服生产环境300的网络复杂而无法与运维系统200的后台逻辑层212通信的问题,当生产环境300中的Agent程序启动时,通过Proxy程序主动连接命令通道215,握手成功之后与命令通道215保持长连接,以接收来自后台逻辑层212的各种操作命令,这种通信方式对生产环境300的网络要求较低而且安全。
参见图5B,图5B是本发明实施例提供的命令通道215的示例性应用示意图,命令通道215通过部署在生产环境300的代理(Proxy)程序(具有公网访问能力,Proxy程序和Agent需要实现生产环境300到命令通道300的上行网络通信,但生产环境300自身只支持下行网络通信,命令通道300还需要支持通过SSH协议访问到生产环境300的Proxy程序以与Agent程序通信,生产环境300中的Agent程序启动时,通过Proxy程序主动连接命令通道,握手成功之后与命令通道215保持长连接,这种通信方式克服了生产环境300只支持单向网络通信的问题。
继续说明如图3所示的运维系统200的功能架构,参见图6,图6是本发明实施例提供的运维系统200的示例性的功能架构示意图,示出了存储服务层214和后台逻辑层212的示例性功能架构。存储服务层214可以运行配置管理数据库2142,云数据库2141、配置管理数据库2142和分布式文件系统2143。后台逻辑层212可以包括包管理2121,用于实现上文所述的包管理功能(包括包实例管理、包版本管理和事件查询)的功能;后台逻辑层212还可以包括容量管理2122和一致性监控2123;下面分别进行说明。
在一些实施例中,存储服务层214中可以运行云数据库2141以存储生产环境300的各个业务模块的以下包实例信息:全量包列表、包实例安装记录、包实例的进程监控信息和操作日志。例如,上文记载的存储服务层214存储的生产环境中的业务模块与业务服务器的对应关系、以及包对应的包实例信息,都可以由存储服务层214中运行的配置管理数据库2142存储;配置管理数据库2142还可以存储业务模块的资源配置,其指示了向业务模块中安装包时所依赖的资源、以及操作这些资源的先后次序。
运维系统200运行所依赖的上述核心数据通过配置管理数据库2142来统一存储,与封装运维逻辑的后台逻辑层212解耦,即实现了业务和数据的解耦,支持运维人员以灵活的方式管理数据和后台逻辑层212的升级。
为了对生产环境300的运维操作更加简洁和高效,管理配置管理数据库2142存储的数据是对生产环境300进行了不同层次的抽象、标准化为各种对象,参见图7,图7是本发明实施例提供的配置管理数据存储数据的示例性示意图,根据运维角色的差异,配置管理数据库2142将生产环境300进行分层。
以组件运维为例,生产环境300将被抽象为接入层、逻辑层和数据层;其中接入层用于封装标准化协议以对业务请求进行分类和负载均衡,逻辑层用于封装对业务请求处理逻辑,数据层用于存储各种供业务请求消费的数据。各种对象在运维系统200的后台逻辑中实现有对应运维的功能,上文所述的包管理2121、版本控制系统2144,相应的数据将存储在配置管理数据库2142中。
例如,配置管理数据库2142中可以存储业务模块的资源配置、以及业务模块的资源配置与生产环境中300中业务模块的实际配置是否一致性的信息,一致性的信息由一致性监控2123定期感知生产环境300中业务模块的资源配置,并与配置管理数据库2142中存储的资源配置进行比对形成。
在一些实施例中,存储服务层214中还可以运行分布式文件系统2143,根据云数据库2141的容量增长,分布式文件系统2143进行弹性扩容,对云数据库2141形成分布式的镜像,以云数据库2141故障时,利用云数据库2141的镜像进行容灾调度。
例如,分布式文件系统2143在多个地点部署云数据库2141的镜像,当一个地点的云数据2141的镜像发生故障时,将针对故障的镜像的访问倒换至其他地点的云数据库2141的镜像,保证数据的正常访问,运维系统200运维的稳定性得到保证。
在一些实施例中,存储服务层214中还可以运行版本控制系统2144,用于针对云数据库2141存储的全量包列表中的不同版本的包,存储对应的安装文件,包括应用程序的二进制文件、配置文件和脚本;从而能够根据不同版本的安装文件灵活支持包管理2121进行包的升级和降级。
下面结合图6示出的运维系统200的示例性功能架构,说明实现本发明实施例的运维方法的示例性流程,其对贯穿包实例管理的多个阶段进行自动运维,例如创建包、安装包、升级包、降级包、卸载包;还贯穿对事件查询和包版本管理进行自动化地运维。
参见图8A,图8A是本发明实施例提供的运维方法用于创建新包的一个可选的流程示意图,在一些实施例中,对于包管理2121的包版本管理来说,当运维人员在前台页面211的控制台触发创建新包(例如创建全新名称的包,或者,创建安装到生产环境300的包的新版本)的操作命令时(步骤201),操作命令以任务的方式通过应用程序接口213进入任务队列。
当包管理2121从任务队列中读出的任务包括用于创建新包的操作命令(步骤202)时,从持续集成系统13获取新包的安装文件(步骤203),并存储到存储服务层214运行的版本控制系统2144(步骤204);将新包的进程监控信息存储到所述存储服务层214运行的云数据库2141(步骤205),例如用于对包进行重启管理的相关参数;根据所述新包的名称和版本,更新所述云数据库2141存储的全量包列表(步骤206);其中,步骤204至步骤206不存在执行顺序的限制。
参见图8B,图8B是本发明实施例提供的运维方法用于包实例管理的一个可选的流程示意图,将说明对包实例管理的自动化运维流程。在一些实施例中,对于包管理2121的包实例管理来说,包管理2121通过应用程序接口213在前台页面211的控制台中与运维人员进行人机交互,接收运维人员的用于运维包实例的操作命令(步骤301),操作命令将以任务的方式被存入任务队列,按照先入先出的方式从任务队列中读取任务,当包管理2121从任务队列中读出任务包括的操作命令时(步骤302),根据存储服务层存储214存储的生产环境中业务模块与业务服务器的对应关系,确定任务的目标业务模块所对应的业务服务器310(步骤303),通过命令通道215向确定的业务服务器310传输操作命令(步骤304),当操作命令完成时,更新存储服务层214中存储的对应包的包实例信息(步骤305),以支持对运维相关的事件查询和包版本回退。
举例来说,包实例管理包括安装、卸载、升级、降级、启动和停止几个类型,下面分别说明。
首先说明包管理2121安装包的运维流程被触发的场景进行示例性说明。
例如,容量管理2122对生产环境300中支撑线上服务的业务模块的容量指标(例如,CPU/流量)进行监控,当触发扩容阀值时,便自动触发扩容调度,在生产环境300扩容的业务模块中安装包的运维流程,以使扩容的业务模块能够上线而实现线上服务。当然,容量管理2122系统也可以基于容量指标衡量业务负载情况,并自动触发缩容调度,实现业务的负载和成本间的平衡。
再例如,由运维人员在前台页面211中操作以对生产环境300进行扩容,在扩容的业务模块中安装包。
下面说明安装包的自动运维流程。
参见图8C,图8C是本发明实施例提供的运维方法用于安装包的一个可选的流程示意图,当包管理2121从任务队列中读出的任务包括用于安装包的操作命令(步骤401)时,从所述存储服务层214运行的版本控制系统2144中获取包所对应的安装文件(步骤402),从存储服务层214运行的云数据库2141获取所述包的进程监控信息(步骤403),并封装为相应的包(步骤404);通过所述命令通道215向所述确定的业务服务器310传输所述操作命令,操作命令会进入任务队列进行排队以等待发送到业务服务器310,一旦操作命令被传输到业务服务器310,业务服务器310将从包管理2121的缓存中读取包,并安装包对应的包实例(步骤405);在所述存储服务层214运行的云数据库2141所存储的包实例安装记录和操作日志中,添加相应包的记录(步骤406)。
例如,在包实例安装记录中添加新安装包的名称、版本和网络地址(即业务服务器的网络地址);在操作日志中添加包的名称、包的版本、操作类型(安装)、操作结果(成功)和实施操作的运维人员的名称。
从而,运维人员能够根据对生产环境300中安装的包的版本以业务模块为维度进行批量化地安装,在生产环境300扩容时能够实现包的快速部署。
下面说明卸载包的自动运维流程。
参见图8D,图8D是本发明实施例提供的运维方法用于卸载包的一个可选的流程示意图,当包管理2121从任务队列中读出的任务包括卸载的操作命令(步骤501)时,执行以下操作:通过命令通道215向所述确定的业务服务器310传输操作命令(步骤502),以调用所述业务服务器310中安装的包中的卸载脚本,来卸载所述包对应的包实例(步骤503)。
在存储服务层214运行的云数据库2141所存储的包实例安装记录和进程监控信息中删除相应包的记录(步骤504)。在云数据库214存储的操作日志中添加相应包的记录(步骤505),例如在操作日志中添加包的名称、版本、操作类型(卸载)、操作状态(成功)、运维人员名称和卸载时间。其中,步骤504和步骤505的执行顺序不存在限制。
从而,运维人员能够根据对生产环境300中安装的包的版本以业务模块为维度进行批量化地卸载。
下面说明升级/降级的自动运维流程。
参见图8E,图8E是本发明实施例提供的运维方法的用于升级/降级包的一个可选的流程示意图,当包管理2121从任务队列中读出的任务包括升级/降级的操作命令时(步骤601),执行以下操作:从所述存储服务层214运行的版本控制系统中获取变动文件(步骤602);通过命令通道215向所述确定的业务服务器310传输所述操作命令,操作命令将进入任务队列,当先于操作指令进入任务队列的其他操作命令已经被读出处理时,升级或降级的操作命令将通过命令通道215传输到业务服务器310,调用业务服务器310中安装的包的中的升级/降级脚本,来安装所述变动文件(步骤603)。由于只传输变动文件而不是版本的完整的安装包,耗时将更少进而提升运维效率。
当业务服务器310安装完成后,在存储服务层214运行的云数据库2141所存储的包实例安装记录中更新相应包的记录(步骤604),即包实例安装记录中将原版本的包实例的安装记录更新为升级/降级后的版本的包实例安装记录。在所述云数据库2141存储的操作日志中添加相应包的记录(步骤605),例如在操作日志中添加包的名称、包的版本、操作类型(升级/降级)、操作结果(成功)和实施操作的运维人员的名称。
从而,运维人员能够根据对生产环境300中安装的包的版本以业务模块为维度进行批量化地回退和升级。其中步骤604和步骤605的执行顺序不存在限制。
下面说明启动/停止/重启的自动运维流程。
参见图8F,图8F是本发明实施例提供的运维方法用于启动/停止/重启的一个可选的流程示意图,当包管理2121从所述任务队列中读出的任务包括启动/停止/重启操作命令(步骤701)时,操作命令将进入任务队列,当先于操作指令进入任务队列的其他操作命令已经被读出处理时,启动/停止/重启的操作命令将通过命令通道215被传输到业务服务器310,业务服务器310执行命令以调用所述包中启动/停止/重启的脚本来启动/停止/重启包实例(步骤702),当启动/停止/重启包实例时,在所述存储服务层214运行的云数据库2141所存储的操作日志添加相应包的记录(步骤703),例如:包的名称、包的版本、操作类型(启动/停止/重启)、操作结果(成功)和实施操作的运维人员的名称。
从而,运维人员能够对安装到生产环境的包以业务模块为维度进行批量化地管理,提高运维操作效率。
下面说明事件查询的自动运维流程。
参见图8G,图8G是本发明实施例提供的运维方法用于事件查询的一个可选的流程示意图,当包管理2121从所述任务队列中读出的任务包括查询的操作命令(步骤801)时,事件查询的操作命令将进入任务队列,当先于操作指令进入任务队列的其他操作命令已经被读出处理时,事件查询的操作命令被包管理2121读取,根据操作命令的关键字参数,从所述存储服务层214运行的云数据库2141中以关键字进行搜索(步骤802),其中可以是单位维度的搜索,例如以包的名称进行搜索;当然也可以是复合型的搜索,例如支持以包名称、包版本、操作类型、操作结果和运维人员中的至少两个维度。例如搜索全量包列表、包实例记录和操作日志中的至少一类数据,并在所述前台页面211显示相应的搜索结果(步骤803)。
从而,运维人员能够灵活查询自己以及其他运维人员针对生产环境300按安装、升级、卸载等操作的日志,以及生产环境300当前安装的包对应的包实例信息,能够实现灵活追溯。
下面仍以上文针对图3记载的示例性的应用场景,说明实现本发明实施例的运维系统的包管理的方案。
如图3所示,生产环境300承载了社交网络的即时通信功能,支持用户通过终端500(图3中示例性示出了终端500-1和终端500-2)。社交网络的负荷在特殊时期具有高峰,例如在节假日,通过社交网络发送问候消息、电子红包的业务较日常长出现巨大的增长,目前统计的每秒的电子红包的发送量甚至达到百万级别。
为了保证消息传输的实时性,就需要对生产环境300中的业务服务器进行扩容,扩容阶段需要完成的一个典型的工作就是需要在扩容的业务服务器中安装支持即时通信业务的包,并启动包实例。当即时通信的业务升级时就需要同步对包进行升级,当发现包出现稳定问题时需要对包进行降级/停止;当某个业务服务器进行的包实例意外停止时需要重启包实例。
在普通时期就需要对生产环境光进行缩容,缩容阶段需要完成的一个典型的工作是对缩容的业务服务器安装的包实例进行卸载。
此外,运维人员有需求查询生产环境300中各种操作日志进行各种定制化的查询以及时了解运维情况,例如从运维时间、运维人员、包名、包版本、操作类型和操作结果中的一个或多个维度进行灵活查询。
下面结合运维系统的示例性的架构说明。
参见图9,图9是本发明实施例提供的运维系统自动运维生产环境的一个可选的架构示意图,说明如下。
如6所示的应用程序接口213实施为包管理接口213(Pkg API),提供浏览器、自动化后台访问运维系统200的接口。
如6所示的包管理2121实施为以下几个模块:包分发/缓存(Pkg dist/P kgcache)模块,承担从版本控制系统2144导出包、缓存及分发功能;包操作任务队列(例如RabbitMQ),用于以队列的方式存储针对包的各种操作命令的任务;包节点(Pkg Worker),解析并执行包安装任务的工作引擎。
云数据库2141,用于存储所有包的列表、实例安装记录(包含:包、版本、实例IP等字段)、进程监控信息的数据库。
配置管理数据库2142,登记所有业务模块及对应业务服务器列表、配置资源的数据库。业务模块与业务服务器对应关系是记录在配置管理数据库2142的树形结构的一个叶子节点中,每一个业务模块的节点除了记录业务模块对应的业务服务器列表,还记录了业务模块的资源配置。
命令通道215,通过SSH/Agent方式向生产环境的业务服务器发送操作命令。
版本控制系统2144,例如SVN(Subversion),用于存储包的不同版本的包文件。
分布式文件系统2143(例如Ceph),是一种分布式网络文件系统,提供容灾及弹性扩容能力。
运维人员通过浏览器或者其它自动运行的后台程序访问应用程序接口213,可以执行如下操作:1、创建包;2、创建指定包的新版本;3、安装一个包到指定生产环境中的业务服务器;4、对指定业务服务器的包执行进程重启、升级、降级和卸载。下面分别进行说明。
当运维人员通过浏览器或者其它自动运行的后台程序创建包、创建新版本时,相应的进程监控信息(包括:进程名,进程数量,进程启动、停止的方式,升级、安装时的前后置动作等模板化信息)会被会记录在云数据库2141中,包文件则存储在版本控制系统2144中。
当运维人员通过浏览器或者其它自动运行的后台程序通过应用程序接口213安装一个包时,包引擎会从配置管理数据库2142、任务队列及配置管理数据库2142获取任务信息,通过包分发模块到SVN导出安装文件生成安装包并放到包缓存模块,然后通过命令通道通知生产环境的业务服务器过来下载安装包,执行安装步骤。执行成功后,更新云数据库2141中的包实例信息,添加新的包实例的网络地址。
当运维人员通过浏览器或者其它自动运行的后台程序通过应用程序接口213卸载一个包时,包引擎会通过命令通道调用包管理脚本删除对应的包目录,并更新云数据库2141中的包实例信息,删除对应的包实例的网络地址。
当运维人员通过浏览器或者其它自动运行的后台程序通过应用程序接口213升级(降级)一个包的新版本时,包引擎通过包分发模块到SVN以比较文件差异的命令(例如diff命令)的方式生成新旧版本之间的变动文件,生成升级包并放到包缓存模块,通过命令通道通知生产环境的业务服务器来下载升级包,备份生产环境的目录,执行升级步骤替换差异文件。执行成功后,更新云数据库2141中的包实例信息为对应新版本的包实例信息。
当运维人员通过浏览器或者其它自动运行的后台程序对生产环境中的指定业务服务器的包实例执行重启时,应用程序接口213把任务信息写到云数据库2141和任务队列,由包引擎读取任务信息,并通过命令通道,调用业务服务器上的重启脚本执行重启操作。
可见,本发明实施例提供的运维系统可以实施为一个轻量型服务管理平台,提供标准化的应用程序打包操作,可连接持续集成系统,完成线上程序分发、实现进程监控。
继续说明本发明实施例提供的运维系统能够克服相关技术在以下几种运维场景中遇到的典型问题,从而提高运维操作效率。
场景1:若干应用、不同版本运行在多台业务服务器中,需要人工维护应用版本和业务服务器的对应关系。
场景2:若干团队、不同人员操作生产环境中的业务服务器,对生产环境的操作无统一记录,追溯困难。
本发明实施例提供的运维系统将每次运维过程的业务模块与业务服务器的对应关系、包实例记录同步更新到存储服务层214,能够提供对生产环境300的包运维的相关数据进行灵活的定制化的查询,下面结合前台页面211显示的用于运维生产环境300的控制台的显示页面进行说明。
参见图10A,图10A是本发明实施例提供的运维系统在前台页面显示包实例管理的控制台的示意图,示出了包实例的列表,包括实例的网络地址、版本以及版本变更时间。同时,支持以包的名称搜索包的不同版本的包实例的情况。
参见图10B,图10B是本发明实施例提供的运维系统在前台页面显示包实例管理的控制台的示意图,还支持以网络地址搜索对应的业务服务器安装的包实例的情况。
参见图10C,图10C是本发明实施例提供的运维系统在前台页面显示包版本管理的示意图,示出了生产环境300中安装的包的不同版本,支持运维人员在创建包的新版本以对生产环境300中的同名包进行升级。
参见图10D,图10D是本发明实施例提供的运维系统在前台页面的事件查询的示意图,支持运维人员以包名称搜索包的操作日志,包括操作时间、操作人名称、网络地址数量、操作类型和操作状态等字段,从而运维人员灵活查询操作记录。
场景3:使用容器化技术(例如Docker)管理应用程序,每次发布,需要把整个容器销毁,更新镜像,然后重新创建容器,再安装镜像,导致明显的升级/降级延迟。
本发明实施例提供的自动运维系统在包升级时只传送变动文件到生产环境300中进行安装,显著提升了升级/降级的效率。
场景4:手工操作发布替换线上系统程序文件,无版本管理,版本回退困难。
本发明实施例的运维系统提供创建包、包实例管理、包版本管理和事件查询整体解决方案,能够灵活进行版本的升级和回退。
当运维人员通过运维系统发起一次业务扩容或者发布时,运维系统会通过相关辅助系统和包系统对生产环境的业务服务器行操作。
综上所述,本发明实施例提供的运维系统可以用于运维各种生产环境,提供统一的标准和约束,简化了业务部署,结合上游的设备和自动化流程管理,极大地提高了服务管理效率,具有如下特性:
文件包组织:进程依赖的库、配置文件、脚本打成包;版本迭代管理:可视化管理文件包,及对应版本安装的业务服务器列表;高效发布回退:每次版本变更只需增量传送变动文件,敏捷高效;集中式管理:收拢发布入口,避免操作冲突,方便协同操作;操作查询:统一查询入口,生产环境变更一目了然。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。

Claims (15)

1.一种运维系统,其特征在于,包括:
前台页面,用于通过应用程序接口,接收针对生产环境进行包的运维的操作命令,并将所述接收操作命令存储到任务队列中;
后台逻辑层,用于从所述任务队列中读出所述任务队列包括的操作命令时,执行以下操作:
根据存储服务层存储的所述生产环境中业务模块与业务服务器的对应关系,确定所述任务的目标业务模块所对应的业务服务器,
通过命令通道向所述确定的业务服务器传输所述操作命令,以及,
更新所述存储服务层中存储的对应所述包的包实例信息;
所述存储服务层,用于存储所述生产环境中的业务模块与业务服务器的对应关系、以及所述包对应的包实例信息。
2.根据权利要求1所述的运维系统,其特征在于,
所述存储服务层,还用于通过运行配置管理数据库存储所述生产环境中的业务模块与业务服务器的对应关系、以及所述业务模块的资源配置;
所述后台逻辑层,还用于当从所述任务队列中读出所述操作命令之前,且,当处于所述生产环境的部署或扩容阶段时,
在所述前台页面中接收针对所述生产环境中部署或扩容的业务模块的资源配置,以及,
将所述生产环境中的业务模块与业务服务器的对应关系、以及所述业务模块的资源配置更新到所述存储服务层运行的配置管理数据库中。
3.根据权利要求1所述的运维系统,其特征在于,
所述存储服务层,还用于通过运行云数据库存储所述生产环境的以下包实例信息:全量包列表、包实例安装记录、包实例的进程监控信息和操作日志;以及,
通过运行分布式文件系统对所述云数据库进行容灾调度。
4.根据权利要求3所述的运维系统,其特征在于,
所述全量包列表包括所有已经创建的包的名称和版本;
所述包实例安装记录包括包的名称、版本和网络地址;
所述进程监控信息包括进程和对应的进程数量上限;
所述操作日志包括以下至少之一:包的名称、版本、操作时间、操作类型、操作结果和运维人员。
5.根据权利要求1所述的运维系统,其特征在于,
所述存储服务层,还用于通过运行版本控制系统以存储不同的包所对应以下安装文件:应用程序的二进制文件、配置文件和脚本。
6.根据权利要求1所述的运维系统,其特征在于,
所述后台逻辑层,还用于当从所述任务队列中读出用于创建新包的所述操作命令时,
从持续集成系统获取所述新包的安装文件,并存储到所述存储服务层运行的版本控制系统;
将所述新包的进程监控信息存储到所述存储服务层运行的云数据库,并根据所述新包的名称和版本更新所述云数据库存储的全量包列表。
7.根据权利要求1所述的运维系统,其特征在于,
所述后台逻辑层,具体用于当从所述任务队列中读出用于安装所述包的所述操作命令时,
从所述存储服务层运行的版本控制系统中获取所述包所对应的文件,从所述存储服务层运行的云数据库获取所述包的进程监控信息,并封装为相应的包;
通过所述命令通道向所述确定的业务服务器传输所述操作命令以安装所述包对应的包实例;以及,
在所述存储服务层运行的云数据库所存储的包实例安装记录和操作日志中,添加相应包的记录。
8.根据权利要求1所述的运维系统,其特征在于,
所述后台逻辑层,具体用于当从所述任务队列中读出用于卸载的所述操作命令时,执行以下操作:
通过命令通道向所述确定的业务服务器传输所述操作命令,以调用所述包的脚本卸载所述包对应的包实例;
在所述存储服务层运行的云数据库所存储的包实例安装记录和进程监控信息中删除相应包的记录,在所述云数据库存储的操作日志中添加相应包的记录。
9.根据权利要求1所述的运维系统,其特征在于,
所述后台逻辑层,具体用于当从所述任务队列中读出用于升级或降级的所述操作命令时,执行以下操作:
从所述存储服务层运行的版本控制系统中获取变动文件;
通过命令通道向所述确定的业务服务器传输所述操作命令,以调用所述包的脚本对应安装所述变动文件;
在所述存储服务层运行的云数据库所存储的包实例安装记录中更新相应包的记录,在所述云数据库存储的操作日志中添加相应包的记录。
10.根据权利要求1所述的运维系统,其特征在于,
所述后台逻辑层,具体用于当从所述任务队列中读出用于启动、重启或停止的所述操作命令时,执行以下操作:
通过命令通道向所述确定的业务服务器传输所述操作命令,以调用所述包中对应的脚本的响应所述操作命令;
在所述存储服务层运行的云数据库所存储的操作日志添加相应包的记录。
11.根据权利要求1至10任一项所述的运维系统,其特征在于,
所述后台逻辑层,还用于当从所述任务队列中读出用于查询的所述操作命令时,执行以下操作:
从所述存储服务层运行的云数据库中以关键字进行搜索,并在所述前台页面显示相应的搜索结果;
所述关键字包括以下至少之一:包名称、包版本、操作类型、操作结果和运维人员。
12.一种运维方法,其特征在于,所述方法包括:
在前台页面中通过应用程序接口,接收针对生产环境进行包的运维的操作命令,并将所述接收操作命令存储到任务队列中;
当从所述任务队列中读出所包括的操作命令时,执行以下操作:
根据存储服务层存储的所述生产环境中业务模块与业务服务器的对应关系,确定所述任务的目标业务模块所对应的业务服务器,
通过命令通道向所述确定的业务服务器传输所述操作命令,以及,
更新所述存储服务层中存储的对应所述包的包实例信息。
13.根据权利要求12所述的运维方法,其特征在于,所述方法还包括:
在所述存储服务层中运行配置管理数据库,以存储所述生产环境中的业务模块与业务服务器的对应关系、以及所述业务模块的资源配置;
当从所述任务队列中读出所述操作命令之前,且,当处于所述生产环境的部署或扩容阶段时,
在所述前台页面中接收针对所述生产环境中部署或扩容的业务模块的资源配置,以及,
将所述生产环境中的业务模块与业务服务器的对应关系、以及所述业务模块的资源配置更新到所述存储服务层运行的配置管理数据库中。
14.一种运维系统,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求12至13任一项所述的运维方法。
15.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求12至13任一项所述的运维方法。
CN201811270956.8A 2018-10-29 2018-10-29 一种运维系统、方法及存储介质 Active CN110196731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811270956.8A CN110196731B (zh) 2018-10-29 2018-10-29 一种运维系统、方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811270956.8A CN110196731B (zh) 2018-10-29 2018-10-29 一种运维系统、方法及存储介质

Publications (2)

Publication Number Publication Date
CN110196731A true CN110196731A (zh) 2019-09-03
CN110196731B CN110196731B (zh) 2021-05-11

Family

ID=67751387

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811270956.8A Active CN110196731B (zh) 2018-10-29 2018-10-29 一种运维系统、方法及存储介质

Country Status (1)

Country Link
CN (1) CN110196731B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851253A (zh) * 2019-11-06 2020-02-28 万达信息股份有限公司 一种远程运维的方法、系统、存储介质及电子设备
CN111142899A (zh) * 2019-12-12 2020-05-12 东软集团股份有限公司 数据库脚本执行方法、装置、存储介质及电子设备
CN112306659A (zh) * 2020-11-02 2021-02-02 北京中电普华信息技术有限公司 一种应用的降级保护方法及业务处理系统
CN112579126A (zh) * 2020-12-21 2021-03-30 杭州米络星科技(集团)有限公司 软件开发平台及软件开发方法
CN112698916A (zh) * 2020-12-31 2021-04-23 北京千方科技股份有限公司 一种多容器集群的管控系统、方法以及存储介质
CN112799684A (zh) * 2019-11-14 2021-05-14 中盈优创资讯科技有限公司 业务包获取和加载方法及装置
CN112799688A (zh) * 2021-01-18 2021-05-14 中国银联股份有限公司 容器应用内软件包安装方法、装置、计算机设备及介质
CN113472565A (zh) * 2021-06-03 2021-10-01 北京闲徕互娱网络科技有限公司 服务器功能的扩容方法、装置、设备和计算机可读介质
WO2021203979A1 (zh) * 2020-11-16 2021-10-14 平安科技(深圳)有限公司 运维处理方法、装置及计算机设备
CN115334144A (zh) * 2022-06-29 2022-11-11 上海万物新生环保科技集团有限公司 一种业务状态变更通知的处理方法、装置及系统
CN115344273A (zh) * 2022-10-19 2022-11-15 杭州比智科技有限公司 一种基于货架系统来运行应用软件的方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200098A1 (en) * 2002-04-12 2003-10-23 Geipel Barry L. System and method for active configuration management
CN102546796A (zh) * 2011-12-31 2012-07-04 重庆新媒农信科技有限公司 业务服务器数据更新处理系统及方法
CN103440376A (zh) * 2013-08-26 2013-12-11 中国人民解放军国防科学技术大学 基于组件的分布集中一体化仿真系统运行支撑平台
CN104267938A (zh) * 2014-09-16 2015-01-07 福建新大陆软件工程有限公司 一种流式计算的应用快速开发部署的方法及装置
CN105159704A (zh) * 2015-08-05 2015-12-16 浪潮(北京)电子信息产业有限公司 一种批量部署操作系统的方法及装置
CN105791417A (zh) * 2016-04-13 2016-07-20 北京思特奇信息技术股份有限公司 一种基于云管理平台的智能部署及过程监控系统及方法
CN105915633A (zh) * 2016-06-02 2016-08-31 北京百度网讯科技有限公司 自动化运维系统和方法
CN107431696A (zh) * 2016-02-25 2017-12-01 华为技术有限公司 用于应用自动化部署的方法和云管理节点
CN108023959A (zh) * 2017-12-08 2018-05-11 郑州云海信息技术有限公司 一种自动安装集群系统的方法及系统
CN108399083A (zh) * 2017-02-07 2018-08-14 北京京东尚科信息技术有限公司 一种系统部署方法、装置、电子设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200098A1 (en) * 2002-04-12 2003-10-23 Geipel Barry L. System and method for active configuration management
CN102546796A (zh) * 2011-12-31 2012-07-04 重庆新媒农信科技有限公司 业务服务器数据更新处理系统及方法
CN103440376A (zh) * 2013-08-26 2013-12-11 中国人民解放军国防科学技术大学 基于组件的分布集中一体化仿真系统运行支撑平台
CN104267938A (zh) * 2014-09-16 2015-01-07 福建新大陆软件工程有限公司 一种流式计算的应用快速开发部署的方法及装置
CN105159704A (zh) * 2015-08-05 2015-12-16 浪潮(北京)电子信息产业有限公司 一种批量部署操作系统的方法及装置
CN107431696A (zh) * 2016-02-25 2017-12-01 华为技术有限公司 用于应用自动化部署的方法和云管理节点
CN105791417A (zh) * 2016-04-13 2016-07-20 北京思特奇信息技术股份有限公司 一种基于云管理平台的智能部署及过程监控系统及方法
CN105915633A (zh) * 2016-06-02 2016-08-31 北京百度网讯科技有限公司 自动化运维系统和方法
CN108399083A (zh) * 2017-02-07 2018-08-14 北京京东尚科信息技术有限公司 一种系统部署方法、装置、电子设备和存储介质
CN108023959A (zh) * 2017-12-08 2018-05-11 郑州云海信息技术有限公司 一种自动安装集群系统的方法及系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110851253A (zh) * 2019-11-06 2020-02-28 万达信息股份有限公司 一种远程运维的方法、系统、存储介质及电子设备
CN112799684B (zh) * 2019-11-14 2023-09-29 中盈优创资讯科技有限公司 业务包获取和加载方法及装置
CN112799684A (zh) * 2019-11-14 2021-05-14 中盈优创资讯科技有限公司 业务包获取和加载方法及装置
CN111142899A (zh) * 2019-12-12 2020-05-12 东软集团股份有限公司 数据库脚本执行方法、装置、存储介质及电子设备
CN111142899B (zh) * 2019-12-12 2024-03-22 东软集团股份有限公司 数据库脚本执行方法、装置、存储介质及电子设备
CN112306659A (zh) * 2020-11-02 2021-02-02 北京中电普华信息技术有限公司 一种应用的降级保护方法及业务处理系统
CN112306659B (zh) * 2020-11-02 2024-03-15 北京中电普华信息技术有限公司 一种应用的降级保护方法及业务处理系统
WO2021203979A1 (zh) * 2020-11-16 2021-10-14 平安科技(深圳)有限公司 运维处理方法、装置及计算机设备
CN112579126A (zh) * 2020-12-21 2021-03-30 杭州米络星科技(集团)有限公司 软件开发平台及软件开发方法
CN112698916A (zh) * 2020-12-31 2021-04-23 北京千方科技股份有限公司 一种多容器集群的管控系统、方法以及存储介质
CN112698916B (zh) * 2020-12-31 2024-04-12 北京千方科技股份有限公司 一种多容器集群的管控系统、方法以及存储介质
CN112799688A (zh) * 2021-01-18 2021-05-14 中国银联股份有限公司 容器应用内软件包安装方法、装置、计算机设备及介质
CN113472565A (zh) * 2021-06-03 2021-10-01 北京闲徕互娱网络科技有限公司 服务器功能的扩容方法、装置、设备和计算机可读介质
CN115334144A (zh) * 2022-06-29 2022-11-11 上海万物新生环保科技集团有限公司 一种业务状态变更通知的处理方法、装置及系统
CN115344273A (zh) * 2022-10-19 2022-11-15 杭州比智科技有限公司 一种基于货架系统来运行应用软件的方法及系统

Also Published As

Publication number Publication date
CN110196731B (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN110196731A (zh) 一种运维系统、方法及存储介质
US7124289B1 (en) Automated provisioning framework for internet site servers
CN106951233B (zh) 混合模式智能手机应用开发框架系统
US8250570B2 (en) Automated provisioning framework for internet site servers
US7743147B2 (en) Automated provisioning of computing networks using a network database data model
CN110321152A (zh) 一种软件开发平台
US7152109B2 (en) Automated provisioning of computing networks according to customer accounts using a network database data model
US8019835B2 (en) Automated provisioning of computing networks using a network database data model
CN103051710B (zh) 一种虚拟云平台管理系统
US7131123B2 (en) Automated provisioning of computing networks using a network database model
CN110704164A (zh) 一种基于Kubernetes技术的云原生应用平台构建方法
CN111061491B (zh) 一种基于lxc容器技术的边缘计算网关管理系统及方法
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
US20130318512A1 (en) Hot Pluggable Extensions for Access Management System
CN111897541B (zh) 一种云环境下自动化部署资源的软件交互平台及方法
US20020158898A1 (en) Graphical user interfaces for viewing and configuring devices in an automated provisioning environment
CN104021078B (zh) 软件监控装置及方法
CN111352653B (zh) 基于PaaS云平台服务器的系统开发方法及服务器
CN108446102A (zh) 一种开发部署应用程序的一体化系统及方法
CN112417051A (zh) 容器编排引擎资源管理方法及装置、可读介质及电子设备
CN104090810A (zh) 一种基于软件通信体系架构的核心框架集成方法
CN112711397A (zh) 一种基于微服务和顶层设计的建立系统的方法及系统
CN114168179A (zh) 微服务管理方法、装置、计算机设备和存储介质
CN115309500A (zh) 云上微服务架构应用部署和运维管理方法及系统
CN111045652A (zh) 配电网开发及服务系统

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