一种构建互联网运维资源关联体系的方法及系统与流程

文档序号:16665650发布日期:2019-01-18 23:15阅读:170来源:国知局
一种构建互联网运维资源关联体系的方法及系统与流程
本发明涉及配置管理数据库系统设计领域,尤其是一种构建互联网运维资源关联体系的方法及系统。
背景技术
:随着互联网行业的发展,it运维(运营维护)在业界的受重视程度越来越高,而对于互联网运维来说,最重要的核心系统无疑是cmdb(配置管理数据库系统),cmdb提供了一整套接口与其它任何需要该信息的系统进行对接,将信息从一个统一的、标准的源头输出给各垂直或水平业务功能系统,而运维需要做的就是维护cmdb本身基础数据的完整性和准确性,cmdb与各流程系统、垂直功能系统结合之后实现信息数据一处变更,处处同步。所以说它是所有运维自动化的基础系统,核心中的核心。每家企业的运维团队基本都会建设自己的配置管理系统,但是,各家企业的业务情况各异,很难有统一的系统设计模式可以重复利用。所以,各家都在建设配置管理系统的过程中重复开发,缺乏一个可以参考的设计模式。这样导致的结果是,其一,浪费开发人员的人力成本和时间成本;其二,由于开发人员的经验有限,容易设计出一套不可扩展的模式,导致后期随着业务的变更而导致不必要的返工重造,进一步浪费宝贵的人力成本和耽误业务发展时机。究其原因,现有的大部分运维团队的cmdb设计方法一般是以服务器为主线进行运维资源对象的关系拓扑图展开,以建立一个大而全的运维属性表。然而这样通过零散的运维对象来拼凑cmdb一般是无法成功的,因为这样的设计方式根本没有从业务出发,只从物理机器的角度出发是无法应对真正的业务需求的,会存在以下问题:a.只从物理主机出发,缺乏了对业务应用的关注,导致物理层和应用层无法关联;b.以物理层为主线的cmdb设计方法,让运维人员重心在物理层,降低了对业务的敏感度以及相关运维能力;c.后续随着业务的发展,面向物理层的cmdb都难以应对业务的变更,需要大幅度的重构代码设计。技术实现要素:为解决上述技术问题,本发明的目的在于:提供一种成本低和可扩展性高的构建互联网运维资源关联体系的方法及系统。本发明所采取的第一技术方案是:一种构建互联网运维资源关联体系的方法,包括以下步骤:根据业务类型确定配置管理数据库系统的项目信息;根据所述确定的项目信息得到项目所包含的应用信息;根据所述得到的应用信息确定每个应用所包含的集群信息;根据所述确定的集群信息得到每个集群所包含的主机信息;其中,项目信息包括配置管理数据库系统对外服务的整体系统信息,应用信息包括应用的类型信息,集群信息包括项目的运行场景信息,主机信息包括项目运行所需的机器资源信息,所述配置管理数据库系统的应用可扩展。进一步,所述配置管理数据库系统的项目信息包括项目属性信息,所述项目属性信息具体包括项目id、项目名称、项目代号和包含的应用列表。进一步,所述配置管理数据库系统的应用信息包括应用属性信息,所述应用属性信息具体包括应用id、应用名称、应用代号、所属项目和包含的集群列表。进一步,所述配置管理数据库系统的集群信息包括集群属性信息,所述集群属性信息具体包括集群id、集群名称、集群代号、所属应用和包含的主机列表。进一步,所述配置管理数据库系统的主机信息包括主机属性信息,所述主机属性信息具体包括主机id、主机名称和所属的集群。进一步,所述管理数据库系统的应用的部署信息、集群的部署信息和主机的部署信息均集成在配置管理数据库系统的部署属性字段中。进一步,还包括以下步骤:软件程序通过遍历所述配置管理数据库系统的应用来获取所对应的项目信息、集群信息、部署信息及所部署的主机信息,并将获取的信息返回给客户端。进一步,还包括以下步骤:软件程序通过所述配置管理数据库系统的主机反向遍历对应的部署信息,并获得主机所用于的应用及项目信息,然后将获取的部署信息、主机所用于的应用及项目信息通过应用程序接口的方式返回给客户端。本发明所采取的第二技术方案是:一种构建互联网运维资源关联体系的系统,包括:项目信息确定模块,用于根据业务类型确定配置管理数据库系统的项目信息;应用信息获取模块,用于根据所述确定的项目信息得到项目所包含的应用信息;集群信息确定模块,用于根据所述得到的应用信息确定每个应用所包含的集群信息;主机信息获取模块,用于根据所述确定的集群信息得到每个集群所包含的主机信息;其中,项目信息包括配置管理数据库系统对外服务的整体系统信息,应用信息包括应用的类型信息,集群信息包括项目的运行场景信息,主机信息包括项目运行所需的机器资源信息,所述配置管理数据库系统的应用可扩展。本发明所采取的第三技术方案是:一种构建互联网运维资源关联体系的系统,包括:存储器,用于存放程序;处理器,用于加载所述程序以执行如第一技术方案所述的构建互联网运维资源关联体系的方法。本发明的有益效果是:先根据业务类型确定配置管理数据库系统的项目信息,再根据所述确定的项目信息得到项目所包含的应用信息,然后根据所述得到的应用信息确定每个应用所包含的集群信息,最后根据所述确定的集群信息得到每个集群所包含的主机信息,从业务自身出发,构建了由项目、应用、集群和主机组成的四层对象模型来组建配置管理数据库系统,利用业务应用为原点,可适配于大部分企业的企业模式,避免重复分析自家业务进行重复的设计方案,节省了开发人员的人力成本和时间成本;配置管理数据库系统的应用可扩展,能通过对应用的扩展来应对后续业务模式的变更,可扩展性更高。附图说明图1为本发明一种构建互联网运维资源关联体系的方法的整体流程图;图2为传统的配置管理数据库系统模型的单层业务关系图;图3为本发明优选实施例配置管理数据库系统模型的设计流程图;图4为本发明优选实施例通过应用遍历得到的业务及资源关系图;图5为本发明优选实施例通过主机反向遍历得到的聚合关系图;图6为本发明优选实施例访问应用的流程图;图7为本发明优选实施例访问主机的流程图。具体实施方式参照图1,本发明一种构建互联网运维资源关联体系的方法,包括以下步骤:根据业务类型确定配置管理数据库系统的项目信息;根据所述确定的项目信息得到项目所包含的应用信息;根据所述得到的应用信息确定每个应用所包含的集群信息;根据所述确定的集群信息得到每个集群所包含的主机信息;其中,项目信息包括配置管理数据库系统对外服务的整体系统信息,应用信息包括应用的类型信息,集群信息包括项目的运行场景信息,主机信息包括项目运行所需的机器资源信息,所述配置管理数据库系统的应用可扩展。进一步作为优选的实施方式,所述配置管理数据库系统的项目信息包括项目属性信息,所述项目属性信息具体包括项目id、项目名称、项目代号和包含的应用列表。进一步作为优选的实施方式,所述配置管理数据库系统的应用信息包括应用属性信息,所述应用属性信息具体包括应用id、应用名称、应用代号、所属项目和包含的集群列表。进一步作为优选的实施方式,所述配置管理数据库系统的集群信息包括集群属性信息,所述集群属性信息具体包括集群id、集群名称、集群代号、所属应用和包含的主机列表。进一步作为优选的实施方式,所述配置管理数据库系统的主机信息包括主机属性信息,所述主机属性信息具体包括主机id、主机名称和所属的集群。进一步作为优选的实施方式,所述管理数据库系统的应用的部署信息、集群的部署信息和主机的部署信息均集成在配置管理数据库系统的部署属性字段中。其中,部署信息是在部署应用、集群或主机时所需的一些信息。在本实施例中,并不限定部署信息的内容,只要是应用、集群或主机部署时相关的信息即可。示例性地,以应用的部署信息为例,应用的部署信息可以包括应用的资源需求信息,比如,需要的内存大小是x1,需要占用的磁盘大小是x2。集群或主机的部署信息与应用的类似,不再详举。部署属性字段是用于表征和存放应用的部署信息、集群的部署信息和主机的部署信息的字段。进一步作为优选的实施方式,还包括以下步骤:软件程序通过遍历所述配置管理数据库系统的应用来获取所对应的项目信息、集群信息、部署信息及所部署的主机信息,并将获取的信息返回给客户端。进一步作为优选的实施方式,还包括以下步骤:软件程序通过所述配置管理数据库系统的主机反向遍历对应的部署信息,并获得主机所用于的应用及项目信息,然后将获取的部署信息、主机所用于的应用及项目信息通过应用程序接口api的方式返回给客户端。传统的cmdb模型习惯以主机作为主要对象,是一种单层的业务关系模型,且把项目或者应用等作为主机的一个属性,其单层业务关系图如图2所示。当这种数据对象模型存储在数据库后,简单来说就是类似excel记录的模式,如下表1所示:表1主机名ip内存磁盘项目应用主机11.1.1.14g200g项目a站点主机21.1.1.24g200g项目a、d数据库主机31.1.1.34g200g项目a、b逻辑后台主机41.1.1.44g200g项目b站点主机51.1.1.54g200g项目c数据库主机61.1.1.64g200g项目b逻辑站点表1这样的设计模式,很容易导致其在查找全部属于某某应用站点的服务器应用场景、随着业务的发展需要关联更多的主机应用关系等应用场景无法很好地应用,理由如下:a)业务信息不完全。这种设计模式对于应用的属性无记录,在it运维场景中,对于某台设备上的应用以何种方式运行,包括应用的域名,端口,工作路径,配置属性,日志文件等,it运维人员无法通过表1得知。为了满足a)中所属需求“查找某台设备上以何种方式运行了应用”可以对表1的数据表进行扩展,从而得到如下表2的改良模型:表2b)不能灵活地应对变化。在今天的互联网行业中,应用需要不断地进行试错迭代,同时也要求能够灵活地迁移或伸缩,例如需要将某个应用下线,或者将某个应用迁移到另外一批设备上,那么在表2的模式中,就需要做如下操作:-通过应用某项属性(域名),查找出域名=s1.abc.com所关联的机器;-从待迁移机器的域名中找出s1.abc.com并删除,然后在路径字段中找出/home/app/s1/并删除。同理,对别的属性进行相同的操作(端口,配置,日志等)。一旦应用及设备数量很多,这些操作对于一个it运维人员来说就是非常繁琐的。综上所述,传统cmdb模型通过零散的运维对象来拼凑cmdb一般是无法成功的,因为这样的设计方式根本没有从业务出发,只从物理机器的角度出发是无法应对真正的业务需求。真正能解决业务问题的cmdb必须回到业务上面来,为此,如图3所示,本发明从核心的四层关系开始组建cmdb,这四层概念从大到小分别是:项目、应用、集群和主机,对应的关联信息分别为项目信息、应用信息、集群信息和主机信息。这四层信息的含义如下:项目:一个完整的可对外服务的整体系统,例如淘宝网、腾讯qq、支付宝等。相应地,项目信息包括配置管理数据库系统对外服务的整体系统信息。应用:项目的组成部分。相应地,应用信息包括应用的类型信息。一个项目由一个或者多个应用(可为应用程序或其他)组成,一般互联网项目都可以分解成接入层、逻辑层和数据层,具体例子为前端站点服务、逻辑后台服务和数据库,其也包含各种中间件技术,如消息队列、数据缓存等。集群:项目的运行环境。相应地,集群信息包括项目的运行环境信息。一个成熟的互联网项目,一般都有多个运行环境,如生产环境、测试环境、预发布环境等。主机:一个独立的机器资源,可以是物理机、阿里云虚拟机、私有云的容器等等。相应地,主机信息包括目运行所需的机器资源信息。在进行面向对象编程的时候,首先要确定这些核心对象的核心属性,上述各个对象的核心属性如下:a、项目:项目id、项目名称、项目代号、备注(可选,非必要)和包含的应用列表;b、应用:应用id、应用名称、应用代号、备注(可选,非必要)、所属项目和包含的集群列表;c、集群:集群id、集群名称、集群代号、备注(可选,非必要)、所属应用和包含的主机列表;d、主机:主机id、主机名称和所属的集群;确定好上面的属性信息字段后就可以进行下一步的面向对象编程开发。与图1的方法相对应,本发明一种构建互联网运维资源关联体系的系统,包括:项目信息确定模块,用于根据业务类型确定配置管理数据库系统的项目信息;应用信息获取模块,用于根据所述确定的项目信息得到项目所包含的应用信息;集群信息确定模块,用于根据所述得到的应用信息确定每个应用所包含的集群信息;主机信息获取模块,用于根据所述确定的集群信息得到每个集群所包含的主机信息;其中,项目信息包括配置管理数据库系统对外服务的整体系统信息,应用信息包括应用的类型信息,集群信息包括项目的运行场景信息,主机信息包括项目运行所需的机器资源信息,所述配置管理数据库系统的应用可扩展。与图1的方法相对应,本发明一种构建互联网运维资源关联体系的系统,包括:存储器,用于存放程序;处理器,用于加载所述程序以执行如本发明所述的构建互联网运维资源关联体系的方法。下面结合说明书附图和具体实施例对本发明作进一步解释和说明。针对现有配置管理数据库系统是以服务器为主进行cmdb关系模型的构建的问题,本实施例提出了一种新的构建互联网运维资源关联体系的方案,该方案的主要包括如下内容:a.配置管理数据库系统中包括下列对象:项目、应用、集群、部署信息和主机;b.项目包括下列属性信息:代号、名称、描述、类别标签、负责人和上线时间;c.应用包括下列属性信息:代号、名称、描述、域名和端口;d.应用通过聚合关联其所附属于的一个项目;e.应用组合关联其所包括的所有集群;f.应用组合关联其所有集群下的部署信息;g.应用可扩展其他属性信息(域名,端口,日志文件,配置属性,工作目录等);h.软件程序通过应用遍历及其相关联的聚合组合关系,获取其项目、集群、部署信息及所部署的主机信息,并能够将这些信息通过应用程序接口api的方式返回给客户端;i.应用与其集群和部署信息具有相同的生命周期。在下线一个项目时,只需要对所选的应用执行下线操作,配置管理数据库系统自动删除其集群与部署信息。j.应用可通过鼠标勾选一组设备的方式,自动将其的部署信息更新成指定的集群和设备列表。k.软件程序可通过遍历应用及其相关联的聚合组合关系,获取其项目、集群、部署信息及所部署的主机信息,并能够将这些信息返回给客户端,如图4所示。l.集群包括下列属性信息:代号和名称;m.部署信息包括下列属性信息:应用部署信息、集群部署信息和主机部署信息;n.部署信息聚合关联其应用所部署的具体主机信息;o.主机信息包括下列属性信息:uuid、主机名、所属项目、公网ip、内网ip、cpu、内存、磁盘和主机状态;p.软件程序通过主机反向遍历其部署信息,并获得主机所用于的应用及项目对象信息,并能够将这些信息通过应用程序接口api的方式返回给客户端,如图5所示。基于上述构建的互联网运维资源关联体系,本实施例访问应用的流程图如图6所示,具体包括以下步骤:s11、获取应用访问请求;s12、通过应用访问请求中的项目id查询应用所属的项目;s13、通过应用访问请求中的应用id查询应用所包含的集群列表;s14、判断是否有部署信息,若是,则执行步骤s15,反之,则结束应用访问流程;s15、通过应用访问请求中的应用id查询所有部署(包括应用的部署、集群的部署和主机的部署);s16、通过部署信息中的uuid获取对应的机器(即主机)。优选地,步骤s15中基于部署信息,可直接通过应用id查询主机的部署,与先通过应用id查询集群的部署再通过集群的部署查询主机的部署方式相比,进一步提升了查询的速度。而主机访问的流程图则如图7所示,具体包括以下步骤:s21、获取主机访问请求;s22、判断是否有部署信息,若是,则执行步骤s23,反之,则结束主机访问流程;s23、通过部署信息中的uuid查询所有部署(包括应用的部署、集群的部署和主机的部署);s24、通过部署信息获取所部署应用;s25、通过部署信息获取应用集群信息;s26、通过部署信息获取项目信息。优选地,步骤s24中基于部署信息,可直接通过部署信息查询应用的部署,与先通过部署信息查询集群的部署再通过集群的部署查询应用的部署方式相比,进一步提升了反向遍历或查询的速度。综上所述,本发明一种构建互联网运维资源关联体系的方法及系统,克服了传统从服务器作为原点出发的构建理念弊端,采用以业务应用作为原点的构建方法,利用业务应用作为原点来进行配置管理数据库系统组建,可以适配于大部分企业的企业模式,避免重复分析自家业务进行重复的设计方案,节省了开发人员的人力成本和时间成本。由于应用是可扩展的,该设计模式可扩展性极高,可以从容应对后续业务模式的变更,而其他现有模式都比较难适应业务变更。另外,本方案逻辑清晰、容易上手,使得运维人员对于配置管理数据库系统的理解可以更加深刻。采用本发明构建的面向业务级的配置管理系统,可以对完整的业务生命周期进行管理,也可以根据业务发展定制自己所需要的模型对象。在各种业务场景下都能达到最优的资源管理能力,运维团队通过该系统也拥有了全面的元数据管理能力。以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1