CN112181443B - 服务的自动化部署方法、装置及电子设备 - Google Patents

服务的自动化部署方法、装置及电子设备 Download PDF

Info

Publication number
CN112181443B
CN112181443B CN201910583984.3A CN201910583984A CN112181443B CN 112181443 B CN112181443 B CN 112181443B CN 201910583984 A CN201910583984 A CN 201910583984A CN 112181443 B CN112181443 B CN 112181443B
Authority
CN
China
Prior art keywords
health state
state value
deployment
service
strategy
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
Application number
CN201910583984.3A
Other languages
English (en)
Other versions
CN112181443A (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.)
China Mobile Zhejiang Innovation Research Institute Co ltd
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Zhejiang 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 China Mobile Communications Group Co Ltd, China Mobile Group Zhejiang Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201910583984.3A priority Critical patent/CN112181443B/zh
Publication of CN112181443A publication Critical patent/CN112181443A/zh
Application granted granted Critical
Publication of CN112181443B publication Critical patent/CN112181443B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例涉及通信技术领域,公开了一种服务的自动化部署方法、装置及电子设备。该方法包括:对服务进行部分部署;获取所述服务的性能和日志数据;根据所述服务的性能和日志数据,确定***的健康状态值;当所述***的健康状态值低于回退策略制定的策略阈值时,根据所述回退策略进行部署回退;否则,根据部署策略完成剩余服务的全量部署。通过上述方式,本发明实施例实现整个部署流程的自动化,提高***上线部署的效率和减少了人工介入环节,实现了***的快速迭代。部署出现问题时能够及时的回退,保障了业务正常运行。

Description

