一种云端Web应用自动化部署系统的制作方法【专利摘要】本发明提出了一种云端Web应用自动化部署系统,包括:用户控制台、代码库模块、配置服务器和监控模块,用户控制台用于接收用户输入的配置规则;代码库模块用于接收用户提交的代码信息,并将代码信息自动提交到云计算系统;配置服务器用于采用描述性语言对配置规则中的资源状态进行描述,并将描述后的配置规则推送至云计算系统的多个云主机;云计算系统根据描述后的配置规则和代码信息运行Web应用;监控模块监控云主机中的Web应用是否正常,如果Web应用发生异常,则分析Web应用的异常状态并对异常进行修复。本发明缩短了部署周期,避免了人为错误,降低人工成本,提高了配置准确度。【专利说明】-种云端Web应用自动化部署系统【
技术领域:
】[0001]本发明涉及互联网【
技术领域:
】,特别涉及一种云端Web应用自动化部署系统。【
背景技术:
】[0002]云主机是云计算在基础设施应用上的重要组成部分,源自云计算平台。云计算平台整合了互联网应用三大核心要素:计算、存储、网络,可以面向用户提供公用化的互联网基础设施服务。[0003]云主机在运行之前需要进行配置部署,现有部署过程中涉及到的自动化部署工具、自动化监控工具、代码自动化部署工具与公有云、私有云没有完全联动,需要人工手动部署,且部署周期长、配置复杂、难度高,对人员要求较高,容易出现错误,导致正常的部署延迟,并且难以保证应用配置和代码的最终一致性,集群配置人工成本较高。【
发明内容】[0004]本发明的目的旨在至少解决所述技术缺陷之一。[0005]为此,本发明的目的在于提出一种云端Web应用自动化部署系统,该系统缩短了部署周期,降低人工成本,提高了配置准确度。[0006]为了实现上述目的,本发明的实施例提供的云端Web应用自动化部署系统,包括:用户控制台、代码库模块、配置服务器和监控模块,所述用户控制台用于接收用户输入的配置规则,其中,所述配置规则用于配置云计算系统中的多个云主机的运行规则;所述代码库模块连接至所述云计算系统,用于接收用户提交的代码信息,并将所述代码信息自动提交到所述云计算系统;所述配置服务器连接至所述用户控制台和所述云计算系统,用于接收来自所述用户控制台的配置规则,并分析所述配置规则,采用描述性语言对所述配置规则中的资源状态进行描述,并将描述后的配置规则推送至所述云计算系统的多个云主机;所述云计算系统的每个云主机根据所述描述后的配置规则和代码信息运行Web应用;所述监控模块连接至所述云计算系统和所述配置服务器,用于监控所述云计算系统中的云主机的Web应用是否正常,如果所述Web应用发生异常,则分析Web应用的异常状态并对所述异常进行修复。[0007]在本发明的一个实施例中,所述配置规则包括:配置虚拟主机、网站发布、安装软件名称和服务端口号。[0008]在本发明的另一个实施例中,所述代码库模块采用钩子函数将所述代码信息自动提交到所述云计算系统。[0009]在本发明的再一个实施例中,所述配置服务器还用于定期检查所述云主机当前运行的规则与所述配置规则是否一致,如果云主机当前运行的规则不符合对应的配置规则,则重新向所述云主机推送配置规则。[0010]在本发明的一个实施例中,所述Web应用异常包括应用程序异常和视图层JSP页面异常。[0011]在本发明的另一个实施例中,所述监控模块分析Web应用的异常状态并对所述异常进行修复,包括:所述监控模块在监控到所述云主机被攻击时,自动删除受到攻击的云主机,创建新的云主机,并由所述配置服务器向新的云主机推送配置规则。[0012]在本发明的又一个实施例中,所述监控模块分析Web应用的异常状态并对所述异常进行修复,包括:所述监控模块检测云主机的压力值,当检测到当前云主机的压力值超过预设压力时,创建新的云主机,将所述当前云主机的部分资源转移到所述新的云主机,并由所述配置服务器向新的云主机推送配置规则。[0013]在本发明的再一个实施例中,所述监控模块分析所述云主机的内存、CPU利用率和硬盘利用率,获取所述云主机的压力值。[0014]在本发明的另一个实施例中,所述云主机为基础设施即服务IaaS云主机。[0015]根据本发明实施例的云端Web应用自动化部署系统,可应用于整个web应用生命周期,可使web应用自动部署和自动更新,不需要人工手动部署,从而简化了部署过程,缩短了部署周期,避免了人为错误,降低人工成本,提高了配置准确度。并且,本发明可以保证应用配置和代码的最终一致性,保证客户端与服务端使用SSL保证部署中代码和配置的安全。[0016]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。【专利附图】【附图说明】[0017]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:[0018]图1为根据本发明实施例的云端Web应用自动化部署系统的示意图;[0019]图2为根据本发明实施例的云端Web应用自动化部署系统修复异常的示意图。【具体实施方式】[0020]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。[0021]如图1所示,本发明实施例的云端Web应用自动化部署系统,包括:用户控制台1、代码库模块2、配置服务器3和监控模块4。[0022]具体地,用户控制台1接收用户输入的配置规则。其中,配置规则用于配置云计算系统5中的多个云主机的运行规则。其中,云计算系统5包括多个云主机,例如,云主机51、云主机52、…云主机5n。用户可以通过用户控制台1输入一个或多个云主机的配置规贝1J。其中,配置规则中指明该规则内容对应配置的云主机标示,即该配置规则适用于哪一些云主机。[0023]在本发明的实施例中,每个云主机中均设置有自动部署代理服务器和监控代理服务器。其中,自动部署代理服务器与代码库模块2和配置服务器3实现功能对接,以完成对云主机的配置部署。监控代理服务器与监控模块4实现功能对接,以完成对云主机的各项性能及Web应用的监控。其中,自动部署代理服务器和监控代理服务器可以采用SVN(subversion)或分布式版本控制系统GIT进行管理。[0024]例如,用户可以通过用户控制台在dashboard应用工具中填写配置规则,或者将预存的记录有配置规则的窗口拖曳至配置规则设置区。例如,通过Nginx配置虚拟主机和小型网站发布。[0025]在本发明的一个实施例中,配置规则包括配置虚拟主机、网站发布、安装软件名称和服务端口号。具体地,配置规则包括:Web应用需要的软件包,例如:mysql、php、Apache、nginx、nodejs等;Web应用端口(端口指定);Web应用运行的环境说明,例如:lamp环境、lanp环境等;系统的安全性设置,例如:iptables、selinux、端口关闭和系统某些账户的删除;Web应用的备份,例如:应用和数据库备份策略等。[0026]需要说明的是,配置规则的内容不限于上述举例,还可以为其他涉及云主机运行的规则,在此不再赘述。[0027]在本发明的一个示例中,云计算系统中的多个云主机可以为(InfrastructureasaService,基础设施即服务)云主机。云主机可以提供云计算和存储资源的能力。在云主机内设置有Web应用,例如:网页登录、访问等。[0028]代码库模块2连接至云计算系统5,接收用户提交的代码信息,并将上述代码信息自动提交到云计算系统5中的多个云主机。其中,代码信息为云主机中Web应用的运行代码。其中,代码库模块2可以采用钩子函数将代码信息自动提交到云计算系统5中的多个云主机。[0029]配置服务器3连接至用户控制台1和云计算系统5,接收来自用户控制台1的配置规则,并分析上述配置规则,采用描述性语言对上述配置规则中的资源状态进行描述,然后将描述后的配置规则推送至云计算系统5中对应的云主机。其中,资源例如为文件、软件包或进程等。即,配置服务器3将描述后的配置规则推送至该配置规则对应的云主机。例如,该配置规则指明适用于配置云主机51,则配置服务器3将描述后的配置规则推送至云主机51。[0030]此外,为了保证云端应用和配置的最终一致性,配置服务器3定期检查每个云主机当前运行的规则与对应的配置规则是否一致,如果云主机当前运行的规则不符合对应的配置规则,则配置服务器3重新向该云主机推送配置规则和应用以保持一致性。[0031]云主机接收来自配置服务器3的描述后的配置规则,以及来自代码库模块2的代码信息,根据上述配置规则和代码信息运行Web应用。参考图1,[0032]监控模块4连接至配置服务器3和云计算系统5,监控云计算系统5中每个云主机的Web应用是否正常。如果Web应用发生异常,则监控模块4分析Web应用的异常状态,并对该异常进行修复。需要说明的是,监控模块4进一步监控配置服务器3的工作状态,并在配置服务器3工作异常时,采取相应修复措施。[0033]在本发明的一个实施例中,云计算系统5的Web应用异常包括:[0034](1)应用程序异常;[0035](2)视图层JSP页面异常;[0036](3)云主机遭到异常攻击,Web应用瘫痪;[0037](4)Web应用需要更多的硬件资源,如内存,CPU,硬盘等,而云主机不能提供;[0038](5)云主机硬件资源出现问题,如内存损坏,硬盘读写较慢等;[0039](6)云主机网络带宽跑满,导致Web应用不能访问;[0040](7)云服务的物理机宕机,导致云服务重启,Web应用不能访问;[0041](8)Web应用程序出现问题,死循环,死锁等。[0042]在本发明的一个实施例中,如图2所示,监控模块4在监控到云主机51被攻击时,自动删除受到攻击的云主机51,创建新的云主机51',并由配置服务器3向新的云主机51'推送配置规则。[0043]在本发明的又一个实施例中,监控模块4检测云主机51的压力值,当检测到当前云主机51的服务器压力值超过预设压力时,即当前云主机51负载过大,内存被全部占用,CPU跑满而硬盘太小,则定义的脚本触发自动扩大内存,升级CPU,自动创建新的云主机51'。具体地,根据当前服务器压力大小值,比如内存、CPU利用率和硬盘利用率等,获取云主机51的压力值,在分析到前云主机51的压力值超过预设压力时,根据收集到的信息,自动扩大内存,硬盘等创建新的云主机51',将当前云主机51的部分资源转移到新的云主机51',并由配置服务器3向新的云主机51'推送配置规则和应用,新的云主机51'自动接管之前压力过大的云主机51,减轻云主机51的压力,使线上应用不会因为服务器的原因而瘫痪,从而更好的为企业和用户服务。[0044]根据本发明实施例的云端Web应用自动化部署系统,可应用于整个web应用生命周期,可使web应用自动部署和自动更新,不需要人工手动部署,从而简化了部署过程,缩短了部署周期,避免了人为错误,降低人工成本,提高了配置准确度。并且,本发明可以保证应用配置和代码的最终一致性,保证客户端与服务端使用SSL保证部署中代码和配置的安全。[0045]在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。[0046]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求极其等同限定。【权利要求】1.一种云端Web应用自动化部署系统,其特征在于,包括:用户控制台、代码库模块、配置服务器和监控模块,所述用户控制台用于接收用户输入的配置规则,其中,所述配置规则用于配置云计算系统中的多个云主机的运行规则;所述代码库模块连接至所述云计算系统,用于接收用户提交的代码信息,并将所述代码信息自动提交到所述云计算系统;所述配置服务器连接至所述用户控制台和所述云计算系统,用于接收来自所述用户控制台的配置规则,并分析所述配置规则,采用描述性语言对所述配置规则中的资源状态进行描述,并将描述后的配置规则推送至所述云计算系统的多个云主机;所述云计算系统的每个云主机根据所述描述后的配置规则和代码信息运行Web应用;所述监控模块连接至所述云计算系统和所述配置服务器,用于监控所述云计算系统中的云主机的Web应用是否正常,如果所述Web应用发生异常,则分析Web应用的异常状态并对所述异常进行修复。2.如权利要求1所述的云端Web应用自动化部署系统,其特征在于,所述配置规则包括:配置虚拟主机、网站发布、安装软件名称和服务端口号。3.如权利要求1所述的云端Web应用自动化部署系统,其特征在于,所述代码库模块采用钩子函数将所述代码信息自动提交到所述云计算系统。4.如权利要求1所述的云端Web应用自动化部署系统,其特征在于,所述配置服务器还用于定期检查所述云主机当前运行的规则与所述配置规则是否一致,如果云主机当前运行的规则不符合对应的配置规则,则重新向所述云主机推送配置规则。5.如权利要求1所述的云端Web应用自动化部署系统,其特征在于,所述Web应用异常包括应用程序异常和视图层JSP页面异常。6.如权利要求1所述的云端Web应用自动化部署系统,其特征在于,所述监控模块分析Web应用的异常状态并对所述异常进行修复,包括:所述监控模块在监控到所述云主机被攻击时,自动删除受到攻击的云主机,创建新的云主机,并由所述配置服务器向新的云主机推送配置规则。7.如权利要求1所述的云端Web应用自动化部署系统,其特征在于,所述监控模块分析Web应用的异常状态并对所述异常进行修复,包括:所述监控模块检测云主机的压力值,当检测到当前云主机的压力值超过预设压力时,创建新的云主机,将所述当前云主机的部分资源转移到所述新的云主机,并由所述配置服务器向新的云主机推送配置规则。8.如权利要求7所述的云端Web应用自动化部署系统,其特征在于,所述监控模块分析所述云主机的内存、CPU利用率和硬盘利用率,获取所述云主机的压力值。9.如权利要求1所述的云端Web应用自动化部署系统,其特征在于,所述云主机为基础设施即服务IaaS云主机。【文档编号】H04L12/24GK104158910SQ201410438201【公开日】2014年11月19日申请日期:2014年8月29日优先权日:2014年8月29日【发明者】宜博,张永锐,常艺博申请人:金石易诚(北京)科技有限公司