CN113918175A - 应用容器化离线安装部署系统、方法、终端和存储介质 - Google Patents
应用容器化离线安装部署系统、方法、终端和存储介质 Download PDFInfo
- Publication number
- CN113918175A CN113918175A CN202010647713.2A CN202010647713A CN113918175A CN 113918175 A CN113918175 A CN 113918175A CN 202010647713 A CN202010647713 A CN 202010647713A CN 113918175 A CN113918175 A CN 113918175A
- Authority
- CN
- China
- Prior art keywords
- deployment
- application
- module
- offline
- log
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000009434 installation Methods 0.000 title claims abstract description 36
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 238000010276 construction Methods 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012423 maintenance Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 abstract description 9
- 238000012550 audit Methods 0.000 abstract description 8
- 238000011084 recovery Methods 0.000 abstract description 8
- 238000012545 processing Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000012384 transportation and delivery Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 241000238413 Octopus Species 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008602 contraction Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 241000894007 species Species 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供应用容器化离线安装部署系统、方法、终端和存储介质,包括:离线化部署包构建模块,用于触发构建部署包;一键离线部署模块,用于将构建的部署包上传后执行一键部署;灰度发布模块,用于对部署包进行灰度发布;自动水平伸缩模块,用于对部署平台中的容器数量进行扩/缩容;监控告警模块,用于监控集群及各应用服务的运行状况;日志模块,用于收集与查询各应用服务产生的日志,并记录和追溯用户操作。本发明在应用持续部署过程需要提供给实施人员足够的自动化运维保障,对Kubernetes平台提供原生功能进行再度抽象,实现一站式的离线化容器云平台,提供了简易的操作界面和向导式操作。同时提供了详细的操作审计,便于人为误操作恢复和故障追溯。
Description
技术领域
本申请涉及离线安装部署技术领域,特别是涉及应用容器化离线安装部署系统、方法、终端和存储介质。
背景技术
当前不同的医院规模不一样,导致在信息化投入的力度上也不一样,所以现场的IT资产也不一样。有的医院盈利不错,信息化水平会相对高一些,有独立的机房,有Iaas相关的基础设施,有较为完善的IT设备及系统,有的医院盈利不行,信息化水平就低一些,可能就只有几台低配的服务器来支撑整个医院的IT系统。这样一来,会出现规模大的医院,IT资源得不到充足的利用,造成浪费,规模小些的医院,IT资源时常处于紧张状态。
另外,医院一般基于安全考虑,机房不会直接和互联网通信,因此主流的在线安装部署的形式不适合现场的情况。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供应用容器化离线安装部署系统、方法、终端和存储介质,用于解决上述背景技术中的问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种应用容器化离线安装部署系统,包括:离线化部署包构建模块,用于触发构建部署包;一键离线部署模块,用于将构建的部署包上传后执行一键部署;灰度发布模块,用于对部署包进行灰度发布;自动水平伸缩模块,用于对部署平台中的容器数量进行扩/缩容;监控告警模块,用于监控集群及各应用服务的运行状况;日志模块,用于收集与查询各应用服务产生的日志,并记录和追溯用户操作。
于本申请的第一方面的一些实施例中,所述离线化部署包构建模块基于Kubernetes平台来自动触发构建部署包。
于本申请的第一方面的一些实施例中,所述自动水平伸缩模块基于Kubernetes平台的HPA控制器对容器数量进行扩容和/或缩容。
于本申请的第一方面的一些实施例中,所述监控告警模块所监控的集群及各应用服务的运行状况包括:cpu利用率、内存利用率、磁盘吞吐量中的任一项指标或多种指标的组合。
于本申请的第一方面的一些实施例中,所述日志模块包括:日志收集模块,用于利用每个应用服务的容器中挂载的代理来收集各应用服务所产生的日志;日志查询模块,用于查询sql日志;日志审计模块,用于记录和追溯用户操作。
于本申请的第一方面的一些实施例中,所述日志收集模块的收集方式包括:原生方式、DaemonSet方式或者Sidecar方式。
为实现上述目的及其他相关目的,本申请的第二方面提供一种应用容器化离线安装部署方法,包括:触发构建部署包;将构建的部署包上传后执行一键部署;对部署包进行灰度发布;对部署平台中的容器数量进行扩/缩容;监控集群及各应用服务的运行状况;收集与查询各应用服务产生的日志,并记录和追溯用户操作。
为实现上述目的及其他相关目的,本申请的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述应用容器化离线安装部署方法。
为实现上述目的及其他相关目的,本申请的第四方面提供一种电子终端,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行所述应用容器化离线安装部署方法。
如上所述,本申请的应用容器化离线安装部署系统、方法、终端和存储介质,具有以下有益效果:本发明在应用持续部署过程需要提供给实施人员足够的自动化运维保障,对Kubernetes平台提供原生功能进行再度抽象,实现一站式的离线化容器云平台,提供了简易的操作界面和向导式操作,减轻实施人员日常工作的复杂度,提高产品交付效率、交付质量。同时提供了详细的操作审计,便于人为误操作恢复和故障追溯。
附图说明
图1显示为本申请一实施例中应用容器化离线安装部署系统的结构示意图。
图2显示为本申请一实施例中示意图。
图3显示为本申请一实施例中应用容器化离线安装部署方法的流程示意图。
图4显示为本申请一实施例中电子终端的结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本申请的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、“下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”、“固持”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
当前,医院之间的信息化水平差异较大,导致IT资源的利用不够充分和合理;而且为了确保信息安全,医院内机房不与互联网直接通信,故而主流的在线安装部署方案无法适用于医院现场。
有鉴于此,本发明提出一种对实施人员友好的全离线环境一键部署和升级服务的解决方案,不仅实现离线化的部署升级,还充分地整合基于Kubernetes平台的自动伸缩、灰度发布、日志收集与查询、监控告警等功能。本发明作为devops最后一环节,在应用持续部署过程需要提供给实施人员足够的自动化运维保障,对Kubernetes提供原生功能进行再度抽象,实现一站式的离线化容器云平台,提供了简易的操作界面和向导式操作,减轻实施人员日常工作的复杂度,提高产品交付效率、交付质量。同时提供了详细的操作审计,便于人为误操作恢复和故障追溯。
为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
实施例一:
如图1所示,展示了本发明一实施例中应用容器化离线安装部署系统的结构示意图。本实施例的应用容器化离线安装部署系统100包括离线化部署包构建模块101、一键离线部署模块102、灰度发布模块103、自动水平伸缩模块104、监控告警模块105、日志收集模块106、日志审计模块107、日志查询模块108。
在一些示例中,离线化部署包构建模块101用于触发构建部署包,并且也支持代码本地构建直通部署平台升级服务。
具体来说,离线化部署包构建模块101基于Kubernetes平台来自动触发构建部署包。其中,Kubernetes平台是一个开源的用于管理云平台中多个主机上的容器化的平台,其目标是让部署容器化的应用简单并且高效,Kubernetes平台提供了应用部署、规划、更新和维护等机制。
值得一提的是,传统的应用部署方式是通过插件或脚本来安装应用,这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,不利于应用的升级更新和回滚等操作;而本发明中基于Kubernetes平台来自动触发构建部署包,这种方式通过部署容器实现,每个容器之间互相隔离,每个容器都有自己的文件系统,容器之间不会相互影响,能区分计算资源。
在一些示例中,一键离线部署模块102用于将构建出的部署包上传至现场的部署平台,并执行一键自动化部署,从而实现操作过程自动化且无需人工干预的一键部署。具体可利用自动化部署工具来实现一键部署,例如Jenkins工具、ElectricFlow工具、OctopusDeploy工具、DeployBot工具或者现有技术中任何可以实现自动化一键部署的工具都可应用于本实施例的技术方案中。
需说明的是,传统的部署方式都是人为进行的,过程相当繁琐,运维人员手动传输数据,手工登陆服务器更新代码,开发人员手工编译打包然后通过内网传输给运维人员,运维人员再上传至目标服务器,接着执行重命名原包、拷贝新包到目标目录,再执行服务应用重启命令来完成整个部署流程。尤其是在项目多且部署频繁的情况下,以上操作一遍遍人为重复执行,非常耗时耗力。而在本发明中采用的一键自动部署免去了上述所有麻烦,高效又简单。
在一些示例中,灰度发布模块103采用的是在黑与白之间能够平滑过渡的一种发布方式,其上可以进行A/B testing,让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如若用户对特性B没有反对意见,那么逐步扩大范围,把所有用户都迁移至特性B,因此灰度发布模块103可以保证整体体系的稳定,在初始灰度的时候就可以发现和调整问题。
通常而言,当灰度发布开始后,先启动一个新版本应用,但是并不直接将流量切换过来,而是测试人员对新版本进行线上测试;如若新版本没有问题,那么可以将少量的用户流量导入到这个新版本上,然后再对新版本做运行状态观察,收集各种运行数据;当确认新版本运行优良后再逐步将更多的流量导入到新版本上,在此期间,还可以不断地调整新旧两个版本的运行的服务器副本数量,以使得新版本能够承受越来越大的流量压力,直到全部流量都切换到新版本后关闭老版本服务,完成灰度发布。
优选的,由于每次上传的应用部署包都有自己的版本号,在每次升级应用时,集成了istio,通过定制路由规则将特定流量导入新版本中,同时通过渐进受控地导入生产流量,可以最小化升级中出现的故障对用户的影响。并且在同时存在新老版本服务时,还可根据应用压力对不同版本的服务进行独立的缩扩容,非常灵活。
自动水平伸缩模块104基于Kubernetes平台的HPA控制器对容器(pod)数量进行扩容和/或缩容,即充分利用Kubernetes平台的HPA特性,为应用指定HPA规则,从而使应用自动完成扩缩容,减少人工运维成本,提高IT资源利用率。
应理解的是,本实施例中涉及的pod是指运行于Kubernetes平台的容器,代表了Kubernetes平台中的基本构建模块。Kubernetes平台的HPA(Horizontal PodAutoscaling)是Kubernetes中实现pod水平自动伸缩的功能;在Kubernetes中使用pod对外提供服务。然而,pod有时会因为不明原因挂掉而导致服务不可用,有时会在高负荷的情况下不能支撑服务,但若采用人工监控pod则会产生巨大的工作量,因此本实施例中的自动水平伸缩模块104就用来灵活处理。自动水平伸缩模块104主要利用Kubernetes中的HPA资源来实现基于CPU使用率的pod自动伸缩功能,HPA基于Master Node上的kube-controller-manager服务启动参数–horizontal-pod-autoscaler-sync-period定义的时长(默认为30秒),周期性的检测Pod的CPU使用率,如若需要设置–horizontal-pod-autoscaler-sync-period可以在Master Node上进行修改。
监控告警模块105用于监控集群及各应用服务的运行状况,并通过预设的告警策略和通知规则等将告警信息推送给相关用户。具体来说,可通过运维监控系统(如Prometheus)全方位监控集群及各应用服务的运行状况,包括但不限于如cpu利用率,内存利用率,磁盘吞吐量等多项指标。然后通过预先设置的告警策略、通知规则等,通过统一的推送平台,最终将告警信息推送给用户。
日志收集模块106用于收集与查询各应用服务产生的日志。具体来说,每个应用服务的容器(pod)里挂载了一个代理(agent)来收集各应用服务所产生的日志,统一输出到日志平台。在一些示例中,日志收集模块106的日志收集方式包括原生方式、DaemonSet方式或者Sidecar方式,以适应于具有自动收缩特性的Kubernetes平台。
其中,原生方式是指直接使用kubectl logs来查看日志,或者通过docker engine的log driver把日志重定向到文件、syslog、fluentd等系统中;这种方式的优势在于操作简单而且资源占用率低。DaemonSet方式是指在Kubernetes平台的每个节点上都部署日志代理(agent),由日志代理(agent)采集所有容器的日志到服务端。Sidecar方式是指一个容器中运行一个sidecar的日志代理容器,用于采集该容器产生的日志;这种方式的优势在于能够获取日志的文件名、容器的ip地址等,并且配置性比较高,能够很好的进行一系列定制化的操作。
日志审计模块107是集群安全运营中重要的环节,能够帮助管理员处理以下问题,例如发生了什么,什么时候发生的,谁触发的,为什么发生,在那观察到的,它从哪触发的,或者它将产生什么后果等等,从而帮助管理人员记录和/或追溯不同用户的日常操作,便于人为误操作恢复和故障追溯。
日志查询模块108用于查询日志,例如可利用SQL Server事件查看器对类sql日志进行查询。需说明的是,本实施例涉及的日志包括但不限于如系统日志、安全日志以及应用程序日志。
为便于本领域技术人员理解,现结合图2来对本实施例中应用容器化离线安装部署系统的工作流程做进一步的解释说明。
在本实施例中,首先由研发人员提交代码变更至代码仓库后,使用钩子(webhook)触发离线包构建器来构建部署包,并将构建的部署包上传至应用容器化离线安装部署系统,实现一键部署。在应用容器化离线安装部署系统中进行灰度发布,由于每次上传的应用部署包都有自己的版本号,在每次升级应用时,集成了istio,通过定制路由规则将特定流量导入新版本中,同时通过渐进受控地导入生产流量,可以最小化升级中出现的故障对用户的影响。并且在同时存在新老版本服务时,还可根据应用压力对不同版本的服务进行独立的缩扩容,非常灵活。在应用容器化离线安装部署系统中基于Kubernetes平台的HPA控制器对pod数量进行扩容和/或缩容,即充分利用Kubernetes平台的HPA特性,为应用指定HPA规则,从而使应用自动完成扩缩容,减少人工运维成本,提高IT资源利用率。在应用容器化离线安装部署系统中监控集群及各应用服务的运行状况,并通过预设的告警策略和通知规则等将告警信息推送给相关用户。在应用容器化离线安装部署系统中收集与查询各应用服务产生的日志,并对日志进行安全审计,提供详细的操作审计,便于人为误操作恢复和故障追溯。
应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,灰度发布模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上灰度发布模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
值得一提的是,本实施例中的应用容器化离线安装部署系统是devops的靠后环节,devops生命周期的主要流程包括开发、测试、集成、部署、监测。而本发明的系统在应用持续部署过程需要提供给实施人员足够的自动化运维保障,对Kubernetes平台提供原生功能进行再度抽象,实现一站式的离线化容器云平台,提供了简易的操作界面和向导式操作,减轻实施人员日常工作的复杂度,提高产品交付效率、交付质量。同时提供了详细的操作审计,便于人为误操作恢复和故障追溯。
实施例二:
如图3所示,展示了本发明一实施例中应用容器化离线安装部署方法的流程示意图。本实施例的应用容器化离线安装部署方法主要包括如下各个步骤。
步骤S301:触发构建部署包。
在一些示例中,基于Kubernetes平台来自动触发构建部署包。其中,Kubernetes平台是一个开源的用于管理云平台中多个主机上的容器化的平台,其目标是让部署容器化的应用简单并且高效,Kubernetes平台提供了应用部署、规划、更新和维护等机制。
步骤S302:将构建的部署包上传后执行一键部署。
在一些示例中,利用自动化部署工具来实现一键部署,例如Jenkins工具、ElectricFlow工具、Octopus Deploy工具、DeployBot工具或者现有技术中任何可以实现自动化一键部署的工具都可应用于本实施例的技术方案中。
步骤S303:对部署包进行灰度发布。
在一些示例中,是在黑与白之间能够平滑过渡的一种发布方式,其上可以进行A/Btesting,让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如若用户对特性B没有反对意见,那么逐步扩大范围,把所有用户都迁移至特性B,因此灰度发布模块103可以保证整体体系的稳定,在初始灰度的时候就可以发现和调整问题。
通常而言,当灰度发布开始后,先启动一个新版本应用,但是并不直接将流量切换过来,而是测试人员对新版本进行线上测试;如若新版本没有问题,那么可以将少量的用户流量导入到这个新版本上,然后再对新版本做运行状态观察,收集各种运行数据;当确认新版本运行优良后再逐步将更多的流量导入到新版本上,在此期间,还可以不断地调整新旧两个版本的运行的服务器副本数量,以使得新版本能够承受越来越大的流量压力,直到全部流量都切换到新版本后关闭老版本服务,完成灰度发布。
优选的,由于每次上传的应用部署包都有自己的版本号,在每次升级应用时,集成了istio,通过定制路由规则将特定流量导入新版本中,同时通过渐进受控地导入生产流量,可以最小化升级中出现的故障对用户的影响。并且在同时存在新老版本服务时,还可根据应用压力对不同版本的服务进行独立的缩扩容,非常灵活。
步骤S304:对部署平台中的容器数量进行扩/缩容。
在一些示例中,基于Kubernetes平台的HPA控制器对容器(pod)数量进行扩容和/或缩容,即充分利用Kubernetes平台的HPA特性,为应用指定HPA规则,从而使应用自动完成扩缩容,减少人工运维成本,提高IT资源利用率。
步骤S305:监控集群及各应用服务的运行状况。
在一些示例中,通过预设的告警策略和通知规则等将告警信息推送给相关用户。具体来说,可通过运维监控系统(如Prometheus)全方位监控集群及各应用服务的运行状况,包括但不限于如cpu利用率,内存利用率,磁盘吞吐量等多项指标。然后通过预先设置的告警策略、通知规则等,通过统一的推送平台,最终将告警信息推送给用户。
步骤S306:收集与查询各应用服务产生的日志,并记录和追溯用户操。
在一些示例中,每个应用服务的容器(pod)里挂载了一个代理(agent)来收集各应用服务所产生的日志,统一输出到日志平台。在一些示例中,日志收集模块106的日志收集方式包括原生方式、DaemonSet方式或者Sidecar方式,以适应于具有自动收缩特性的Kubernetes平台。
其中,原生方式是指直接使用kubectl logs来查看日志,或者通过docker engine的log driver把日志重定向到文件、syslog、fluentd等系统中;这种方式的优势在于操作简单而且资源占用率低。DaemonSet方式是指在Kubernetes平台的每个节点上都部署日志代理(agent),由日志代理(agent)采集所有容器的日志到服务端。Sidecar方式是指一个容器中运行一个sidecar的日志代理容器,用于采集该容器产生的日志;这种方式的优势在于能够获取日志的文件名、容器的ip地址等,并且配置性比较高,能够很好的进行一系列定制化的操作。
在一些示例中,日志审计能够帮助管理员处理以下问题,例如发生了什么,什么时候发生的,谁触发的,为什么发生,在那观察到的,它从哪触发的,或者它将产生什么后果等等,从而帮助管理人员记录和/或追溯不同用户的日常操作,便于人为误操作恢复和故障追溯。
在一些示例中,可利用SQL Server事件查看器对类sql日志进行查询。需说明的是,本实施例涉及的日志包括但不限于如系统日志、安全日志以及应用程序日志。
需说明的是,本实施例中应用容器化离线安装部署方法与实施例一种应用容器化离线安装部署系统的实施方式类似,故而不再赘述。
另应理解的是,本实施例中应用容器化离线安装部署方法可应用于ARM(AdvancedRISC Machines)、FPGA(Field Programmable Gate Array)、SoC(System on Chip)、DSP(Digital Signal Processing)、或者MCU(Micorcontroller Unit)等控制器;也可应用于台式电脑、笔记本电脑、平板电脑、智能手机、智能电视、个人数字助理(Personal DigitalAssistant,简称PDA)等个人电脑;还可应用于服务器,所述服务器可以根据功能、负载等多种因素布置在一个或多个实体服务器上,也可以由分布的或集中的服务器集群构成。
实施例三:
如图4所示,展示了本发明一实施例中电子终端的结构示意图。本实例提供的电子终端,包括:处理器41、存储器42、通信器43;存储器42通过系统总线与处理器41和通信器43连接并完成相互间的通信,存储器42用于存储计算机程序,通信器43用于和其他设备进行通信,处理器41用于运行计算机程序,使电子终端执行如上应用容器化离线安装部署方法的各个步骤。
上述提到的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
实施例四:
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述应用容器化离线安装部署方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本申请提供应用容器化离线安装部署系统、方法、终端和存储介质,本发明在应用持续部署过程需要提供给实施人员足够的自动化运维保障,对Kubernetes平台提供原生功能进行再度抽象,实现一站式的离线化容器云平台,提供了简易的操作界面和向导式操作,减轻实施人员日常工作的复杂度,提高产品交付效率、交付质量。同时提供了详细的操作审计,便于人为误操作恢复和故障追溯。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (9)
1.一种应用容器化离线安装部署系统,其特征在于,包括:
离线化部署包构建模块,用于触发构建部署包;
一键离线部署模块,用于将构建的部署包上传后执行一键部署;
灰度发布模块,用于对部署包进行灰度发布;
自动水平伸缩模块,用于对部署平台中的容器数量进行扩/缩容;
监控告警模块,用于监控集群及各应用服务的运行状况;
日志模块,用于收集与查询各应用服务产生的日志,并记录和追溯用户操作。
2.根据权利要求1所述的应用容器化离线安装部署系统,其特征在于,所述离线化部署包构建模块基于Kubernetes平台来自动触发构建部署包。
3.根据权利要求1所述的应用容器化离线安装部署系统,其特征在于,所述自动水平伸缩模块基于Kubernetes平台的HPA控制器对容器数量进行扩容和/或缩容。
4.根据权利要求1所述的应用容器化离线安装部署系统,其特征在于,所述监控告警模块所监控的集群及各应用服务的运行状况包括:cpu利用率、内存利用率、磁盘吞吐量中的任一项指标或多种指标的组合。
5.根据权利要求1所述的应用容器化离线安装部署系统,其特征在于,所述日志模块包括:
日志收集模块,用于利用每个应用服务的容器中挂载的代理来收集各应用服务所产生的日志;
日志查询模块,用于查询sql日志;
日志审计模块,用于记录和追溯用户操作。
6.根据权利要求5所述的应用容器化离线安装部署系统,其特征在于,所述日志收集模块的收集方式包括:原生方式、DaemonSet方式或者Sidecar方式。
7.一种应用容器化离线安装部署方法,其特征在于,包括:
触发构建部署包;
将构建的部署包上传后执行一键部署;
对部署包进行灰度发布;
对部署平台中的容器数量进行扩/缩容;
监控集群及各应用服务的运行状况;
收集与查询各应用服务产生的日志,并记录和追溯用户操作。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7所述应用容器化离线安装部署方法。
9.一种电子终端,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行如权利要求7所述应用容器化离线安装部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010647713.2A CN113918175A (zh) | 2020-07-07 | 2020-07-07 | 应用容器化离线安装部署系统、方法、终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010647713.2A CN113918175A (zh) | 2020-07-07 | 2020-07-07 | 应用容器化离线安装部署系统、方法、终端和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918175A true CN113918175A (zh) | 2022-01-11 |
Family
ID=80782974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010647713.2A Pending CN113918175A (zh) | 2020-07-07 | 2020-07-07 | 应用容器化离线安装部署系统、方法、终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918175A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354076A (zh) * | 2015-10-23 | 2016-02-24 | 深圳前海达闼云端智能科技有限公司 | 一种应用部署方法及装置 |
CN110083369A (zh) * | 2019-04-25 | 2019-08-02 | 中电科嘉兴新型智慧城市科技发展有限公司 | 一种基于容器方案的持续集成和持续交付方法 |
US20190303187A1 (en) * | 2018-03-29 | 2019-10-03 | The United States Of America As Represented By The Secretary Of The Navy | Methods, devices, and systems for distributing software to and deploying software in a target environment |
CN111209011A (zh) * | 2019-12-31 | 2020-05-29 | 烽火通信科技股份有限公司 | 一种跨平台的容器云自动化部署系统 |
-
2020
- 2020-07-07 CN CN202010647713.2A patent/CN113918175A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354076A (zh) * | 2015-10-23 | 2016-02-24 | 深圳前海达闼云端智能科技有限公司 | 一种应用部署方法及装置 |
US20190303187A1 (en) * | 2018-03-29 | 2019-10-03 | The United States Of America As Represented By The Secretary Of The Navy | Methods, devices, and systems for distributing software to and deploying software in a target environment |
CN110083369A (zh) * | 2019-04-25 | 2019-08-02 | 中电科嘉兴新型智慧城市科技发展有限公司 | 一种基于容器方案的持续集成和持续交付方法 |
CN111209011A (zh) * | 2019-12-31 | 2020-05-29 | 烽火通信科技股份有限公司 | 一种跨平台的容器云自动化部署系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222036B (zh) | 用于自动数据库迁移的方法和系统 | |
CN105706469B (zh) | 管理机器对机器设备 | |
JP5535484B2 (ja) | 自動ソフトウェアテストフレームワーク | |
JP5148607B2 (ja) | データベース管理における標準操作手順の自動化 | |
CN100375056C (zh) | 计算机系统硬件设备自动检测的方法 | |
US9336288B2 (en) | Workflow controller compatibility | |
US7698391B2 (en) | Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate | |
US20120310906A1 (en) | Building Information Tracking System and Method of Use | |
CN108243012B (zh) | 在线计费系统ocs中计费应用处理系统、方法及装置 | |
US20080282321A1 (en) | System and method of managing data protection resources | |
US9411969B2 (en) | System and method of assessing data protection status of data protection resources | |
CN113434158B (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
CN110019138B (zh) | 一种基于Zabbix的传输表空间自动迁移方法和系统 | |
CN107660289A (zh) | 自动网络控制 | |
CN112600891A (zh) | 一种基于信息物理融合的边云协同系统及工作方法 | |
CN111324599B (zh) | 一种区块链实验系统及管理方法 | |
US10466686B2 (en) | System and method for automatic configuration of a data collection system and schedule for control system monitoring | |
CN110063042A (zh) | 一种数据库故障的响应方法及其终端 | |
CN117389830A (zh) | 集群日志采集方法、装置、计算机设备及存储介质 | |
CN113190286B (zh) | 动态远程加载功能插件的mes系统、加载方法、终端及介质 | |
Feminella et al. | Piloteur: a lightweight platform for pilot studies of smart homes | |
CN109814911A (zh) | 用于管理脚本程序的方法、装置、计算机设备及存储介质 | |
CN113918175A (zh) | 应用容器化离线安装部署系统、方法、终端和存储介质 | |
US11836125B1 (en) | Scalable database dependency monitoring and visualization system | |
EP3780551A1 (en) | Method and system for managing assets in a cloud computing environment |
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 |