服务的自动化部署方法、装置及电子设备
技术领域
本发明实施例涉及通信技术领域,具体涉及一种服务的自动化部署方法、装置及电子设备。
背景技术
云计算技术经历了从最开始的硬件虚拟化、IaaS(Infrastructure as aService,基础设施即服务)、OpenStack、PaaS(Platform-as-a-Service,平台即服务),到容器技术的发展。容器实现了应用的分装,方便了应用在不同环境间的迁移,轻量级的特性又使它能够消耗更少的资源而带来更大的便利,越来越多的企业用户选择将应用的部署迁移到容器化平台。因此传统的部署方式开始转变为基于容器的部署,推动了CI/CD(Continuous Integration/Continuous Delivery,持续集成/连续部署)等技术的发展,基于CI/CD工具的自动化部署成为开发人员的应用部署首选。
现有的自动化部署***架构图如图1所示,应用程序通过平台实现代码下载与集成、编译打包、代码扫描、镜像制作以及自动化部署。常见部署方式有两种:
1)全量部署:将线上运行的代码全部更新,更新之后由测试人员进行验证,验证通过则部署成功,验证失败时可以采取全量回退和紧急修复再次部署的方式;
2)灰度发布:只更新线上部分实例代码,对这部分实例进行测试验证,验证通过则继续更新其它集群,验证失败时只回退更新过的实例代码。
现有技术中,应用的部署依赖人工操作,灵活性不足,部署和测试依赖手动操作,上线部署由运维人员手动完成,部署完成之后测试人员介入进行业务验证和测试,出现问题时需要开发人员对问题进行定位和分析。人工介入环节较多,无法实现快速的上线部署,不能及时定位和解决问题,在上线部署时会影响其业务的稳定性。
发明内容
鉴于上述问题,本发明实施例提供了一种服务的自动化部署方法、装置及电子设备,克服了上述问题或者至少部分地解决了上述问题。
根据本发明实施例的一个方面,提供了一种服务的自动化部署方法,所述方法包括:对服务进行部分部署;获取所述服务的性能和日志数据;根据所述服务的性能和日志数据,确定***的健康状态值;当所述***的健康状态值低于回退策略制定的策略阈值时,根据所述回退策略进行部署回退;否则,根据部署策略完成剩余服务的全量部署。
在一种可选的方式中,所述根据所述服务的性能和日志数据,确定***的健康状态值,进一步包括:根据所述服务的性能和日志数据分析业务请求响应成功率;当所述业务请求响应成功率低于预设阈值时,对所述***的健康状态进行综合判断,得到***的健康状态值。
在一种可选的方式中,所述对所述***的健康状态进行综合判断,得到***的健康状态值,进一步包括:获取所述***的性能数据;分析所述***的性能数据,得到***的数据库健康状态值、网络健康状态值和***负载健康状态值;根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值以及各自的权重,确定***的健康状态值。
在一种可选的方式中,所述***的性能数据包括***的CPU占用率、内存的使用量、磁盘的I/O性能和网络响应时间中的一种或多种。
在一种可选的方式中,所述根据所述服务的性能和日志数据,确定***的健康状态值,进一步包括:根据所述服务的性能和日志数据,确定初始的***的健康状态值;当所述初始的***的健康状态值低于回退策略制定的策略阈值时,获取当前***并发量以及***当前时间段的历史负载情况;若所述当前***并发量与所述***当前时间段的历史负载情况的偏差不超过预设值,则将所述***的健康状态值确定为一不低于所述回退策略制定的策略阈值的值。
在一种可选的方式中,所述方法还包括:当所述***的健康状态值低于回退策略制定的策略阈值时,根据告警策略产生告警事件。
在一种可选的方式中,所述根据所述回退策略进行部署回退,进一步包括:查询服务的历史版本;根据所述部署策略对已经更新代码的服务实例回退至最近的历史版本。
根据本发明实施例的另一方面,提供了一种服务的自动化部署装置,所述装置包括:部署模块,用于对服务进行部分部署;获取模块,用于获取所述服务的性能和日志数据;确定模块,用于根据所述服务的性能和日志数据,确定***的健康状态值;回退模块,用于当所述***的健康状态值低于回退策略制定的策略阈值时,根据所述回退策略进行部署回退;否则,根据部署策略完成剩余服务的全量部署。
根据本发明实施例的另一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的服务的自动化部署方法的操作。
根据本发明实施例的另一方面,提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上所述的服务的自动化部署方法的操作。
本发明实施例通过首先仅对服务进行部分部署,然后通过自动化测试监控服务的运行情况,以此确定***的健康状态值,根据***的健康状态来决定是继续部署还是回退,实现整个部署流程的自动化,提高***上线部署的效率和减少了人工介入环节,实现了***的快速迭代。部署出现问题时能够及时的回退,保障了业务正常运行。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了现有的自动化部署***架构图;
图2示出了本发明实施例所应用的***的架构示意图;
图3示出了本发明实施例的业务流程示意图;
图4示出了本发明实施例提供的服务的自动化部署方法的流程图;
图5示出了本发明另一实施例提供的服务的自动化部署方法的流程图;
图6示出了本发明又一实施例提供的服务的自动化部署方法的流程图;
图7示出了本发明又一实施例提供的服务的自动化部署方法的流程图;
图8示出了本发明实施例提供的服务的自动化部署装置的结构示意图;
图9示出了本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种基于容器技术实现服务自动化部署的方法,结合持续集成、持续交付和容器化技术,实现***中服务的自动化部署。在上线部署过程中,通过持续集成实现对服务的代码的自动化编译、打包、测试,并对接容器化平台实现自动化部署。部署时不是直接全量部署,而是先部分部署,部分部署之后,通过自动化测试实现对业务的验证(如实时分析服务的日志实现对***当前运行状态的监控),并根据业务成功率自动执行对应的处理策略,是继续执行部署还是回退,以此实现整个部署流程的自动化。通过本发明实施例的方案,提高了***上线部署的效率和减少了人工介入环节,实现了***的快速迭代和上线部署的能力。部署出现问题时能够及时的回退,保障业务正常运行。
图2示出了本发明实施例所应用的***的架构示意图,图3示出了本发明实施例的业务流程示意图。如图2和图3所示,通过持续集成实现服务的代码的下载、编译、部署和自动化测试。服务部署时按照版本在各容器实例中进行部署,通过容器化平台将服务发布到生产环境。服务部署模块和容器化平台之间的交互过程为:下载服务代码;编译、打包;制作镜像;推送镜像到镜像仓库;通过接口方式告知容器化平台需要部署的服务和镜像;容器化平台对服务进行部署;查询容器化平台部署状态。
服务监控模块包括服务监控单元、策略维护单元和业务成功率分析单元,其中服务监控单元采集和分析服务实例的相关性能和日志数据,并将数据汇总,业务成功率分析单元根据汇总数据分析业务成功率,实现整体业务成功率的监控,策略维护单元进行***监控告警策略、业务成功率告警策略、部署策略(在部署过程中可选择部分部署还是全量部署)以及回退策略的制定和维护,当业务成功率低于阈值时产生告警事件,并根据策略判断是否对服务的部署进行回退操作,如果需要回退则查询历史版本并根据部署策略对已经更新代码的服务实例进行回退操作,回退至最近的历史版本,如果是全量部署则将最新代码对服务进行更新,如此每次都是部分部署,部署后验测试验证,直至部署全部完成。不管是继续部署还是回退后续都需要重新进行自动化测试和验证。
具体地,服务监控单元对服务运行状态进行监控,获取服务的实时日志,以及主机CPU、内存、I/O等数据;业务成功率分析单元根据服务监控单元获取的服务日志,根据服务对请求数据响应的情况进行分析,判断请求成功还是失败。策略维护单元进行***监控告警策略、业务成功率告警策略、部署策略以及回退策略的制定和维护。这些单元均为软件模块单元。
下面通过具体的实施例对本发明进行进一步详细说明。图4示出了本发明实施例提供的服务的自动化部署方法的流程图。如图4所示,该方法包括:
步骤401:对服务进行部分部署。
本步骤中,先对服务进行部分部署,而非全量部署。当该部分部署的服务通过测试验证后,再继续部署剩余的服务中的部分服务。相比一次性全量部署的方式,若出现问题能快速查找问题,并及时回退,不至于所有的部署全部白费。提高了部署的效率和成功率。一般进行服务部署时可能有上百台主机需要部署,若同时部署这么多主机,出现问题将很难查找。因此本发明实施例仅部署部分主机,例如仅部署10%的主机,经测试验证无误后再进行下一个10%主机的部署。如此直至所有主机全部部署完成。
步骤402:获取所述服务的性能和日志数据。
本步骤中,可通过所述服务监控模块的服务监控单元获取所述服务的性能和日志数据。
步骤403:根据所述服务的性能和日志数据,确定***的健康状态值。
步骤404:当所述***的健康状态值低于回退策略制定的策略阈值时,根据所述回退策略进行部署回退;否则,根据部署策略完成剩余服务的全量部署。
策略维护单元制定了***的健康状态值的策略阈值,该策略阈值为是否需要部署回退的一个阈值。该策略阈值可根据实际的运行状况,经过多次实验得到一个最合适的阈值,也可以根据业务需求,在策略维护单元中手动指定阈值。该阈值可以设置为例如90%。若经过测试验证,***的健康状态值低于该策略阈值,则需要部署回退;若***的健康状态值不低于该策略阈值,则说明部署成功,无需回退,可继续完成其余服务的部署。当所述***的健康状态值低于回退策略制定的策略阈值时,根据告警策略产生告警事件。进一步的,在回退之前需要查询服务的历史版本,并根据所述部署策略对已经更新代码的服务实例回退至最近的历史版本。
本发明实施例通过首先仅对服务进行部分部署,然后通过自动化测试监控服务的运行情况,以此确定***的健康状态值,根据***的健康状态来决定是继续部署还是回退,实现整个部署流程的自动化,提高***上线部署的效率和减少了人工介入环节,实现了***的快速迭代。部署出现问题时能够及时的回退,保障了业务正常运行。
***的健康状态值根据不同的设定,可以由不同的参数决定,例如***的健康状态值可仅根据服务的健康状态确定,也可以基于服务的健康状态,结合***的数据库、网络和***负载等情况进行确定,还可以在服务的健康状态、***的数据库、网络和***负载等情况的基础上,进一步结合当前***并发量以及***当前时间段的历史负载情况进行确定。下面分别对这几种情况进行进一步说明。
图5示出了本发明另一实施例提供的服务的自动化部署方法的流程图。如图5所示,该方法中***的健康状态值可仅根据服务的健康状态确定,该方法包括:
步骤501:对服务进行部分部署。
步骤502:获取所述服务的性能和日志数据。
步骤503:根据所述服务的性能和日志数据分析业务请求响应成功率。
步骤504:判断所述业务请求响应成功率是否低于预设阈值;若是,执行步骤505;否则,执行步骤501,直至部署完成。
步骤505:根据所述回退策略进行部署回退。
图6示出了本发明又一实施例提供的服务的自动化部署方法的流程图。如图6所示,该方法中***的健康状态值基于服务的健康状态,结合***的数据库、网络和***负载等情况进行确定,该方法包括:
步骤601:对服务进行部分部署。
步骤602:获取所述服务的性能和日志数据,以及***的性能数据。
所述***的性能数据包括***的CPU占用率、内存的使用量、磁盘的I/O性能和网络响应时间中的一种或多种。
步骤603:根据所述服务的性能和日志数据分析业务请求响应成功率;分析所述***的性能数据,得到***的数据库健康状态值、网络健康状态值和***负载健康状态值。
若仅根据服务的性能和日志数据分析业务请求响应成功率,可能不能反映最准确的***健康状况。因为整个***是否正常运行,还受一些其他因素的影响,例如数据库、网络、***负载等,因此需要从多个维度对***运行服务后的健康状态进行判断。
步骤604:根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值以及各自的权重,确定***的健康状态值。
根据各个指标对于***的整体需求和重要程度,为其分配相应的权重。在进行阈值的判别之前,根据各指标数据,以及各自的影响权重占比确定当前***的健康程度。具体的,可以将各指标数值乘以其权重后求和,得到***的健康状态值。
步骤605:判断所述***的健康状态值是否低于回退策略制定的策略阈值;若是,执行步骤606;否则,执行步骤601,直至部署完成。
步骤606:根据所述回退策略进行部署回退。
图7示出了本发明又一实施例提供的服务的自动化部署方法的流程图。如图7所示,该方法中***的健康状态值在服务的健康状态、***的数据库、网络和***负载等情况的基础上,进一步结合当前***并发量以及***当前时间段的历史负载情况进行确定,该方法包括:
步骤701:对服务进行部分部署。
步骤702:获取所述服务的性能和日志数据,以及***的性能数据。
步骤703:根据所述服务的性能和日志数据分析业务请求响应成功率;分析所述***的性能数据,得到***的数据库健康状态值、网络健康状态值和***负载健康状态值。
步骤704:根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值以及各自的权重,确定初始的***的健康状态值。
步骤705:判断所述初始的***的健康状态值是否低于回退策略制定的策略阈值;若是,执行步骤706;否则,执行步骤701,直至部署完成。
步骤706:获取当前***并发量以及***当前时间段的历史负载情况。
由于服务运行有时有一些特定的场景,例如购物网站的促销,此时,***负载会较大,或者业务请求响应成功率会降低,但是这并不能说明***健康状况不好,因为属于特殊场景。因此,此时可进一步根据***并发量以及***当前时间段的历史负载情况来判断***是否健康,若***并发量大(如超过预设的阀值),历史负载情况和当前负载情况差不多,都超过了预设范围,则可以不做回退处理,继续进行部署。
步骤707:判断所述当前***并发量与所述***当前时间段的历史负载情况的偏差是否超过预设值;若是,执行步骤708;否则,执行步骤701,直至部署完成。
步骤708:根据所述回退策略进行部署回退。
在一些实施例中,在步骤707中,当所述当前***并发量与所述***当前时间段的历史负载情况的偏差没有超过预设值时,还可以将所述***的健康状态值确定为一不低于所述回退策略制定的策略阈值的值,并进一步判断***的健康状态值是否低于回退策略制定的策略阈值,若是,则根据所述回退策略进行部署回退,否则根据部署策略完成剩余服务的全量部署。
本发明上述具体的应用实例结合持续集成和容器化技术,大幅降低了业务***部署难度和缩减了上线部署时间,实现上线部署过程的自动化操作,针对部署过程中业务出现的异常情况,能够实时进行监控并根据策略进行快速响应处理,提升了***的部署效率,保障***稳定运行。根据***的运行情况实施多维度的监控,考虑了多项参考因素,并制定多种策略来实现对异常情况的响应,确保线上***的正常运行,降低上线过程中对业务处理的影响。
图8示出了本发明实施例提供的服务的自动化部署装置的结构示意图。如图8所示,该装置800包括:部署模块801、获取模块802、确定模块803和回退模块804。
部署模块801用于对服务进行部分部署;获取模块802用于获取所述服务的性能和日志数据;确定模块803用于根据所述服务的性能和日志数据,确定***的健康状态值;回退模块804用于当所述***的健康状态值低于回退策略制定的策略阈值时,根据所述回退策略进行部署回退;否则,根据部署策略完成剩余服务的全量部署。
在一种可选的方式中,所述确定模块803进一步用于根据所述服务的性能和日志数据分析业务请求响应成功率;当所述业务请求响应成功率低于预设阈值时,对所述***的健康状态进行综合判断,得到***的健康状态值。
在一种可选的方式中,所述确定模块803进一步用于获取所述***的性能数据;分析所述***的性能数据,得到***的数据库健康状态值、网络健康状态值和***负载健康状态值;根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值以及各自的权重,确定***的健康状态值。
在一种可选的方式中,所述***的性能数据包括***的CPU占用率、内存的使用量、磁盘的I/O性能和网络响应时间中的一种或多种。
在一种可选的方式中,确定模块803进一步用于根据所述服务的性能和日志数据,确定初始的***的健康状态值;当所述初始的***的健康状态值低于回退策略制定的策略阈值时,获取当前***并发量以及***当前时间段的历史负载情况;若所述当前***并发量与所述***当前时间段的历史负载情况的偏差不超过预设值,则将所述***的健康状态值确定为一不低于所述回退策略制定的策略阈值的值。
在一种可选的方式中,所述装置还包括告警模块805,用于当所述***的健康状态值低于回退策略制定的策略阈值时,根据告警策略产生告警事件。
在一种可选的方式中,所述回退模块804进一步用于查询服务的历史版本;根据所述部署策略对已经更新代码的服务实例回退至最近的历史版本。
需要说明的是,本发明实施例提供的服务的自动化部署装置是能够执行上述服务的自动化部署方法的装置,则上述服务的自动化部署方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
本发明实施例通过首先仅对服务进行部分部署,然后通过自动化测试监控服务的运行情况,以此确定***的健康状态值,根据***的健康状态来决定是继续部署还是回退,实现整个部署流程的自动化,提高***上线部署的效率和减少了人工介入环节,实现了***的快速迭代。部署出现问题时能够及时的回退,保障了业务正常运行。
本发明实施例提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行上述任意方法实施例中的服务的自动化部署方法的步骤。
本发明实施例通过首先仅对服务进行部分部署,然后通过自动化测试监控服务的运行情况,以此确定***的健康状态值,根据***的健康状态来决定是继续部署还是回退,实现整个部署流程的自动化,提高***上线部署的效率和减少了人工介入环节,实现了***的快速迭代。部署出现问题时能够及时的回退,保障了业务正常运行。
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的服务的自动化部署方法的步骤。
本发明实施例通过首先仅对服务进行部分部署,然后通过自动化测试监控服务的运行情况,以此确定***的健康状态值,根据***的健康状态来决定是继续部署还是回退,实现整个部署流程的自动化,提高***上线部署的效率和减少了人工介入环节,实现了***的快速迭代。部署出现问题时能够及时的回退,保障了业务正常运行。
图9示出了本发明实施例提供的电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图9所示,该电子设备可以包括:处理器(processor)902、通信接口(Communications Interface)904、存储器(memory)906、以及通信总线908。
其中:处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。处理器902,用于执行程序910,具体可以执行上述任意方法实施例中的服务的自动化部署方法。
具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。
处理器902可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器906,用于存放程序410。存储器906可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
本发明实施例通过首先仅对服务进行部分部署,然后通过自动化测试监控服务的运行情况,以此确定***的健康状态值,根据***的健康状态来决定是继续部署还是回退,实现整个部署流程的自动化,提高***上线部署的效率和减少了人工介入环节,实现了***的快速迭代。部署出现问题时能够及时的回退,保障了业务正常运行。
在此提供的算法或显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

Claims (7)

1.一种服务的自动化部署方法,其特征在于,所述方法包括:
对服务进行部分部署;
获取所述服务的性能和日志数据,以及***的性能数据;
根据所述服务的性能和日志数据分析业务请求响应成功率;分析所述***的性能数据,得到***的数据库健康状态值、网络健康状态值和***负载健康状态值;
根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值对于***的整体需求和重要程度,为所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值分配相应的权重;
根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值以及各自的权重,确定初始的***的健康状态值;
当所述初始的***的健康状态值低于回退策略制定的策略阈值时,获取当前***并发量以及***当前时间段的历史负载情况;
判断所述当前***并发量与所述***当前时间段的历史负载情况的偏差是否超过预设值;
若所述当前***并发量与所述***当前时间段的历史负载情况的偏差不超过预设值,将所述***的健康状态值确定为一不低于所述回退策略制定的策略阈值的值,并判断所述***的健康状态值是否低于所述回退策略制定的策略阈值的值;若是,根据所述回退策略进行部署回退;否则,根据部署策略完成剩余服务的全量部署。
2.根据权利要求1所述的方法,其特征在于,所述***的性能数据包括***的CPU占用率、内存的使用量、磁盘的I/O性能和网络响应时间中的一种或多种。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述***的健康状态值低于回退策略制定的策略阈值时,根据告警策略产生告警事件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述回退策略进行部署回退,进一步包括:
查询服务的历史版本;
根据所述部署策略对已经更新代码的服务实例回退至最近的历史版本。
5.一种服务的自动化部署装置,其特征在于,所述装置包括:
部署模块,用于对服务进行部分部署;
获取模块,用于获取所述服务的性能和日志数据,以及***的性能数据;
确定模块,用于根据所述服务的性能和日志数据分析业务请求响应成功率;分析所述***的性能数据,得到***的数据库健康状态值、网络健康状态值和***负载健康状态值;根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值对于***的整体需求和重要程度,所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值分配相应的权重;根据所述业务请求响应成功率、数据库健康状态值、网络健康状态值和***负载健康状态值以及各自的权重,确定初始的***的健康状态值;
回退模块,用于当所述初始的***的健康状态值低于回退策略制定的策略阈值时,获取当前***并发量以及***当前时间段的历史负载情况;判断所述当前***并发量与所述***当前时间段的历史负载情况的偏差是否超过预设值;若所述当前***并发量与所述***当前时间段的历史负载情况的偏差不超过预设值,判断所述***的健康状态值是否低于所述回退策略制定的策略阈值的值;若是,根据所述回退策略进行部署回退;否则,根据部署策略完成剩余服务的全量部署。
6.一种电子设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-4中任意一项所述的服务的自动化部署方法的操作。
7.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-4中任意一项所述的服务的自动化部署方法的操作。
CN201910583984.3A 2019-07-01 2019-07-01 服务的自动化部署方法、装置及电子设备 Active CN112181443B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910583984.3A CN112181443B (zh) 2019-07-01 2019-07-01 服务的自动化部署方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910583984.3A CN112181443B (zh) 2019-07-01 2019-07-01 服务的自动化部署方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112181443A CN112181443A (zh) 2021-01-05
CN112181443B true CN112181443B (zh) 2023-04-07

Family

ID=73914797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910583984.3A Active CN112181443B (zh) 2019-07-01 2019-07-01 服务的自动化部署方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112181443B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115373699B (zh) * 2022-07-07 2023-03-31 北京三维天地科技股份有限公司 自动化部署方法和***

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490084B1 (en) * 2009-06-18 2013-07-16 Amazon Technologies, Inc. Installation testing in automated application distribution
CN106095483A (zh) * 2016-05-31 2016-11-09 乐视控股(北京)有限公司 服务的自动化部署方法及装置
CN106293820A (zh) * 2016-08-02 2017-01-04 山东大学 开发测试运维一体化***、部署、全量以及增量更新方法
US9547564B1 (en) * 2014-11-10 2017-01-17 Amazon Technologies, Inc. Automated deployment of applications
CN106453549A (zh) * 2016-10-08 2017-02-22 中国工商银行股份有限公司 一种分布式软件版本发布方法及***
CN106663013A (zh) * 2014-06-11 2017-05-10 微软技术许可有限责任公司 针对服务升级的动态调整步调
WO2017118334A1 (zh) * 2016-01-08 2017-07-13 阿里巴巴集团控股有限公司 一种日志收集客户端及其升级方法
CN108052333A (zh) * 2017-12-11 2018-05-18 北京紫优能源科技有限公司 一种电力调度集控***标准化自动化部署方法及架构
CN109445800A (zh) * 2018-11-02 2019-03-08 中国人民银行清算总中心 一种基于分布式***的版本自动部署方法及***
CN109814910A (zh) * 2018-12-14 2019-05-28 深圳壹账通智能科技有限公司 自动化灰度发布方法、装置、计算机***及存储介质
CN109918090A (zh) * 2019-02-15 2019-06-21 网宿科技股份有限公司 应用部署方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381208B2 (en) * 2009-06-11 2013-02-19 International Business Machines Corporation Tracking application installation among a plurality of client devices
US20150143354A1 (en) * 2013-11-19 2015-05-21 Suresh Mathew Zero downtime deployment and rollback
CN104639374B (zh) * 2015-03-03 2017-12-12 上海瀚银信息技术有限公司 一种应用程序部署管理***
CN105955761A (zh) * 2016-06-30 2016-09-21 乐视控股(北京)有限公司 基于docker的灰度发布装置及方法
CN106257894A (zh) * 2016-08-29 2016-12-28 北京海誉动想科技股份有限公司 基于微服务的灰度发布方法
CN109391655B (zh) * 2017-08-09 2021-09-24 腾讯科技(深圳)有限公司 服务灰度发布方法、装置、***及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490084B1 (en) * 2009-06-18 2013-07-16 Amazon Technologies, Inc. Installation testing in automated application distribution
CN106663013A (zh) * 2014-06-11 2017-05-10 微软技术许可有限责任公司 针对服务升级的动态调整步调
US9547564B1 (en) * 2014-11-10 2017-01-17 Amazon Technologies, Inc. Automated deployment of applications
WO2017118334A1 (zh) * 2016-01-08 2017-07-13 阿里巴巴集团控股有限公司 一种日志收集客户端及其升级方法
CN106095483A (zh) * 2016-05-31 2016-11-09 乐视控股(北京)有限公司 服务的自动化部署方法及装置
CN106293820A (zh) * 2016-08-02 2017-01-04 山东大学 开发测试运维一体化***、部署、全量以及增量更新方法
CN106453549A (zh) * 2016-10-08 2017-02-22 中国工商银行股份有限公司 一种分布式软件版本发布方法及***
CN108052333A (zh) * 2017-12-11 2018-05-18 北京紫优能源科技有限公司 一种电力调度集控***标准化自动化部署方法及架构
CN109445800A (zh) * 2018-11-02 2019-03-08 中国人民银行清算总中心 一种基于分布式***的版本自动部署方法及***
CN109814910A (zh) * 2018-12-14 2019-05-28 深圳壹账通智能科技有限公司 自动化灰度发布方法、装置、计算机***及存储介质
CN109918090A (zh) * 2019-02-15 2019-06-21 网宿科技股份有限公司 应用部署方法及装置

Also Published As

Publication number Publication date
CN112181443A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
JP7292786B2 (ja) ハイブリッド・コンピューティング環境におけるパッチ管理
US10402746B2 (en) Computing instance launch time
US8954579B2 (en) Transaction-level health monitoring of online services
CN111930493B (zh) 集群中NodeManager状态管理方法、装置及计算设备
WO2016040699A1 (en) Computing instance launch time
CN113052696B (zh) 金融业务任务处理方法、装置、计算机设备和存储介质
CN104615486B (zh) 用于搜索推广平台的多任务调度和执行方法、装置和***
US20130031532A1 (en) Method, computer, and device for validating execution of tasks in adaptable computer systems
CN113312153A (zh) 一种集群部署方法、装置、电子设备及存储介质
JPH11259559A (ja) 金融情報処理システム
CN112181443B (zh) 服务的自动化部署方法、装置及电子设备
CN107992420B (zh) 提测项目的管理方法及***
CN113986852A (zh) 驾驶程序标定参数匹配方法、装置、电子设备及存储介质
CN116974874A (zh) 数据库的测试方法、装置、电子设备及可读存储介质
CN116860344A (zh) 一种流程管理方法、***、设备及介质
CN109857629B (zh) 一种扫描检测方法及装置
CN110781039B (zh) 哨兵进程选举方法及装置
CN105868957A (zh) 一种持续集成方法及装置
CN115525568A (zh) 代码覆盖率的巡检方法、装置、计算机设备及存储介质
CN110909023A (zh) 一种查询计划的获取方法、数据查询方法及装置
CN114153427A (zh) 持续集成流水线的优化方法及***
CN114189439A (zh) 一种自动扩容的方法及装置
CN113518974A (zh) 用于找出并标识网络中的计算节点的***和方法
US20160232595A1 (en) Methods, systems, and computer readable media for processing an order with a start-start dependency
CN1316358C (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231224

Address after: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000

Patentee after: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee after: China Mobile (Zhejiang) Innovation Research Institute Co.,Ltd.

Patentee after: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.

Address before: No.19, Jiefang East Road, Hangzhou, Zhejiang Province, 310000

Patentee before: CHINA MOBILE GROUP ZHEJIANG Co.,Ltd.

Patentee before: CHINA MOBILE COMMUNICATIONS GROUP Co.,Ltd.