CN113190327B - 微服务部署方法、装置、设备及存储介质 - Google Patents

微服务部署方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113190327B
CN113190327B CN202110482004.8A CN202110482004A CN113190327B CN 113190327 B CN113190327 B CN 113190327B CN 202110482004 A CN202110482004 A CN 202110482004A CN 113190327 B CN113190327 B CN 113190327B
Authority
CN
China
Prior art keywords
micro
service
host
upgraded
special
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
CN202110482004.8A
Other languages
English (en)
Other versions
CN113190327A (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.)
Ping An Securities Co Ltd
Original Assignee
Ping An Securities 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 Ping An Securities Co Ltd filed Critical Ping An Securities Co Ltd
Priority to CN202110482004.8A priority Critical patent/CN113190327B/zh
Publication of CN113190327A publication Critical patent/CN113190327A/zh
Application granted granted Critical
Publication of CN113190327B publication Critical patent/CN113190327B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

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

Abstract

本发明涉及微服务架构技术领域,本发明公开了一种微服务部署方法、装置、设备及存储介质,所述方法包括:通过获取初始化部署指令中的微服务初始化部署信息;通过初始scripts脚本,从初始Docker容器中获取与微服务唯一码以及部署版本均匹配的初始镜像文件,将获取的初始镜像文件确定为初始微服务文件;通过SSH协议,和初始主机建立通信,并登录初始主机;通过rancher平台,将各初始微服务文件推送至与初始微服务文件对应的初始主机;向初始主机发送初始启动指令;接收到所有初始主机针对初始启动指令反馈的部署完成指令,确认微服务初始化部署信息完成部署。因此,本发明实现了通过scripts代码和Docker容器解决了微服务运行环境的限制,提高部署准确性,降低运营成本。

Description

微服务部署方法、装置、设备及存储介质
技术领域
本发明涉及微服务架构技术领域,尤其涉及一种微服务部署方法、装置、设备及存储介质。
背景技术
随着互联网技术的发展,微服务框架下的应用越来越广泛,微服务的部署在此过程中发挥着越来越重要的作用,在现有技术中,大部分微服务部署工具只能一次对一个微服务进行部署,而且遇到一个微服务升级时需要开发人员进行至少三次的手动操作(升级-确认-完成升级),并且启动微服务需提供统一主机的运行环境,存在一定的局限性;由上所述,现有技术中的方案会大大延长多个微服务的部署时长,操作繁琐,并且,上述方案中还经常会出现因为人为失误导致多个微服务部署失败而需要手动回退的情况。
发明内容
本发明提供一种微服务部署方法、装置、计算机设备及存储介质,实现了通过scripts代码和Docker容器解决了微服务运行环境的限制,并且通过rancher平台批量初始化部署多个微服务,提高了部署效率,减少了人工操作,避免了人工部署失误,提高了部署准确性,减少了运营成本。
一种微服务部署方法,包括:
接收初始化部署指令,获取所述初始化部署指令中的微服务初始化部署信息;所述微服务初始化部署信息包括至少一个主机组数据和与所述主机组数据对应的微服务组数据,一个所述主机组数据包括至少一个主机地址和与所述主机地址对应的主机登录信息,所述微服务组数据包括至少两个微服务唯一码、均与所述微服务唯一码关联的部署版本和部署路径;
通过初始scripts脚本,从初始Docker容器中获取与所述微服务唯一码以及所述部署版本均匹配的初始镜像文件,将获取的所述初始镜像文件确定为初始微服务文件;
通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机;
通过rancher平台,将各所述初始微服务文件推送至与所述初始微服务文件对应的所述初始主机,按照与其相应的存储路径,将经所述初始主机已确认接收的所述初始微服务文件存储为初始目标微服务文件;每个所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述部署路径相同;
向与所述初始目标微服务文件对应的初始主机发送初始启动指令;
当接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令时,确认所述微服务初始化部署信息完成部署;所述部署完成指令为所述初始主机启动所述初始目标微服务文件之后获得。
一种微服务部署装置,包括:
接收模块,用于接收初始化部署指令,获取所述初始化部署指令中的微服务初始化部署信息;所述微服务初始化部署信息包括至少一个主机组数据和与所述主机组数据对应的微服务组数据,一个所述主机组数据包括至少一个主机地址和与所述主机地址对应的主机登录信息,所述微服务组数据包括至少两个微服务唯一码、均与所述微服务唯一码关联的部署版本和部署路径;
获取模块,用于通过初始scripts脚本,从初始Docker容器中获取与所述微服务唯一码以及所述部署版本均匹配的初始镜像文件,将获取的所述初始镜像文件确定为初始微服务文件;
通信模块,用于通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机;
推送模块,用于通过rancher平台,将各所述初始微服务文件推送至与所述初始微服务文件对应的所述初始主机,按照与其相应的存储路径,将经所述初始主机已确认接收的所述初始微服务文件存储为初始目标微服务文件;每个所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述部署路径相同;
发送模块,用于向与所述初始目标微服务文件对应的初始主机发送初始启动指令;
确认模块,用于当接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令时,确认所述微服务初始化部署信息完成部署;所述部署完成指令为所述初始主机启动所述初始目标微服务文件之后获得。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述微服务部署方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述微服务部署方法的步骤。
本发明提供的微服务部署方法、装置、计算机设备及存储介质,通过获取含有至少两个微服务唯一码的微服务初始化部署信息;通过初始scripts脚本(scripts代码),从初始Docker容器中获取初始微服务文件;通过SSH协议,和初始主机建立通信;通过rancher平台,将各所述初始微服务文件推送至各所述初始主机;向各初始主机发送与各所述初始微服务文件对应的初始启动指令;接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令,确认所述微服务初始化部署信息完成部署,如此,实现了通过scripts代码和初始Docker容器解决了微服务运行环境的限制,并且通过rancher平台批量初始化部署多个微服务,提高了部署效率,减少了人工操作,避免了人工部署失误,提高了部署准确性,减少了运营成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中微服务部署方法的应用环境示意图;
图2是本发明一实施例中微服务部署方法的流程图;
图3是本发明一实施例中微服务部署方法的步骤S30的流程图;
图4是本发明一实施例中微服务部署装置的原理框图;
图5是本发明一实施例中微服务部署装置的确认模块的原理框图;
图6是本发明一实施例中计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的微服务部署方法,可应用在如图1的应用环境中,其中,客户端(计算机设备或终端)通过网络与服务器进行通信。其中,客户端(计算机设备或终端)包括但不限于为各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种微服务部署方法,其技术方案主要包括以下步骤S10-S60:
S10,接收初始化部署指令,获取所述初始化部署指令中的微服务初始化部署信息;所述微服务初始化部署信息包括至少一个主机组数据和与所述主机组数据对应的微服务组数据,一个所述主机组数据包括至少一个主机地址和与所述主机地址对应的主机登录信息,所述微服务组数据包括至少两个微服务唯一码、均与所述微服务唯一码关联的部署版本和部署路径。
可理解地,所述初始化部署指令为需对指定的多个主机进行第一次部署多个微服务而触发的指令,所述主机不限于包括计算机、服务器、移动设备等,所述微服务为拥有独自业务层和数据库层的业务模块,所述微服务初始化部署信息包括至少一个所述主机组数据和与所述主机组数据一一对应的所述微服务组数据,所述主机组数据为包含有至少一个所述主机地址和与所述主机地址一一对应的所述主机登录信息的一组与主机相关的数据集合,所述主机地址为与所述主机对应的唯一的地址,所述主机登录信息不限于包括用户名、登录密码等等,通过与所述主机地址匹配的所述主机的所述主机登录信息可以登录该主机,所述微服务组数据为包含有至少两个微服务唯一码、均与所述微服务唯一码一一关联的所述部署版本和所述部署路径,所述微服务唯一码指对所述微服务赋予一个唯一的标识码,所述部署版本为需部署所述微服务唯一码对应的版本标识,所述部署版本表明部署的微服务对应的版本,所述部署路径为部署微服务存储的路径位置。
S20,通过初始scripts脚本,从初始Docker容器中获取与所述微服务唯一码以及所述部署版本均匹配的初始镜像文件,将获取的所述初始镜像文件确定为初始微服务文件。
可理解地,所述初始scripts脚本为基于scripts语言编写且用于批量初始化微服务部署的脚本文件,所述初始Docker容器为存储了所有经Docker容器转换成镜像文件后的与历史版本及最新版本的所述微服务唯一码对应的微服务文件的所述初始镜像文件,所述初始镜像文件为通过Docker容器转换成镜像的文件,因此,运用scripts语言编写脚本文件,能够方便开发,并通过Docker容器转换成镜像文件,能够解决微服务运行环境的局限性,可以实现跨平台、跨主机的运行环境,将从所述初始Docker容器中获取的与所述微服务唯一码以及所述部署版本均匹配的所述初始镜像文件确定为所述初始微服务文件。
S30,通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机。
可理解地,所述SSH(Secure Shell)协议为建立在应用层基础上的安全协议,以及具有极高可靠性的专为远程登录会话和其他网络服务提供安全性的协议,所述SSH协议的验证方式包括基于口令的安全验证方式和基于密匙的安全验证方式,而且所述SSH协议包括传输层协议、用户认证协议和连接协议,通过所述SSH协议中的传输层协议,查询出与至少一个所述主机地址匹配的主机,并将查询的与至少一个所述主机地址匹配的主机确定为所述初始主机,再通过SSH协议中的用户认证协议,运用xshell工具生成口令或者密钥,其中,生成口令/密钥的方法为按照预设的口令/密钥设置信息对所述xshell工具进行配置,并运用xshell工具随机生成与当前时间对应的口令/密钥的过程,因为通过与当前时间对应的口令/密钥可以追踪连接所述初始主机的时刻,为后续追溯奠定基础,根据生成的口令或者密钥与所述初始主机建立通信,并且通过SSH协议中的连接协议,根据与所述主机地址一一对应的所述主机登录信息,登录所述初始主机,所述主机登录信息为登录所述初始主机相关的信息,所述主机登录信息包括登录管理员名称、管理员登录密码等等。
在一实施例中,如图3所示,所述步骤S30中,即所述通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机,包括:
S301,通过所述SSH协议,查询到与所述主机地址匹配的所述初始主机。
可理解地,通过所述SSH协议中的传输层协议,所述传输层协议为用于与主机传输相关的协议,对所有主机进行扫描,扫描出与至少一个所述主机地址匹配的主机,并将查询到与至少一个所述主机地址匹配的主机确定为所述初始主机。
S302,运用xshell工具,生成与当前时间对应的密钥,并向所述初始主机发送连接请求。
可理解地,所述连接请求为通过SSH协议中的用户认证协议,运用xshell工具生成口令或者密钥,并发起包含该密钥的请求,其中,生成密钥的方法为按照预设的密钥设置信息对所述xshell工具进行配置,并运用xshell工具随机生成与当前时间对应的密钥,即根据当前时间的格式进行编码,根据编码后的字符串随机生成与该字符串对应的密钥,所述xshell工具为支持多种远程协议以及提供远程协议相关的高级功能的工具。
S303,接收到所述初始主机根据所述连接请求返回的所述密钥,并将包含接收到的所述密钥的协议发送至所述初始主机,以建立通信。
可理解地,所述初始主机对所述连接请求进行公钥解密,只有与所述主机地址匹配的主机才能获取到正确的密钥,并将解密正确的所述密钥加入协议中,并发送至所述初始主机,通过SSH协议中的用户认证协议,以建立通信连接,所述用户认证协议为用于认证相关的协议。
S304,根据所述主机登录信息,登录所述初始主机。
可理解地,通过SSH协议中的连接协议,所述连接协议为用于连接主机并登录相关的协议。
本发明实现了通过所述SSH协议,查询到与所述主机地址匹配的所述初始主机;运用xshell工具,生成与当前时间对应的密钥,并向所述初始主机发送连接请求;接收到所述初始主机根据所述连接请求返回的所述密钥,并将包含接收到的所述密钥的协议发送至所述初始主机,以建立通信;根据所述主机登录信息,登录所述初始主机,如此,实现了通过SSH协议以及运用xshell工具,自动生成可追溯的密钥,并建立与初始主机的通信连接,以及登录初始主机,提高了微服务部署的安全性和可追溯性。
S40,通过rancher平台,将各所述初始微服务文件推送至与所述初始微服务文件对应的所述初始主机,按照与其相应的存储路径,将经所述初始主机已确认接收的所述初始微服务文件存储为初始目标微服务文件;每个所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述部署路径相同。
可理解地,所述rancher平台为针对多个容器进行管理的容器管理平台,而且与多个主机进行通信实现微服务文件的传输、部署、停用、升级和回退,所述rancher平台可以管理Docker容器,也可以管理Kubernetes容器,将所述初始微服务文件推送至所述初始微服务文件对应的所述初始主机,即所述初始微服务文件对应一个所述微服务唯一码,所述微服务唯一码对应于一个所述微服务组数据,所述微服务组数据又与一个所述主机组数据对应,一个所述主机组数据下包含至少一个所述主机地址,与所述主机地址匹配的所述初始主机即为与所述初始微服务文件对应的所述初始主机,所述初始主机将接收到的并根据所述存储路径存储的所述初始微服务文件确定为所述初始目标微服务文件,其中,所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述初始微服务文件对应的所述微服务唯一码关联的所述部署路径相同,因此,通过rancher平台可以实现多个所述初始微服务文件同时推送至所述初始主机。
S50,向与所述初始目标微服务文件对应的初始主机发送初始启动指令。
可理解地,将各所述初始微服务文件推送至与所述初始目标微服务文件对应的初始主机之后,向所述初始主机发送所述初始启动指令,所述初始启动指令为启动各所述初始目标微服务文件的指令,通过所述racher平台,发送各所述初始启动指令至各所述初始主机。
S60,当接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令时,确认所述微服务初始化部署信息完成部署;所述部署完成指令为所述初始主机启动所述初始目标微服务文件之后获得。
可理解地,接收到所有所述初始主机针对所述初始启动指令反馈的所述部署完成指令,所述部署完成指令指所述初始主机根据所述初始启动指令启动所述初始目标微服务文件之后发起的指令,表明在所述初始主机上部署微服务完毕,所有所述初始主机都完成部署后确认所述微服务初始化部署信息完成部署。
本发明通过接收初始化部署指令,获取所述初始化部署指令中的微服务初始化部署信息;所述微服务初始化部署信息包括至少一个主机组数据和与所述主机组数据对应的微服务组数据,一个所述主机组数据包括至少一个主机地址和与所述主机地址对应的主机登录信息,所述微服务组数据包括至少两个微服务唯一码、均与所述微服务唯一码关联的部署版本和部署路径;通过初始scripts脚本,从初始Docker容器中获取与所述微服务唯一码以及所述部署版本均匹配的初始镜像文件,将获取的所述初始镜像文件确定为初始微服务文件;通过SSH协议,和与至少一个所述主机地址匹配的初始主机建立通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机;通过rancher平台,将各所述初始微服务文件推送至与所述初始微服务文件对应的所述初始主机,按照与其相应的存储路径,将经所述初始主机已确认接收的所述初始微服务文件存储为初始目标微服务文件;每个所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述部署路径相同;向与所述初始目标微服务文件对应的初始主机发送初始启动指令;当接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令时,确认所述微服务初始化部署信息完成部署;所述部署完成指令为所述初始主机启动所述初始目标微服务文件之后获得。
本发明实现了通过获取含有至少两个微服务唯一码的微服务初始化部署信息;通过初始scripts脚本(scripts代码),从初始Docker容器中获取初始微服务文件;通过SSH协议,和初始主机建立通信;通过rancher平台,将各所述初始微服务文件推送至各所述初始主机;向各初始主机发送与各所述初始微服务文件对应的初始启动指令;接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令,确认所述微服务初始化部署信息完成部署,如此,实现了通过scripts代码和初始Docker容器解决了微服务运行环境的限制,并且通过rancher平台批量初始化部署多个微服务,提高了部署效率,减少了人工操作,避免了人工部署失误,提高了部署准确性,减少了运营成本。
在一实施例中,所述步骤S60之后,即所述接收到所有所述初始主机针对所述启动指令反馈的部署完成指令,确认所述微服务初始化部署信息完成部署之后,包括:
S601,接收常规升级部署指令,获取所述常规升级部署指令中的常规微服务升级部署信息;所述常规微服务升级部署信息包括至少一个常规待升级主机组数据和与所述常规待升级主机组数据对应的常规待升级微服务组数据,一个所述常规待升级主机组数据包括至少一个常规待升级主机地址和与所述常规待升级主机地址对应的常规待升级主机登录信息,所述常规待升级微服务组数据包括至少两个常规待升级微服务唯一码、均与所述常规待升级微服务唯一码关联的常规升级版本和常规升级路径。
可理解地,所述常规升级部署指令为需对指定的多个已经部署后的主机进行升级多个微服务而触发的指令,所述常规微服务升级部署信息包括至少一个常规待升级主机组数据和与所述常规待升级主机组数据一一对应的所述常规待升级微服务组数据,所述常规待升级主机组数据为包含有至少一个所述常规待升级主机地址和与所述常规待升级主机地址一一对应的所述常规待升级主机登录信息的一组与主机相关的数据集合,所述常规待升级主机地址为与所述主机对应的唯一的地址,所述常规待升级主机登录信息不限于包括用户名、登录密码等等,通过与所述常规待升级主机地址匹配的所述主机的所述常规待升级主机登录信息可以登录该主机,所述常规待升级微服务组数据为包含有至少两个常规待升级微服务唯一码、均与所述常规待升级微服务唯一码一一关联的所述常规升级版本和所述常规升级路径,所述常规待升级微服务唯一码指对所述第一待升级微服务赋予一个唯一的标识码,所述常规升级版本为需升级所述常规待升级微服务唯一码对应的版本标识,所述常规升级版本表明部署升级之后的微服务对应的版本,所述常规升级路径为升级部署微服务存储的路径位置。
S602,通过常规升级scripts脚本,从存新Docker容器中获取与所述常规待升级微服务唯一码以及所述常规升级版本均匹配的新版镜像文件,将获取的所述新版镜像文件确定为新版微服务文件。
可理解地,所述常规升级scripts脚本为基于scripts语言编写且用于批量升级常规待升级主机的脚本文件,所述存新Docker容器为存储了所有微服务对应的最新版本的所述新版镜像文件,所述初始Docker容器与所述存新Docker容器为分开的容器,如此,存新Docker容器中只有最新版本的微服务相关的文件,能够更好管理所有的微服务相关的文件,所述新版镜像文件为最新版本的微服务转换后的镜像文件,将与所述常规待升级微服务唯一码以及所述常规升级版本均匹配的新版镜像文件确定为所述新版微服务文件。
S603,通过SSH协议,建立和与至少一个所述常规待升级主机地址匹配的常规待升级主机的通信,并且根据与所述常规待升级主机地址对应的所述常规待升级主机登录信息,登录与所述常规待升级主机地址匹配的所述常规待升级主机。
可理解地,通过所述SSH协议中的传输层协议,查询出与至少一个所述常规待升级主机地址匹配的主机,并将查询的与至少一个所述常规待升级主机地址匹配的主机确定为所述常规待升级主机,再通过SSH协议中的用户认证协议,运用xshell工具生成口令或者密钥,其中,生成口令/密钥的方法为按照预设的口令/密钥设置信息对所述xshell工具进行配置,并运用xshell工具随机生成与当前时间对应的口令/密钥的过程,因为通过与当前时间对应的口令/密钥可以追踪连接所述常规待升级主机的时刻,为后续追溯奠定基础,根据生成的口令或者密钥与所述常规待升级主机建立通信,并且通过SSH协议中的连接协议,根据与所述常规待升级主机地址一一对应的所述常规待升级主机登录信息,登录所述常规待升级主机,所述常规待升级主机登录信息为登录所述常规待升级主机相关的信息,所述常规待升级主机登录信息包括登录管理员名称、管理员登录密码等等。
S604,通过所述rancher平台,发送与所述常规待升级微服务唯一码对应的常规停用指令至各所述常规待升级主机。
可理解地,所述常规停用指令为所述常规待升级主机执行后能够停止运行该指令指定的微服务,即表明需升级所述常规待升级微服务唯一码关联的微服务之前,先停用该微服务。
S605,通过所述rancher平台,接收到各所述常规待升级主机针对所述常规停用指令反馈的常规停用成功指令之后,将各所述新版微服务文件推送至与所述新版微服务文件对应的所述常规待升级主机,按照与其相应的升级存储路径,将经所述常规待升级主机已确认接收的所述新版微服务文件存储为新版目标微服务文件;每个所述新版目标微服务文件的升级存储路径均与所述新版目标微服务文件对应的所述常规升级路径相同。
可理解地,所述常规停用成功指令为所述常规待升级主机执行完所述常规停用指令之后发送的指令,所述常规停用成功指令表明所述常规待升级主机已经停用与所述常规待升级微服务唯一码关联的微服务成功,将所述新版微服务文件推送至所述新版微服务文件对应的所述常规待升级主机,即所述新版微服务文件对应一个所述常规待升级微服务唯一码,所述常规待升级微服务唯一码对应于一个所述常规待升级微服务组数据,所述微服务组数据又与一个所述常规待升级主机组数据对应,一个所述常规待升级主机组数据下包含至少一个所述常规待升级主机地址,与所述常规待升级主机地址匹配的所述常规待升级主机即为与所述新版微服务文件对应的所述常规待升级主机,所述常规待升级主机将接收到的并根据所述升级存储路径存储的所述新版微服务文件确定为所述新版目标微服务文件,其中,所述新版目标微服务文件的存储路径均与所述新版目标微服务文件对应的所述新版微服务文件对应的所述常规待升级微服务唯一码关联的所述常规升级路径相同,因此,通过所述rancher平台可以实现多个所述新版微服务文件同时推送至所述常规待升级主机。
S606,将各所述新版目标微服务文件的常规升级启动指令发送至与所述新版目标微服务文件对应的常规待升级主机。
可理解地,将各所述新版微服务文件推送至与所述新版目标微服务文件对应的常规待升级主机之后,向所述常规待升级主机发送所述常规升级启动指令,所述常规升级启动指令为启动各所述新版目标微服务文件的指令,通过所述racher平台,发送各所述常规升级启动指令至各所述常规待升级主机。
S607,当接收到所有所述常规待升级主机针对所述常规升级启动指令反馈的常规升级部署完成指令时,确认所述常规微服务升级部署信息完成部署;所述常规升级部署完成指令为所述常规待升级主机启动所述新版目标微服务文件之后获得。
本发明通过接收常规升级部署指令,获取含有至少两个第一待升级微服务无唯一码的常规微服务升级部署信息;通过常规升级scripts脚本,从存新Docker容器中获取新版微服务文件;通过SSH协议,和常规待升级主机建立通信;通过所述rancher平台,发送与所述常规待升级微服务唯一码对应的常规停用指令至各所述常规待升级主机;通过所述rancher平台,接收到各所述常规待升级主机针对所述常规停用指令反馈的常规停用成功指令之后,将各所述新版微服务文件推送至对应的各所述常规待升级主机;将各所述新版目标微服务文件的常规升级启动指令发送至与所述新版目标微服务文件对应的常规待升级主机;当接收到所有所述常规待升级主机针对所述常规升级启动指令反馈的常规升级部署完成指令时,确认所述常规微服务升级部署信息完成部署,如此,实现了通过scripts代码和存新Docker容器解决了微服务运行环境的限制,并且通过rancher平台批量升级部署多个微服务,提高了升级效率,减少了人工操作,避免了人工部署失误,提高了升级准确性,减少了运营成本。
在一实施例中,所述步骤S607之后,即所述确认所述常规微服务升级部署信息完成部署之后,包括:
S6071,接收到回退部署指令,所述回退部署指令为所述常规微服务升级部署信息完成部署之后运行出现异常而触发的指令。
可理解地,所述异常可以为所述常规微服务升级部署信息完成部署之后的所述常规待升级主机运行出现报错指令现象的异常。
S6072,通过所述rancher平台,发送与所述常规待升级微服务唯一码对应的回退指令至各所述常规待升级主机。
可理解地,所述回退指令为与所述常规待升级微服务唯一码对应的指令,其该指令用于回退至升级之前的版本。
S6073,通过所述rancher平台,接收到各所述常规待升级主机针对所述回退指令反馈的回退执行指令之后,向与所述回退目标微服务文件对应的常规待升级主机发送回退启动指令;所述回退执行指令为所述常规待升级主机将被确定为回退目标微服务文件的所述新版目标微服务文件进行回退之后获得。
可理解地,各自所述常规待升级主机接收到各自所述回退指令后停用各自所述常规待升级主机下的所述新版目标微服务文件,将存储所述新版目标微服务文件之前的文件恢复,覆盖所述新版目标微服务文件,将覆盖所述新版目标微服务文件的文件确定为所述回退目标微服务文件,回退之后的所述常规待升级主机触发所述回退执行指令,接收到所述回退执行指令之后,向所述常规待升级主机发送与所述回退目标微服务文件相对应的所述回退启动指令。
S6074,当接收到所有所述常规待升级主机针对所述回退启动指令反馈的回退部署完成指令时,确认所述回退部署指令完成回退部署;所述回退部署完成指令为所述常规待升级主机启动所述回退目标微服务文件之后获得。
本发明通过接收到回退部署指令;通过所述rancher平台,发送与各个所述常规待升级微服务唯一码对应的回退指令至所述常规待升级主机;通过所述rancher平台,接收到各所述常规待升级主机针对所述回退指令反馈的回退执行指令之后,向与所述回退目标微服务文件对应的常规待升级主机发送回退启动指令;接收到所有所述常规待升级主机针对所述回退启动指令反馈的回退部署完成指令,确认所述回退部署指令完成回退部署,如此,实现了出现升级部署失败的情况下能够一键回退(通过回退部署指令自动将所有微服务还原至升级之前的版本),能够实现自动回退的操作,减少了人工回退的相应操作,提高了回退效率,减少了运营成本。
在一实施例中,所述步骤S60之后,即所述接收到所有所述初始主机针对所述启动指令反馈的部署完成指令,确认所述微服务初始化部署信息完成部署之后,包括:
S608,接收特殊升级部署指令,获取所述特殊升级部署指令中的特殊微服务升级部署信息;所述特殊微服务升级部署信息包括至少一个特殊待升级微服务组数据;所述特殊待升级微服务组数据仅包括至少两个特殊待升级微服务唯一码、与所述特殊待升级微服务唯一码关联的特殊升级版本。
可理解地,所述特殊升级部署指令为需对指定的多个已经部署后的主机进行升级多个微服务而触发的另一种指令,所述特殊微服务升级部署信息包括至少一个所述特殊待升级微服务组数据,所述特殊待升级微服务组数据包括至少两个所述第二待升级微服务码、与所述特殊待升级微服务唯一码一一关联的所述特殊升级版本,所述特殊待升级微服务组数据为含有所有需要升级的所述第二待升级微服务码及所述特殊升级版本的集合,所述特殊待升级微服务唯一码指对所述第二待升级微服务赋予一个唯一的标识码,所述特殊升级版本为需升级所述特殊待升级微服务唯一码对应的版本标识,所述特殊升级版本表明部署升级之后的微服务对应的版本,所述常规待升级微服务唯一码与所述特殊待升级微服务唯一码可以相同,所述常规待升级微服务唯一码与所述特殊待升级微服务唯一码也可以不相同,所述常规升级版本与所述特殊升级版本可以相同,所述常规升级版本与所述特殊升级版本也可以不相同。
S609,通过特殊升级scripts脚本,从备份Docker容器中获取与所述特殊待升级微服务唯一码以及所述特殊升级版本均匹配的备份镜像文件,将获取的所述备份镜像文件确定为特殊升级微服务文件。
可理解地,所述特殊升级scripts脚本为基于scripts语言编写且用于批量升级特殊待升级主机的脚本文件,即用于在原本安装了与所述特殊待升级微服务唯一码对应的微服务的主机基础上进行升级的脚本,所述备份Docker容器可以为所述初始Docker容器的备份,也可以为所述存新Docker容器的备份,所述备份Docker容器存储了所有微服务对应的最新版本的所述备份镜像文件,所述备份Docker容器与所述初始Docker容器或者所述存新Docker容器中的文件为同步刷新,若其中一个容器出现异常损毁情况下,另一个容器能够作为备用,因此,起到了防丢失数据功能。
其中,所述备份镜像文件为最新版本的微服务转换后的镜像文件,所述备份镜像文件可以与所述新版镜像文件相同,也可以不相同,将与所述特殊待升级微服务唯一码以及所述特殊升级版本均匹配的备份镜像文件确定为所述特殊升级微服务文件。
S610,通过所述rancher平台,查询出含有至少一个与所述特殊待升级微服务唯一码关联的特殊待升级主机,并通过SSH协议和所述特殊待升级主机建立通信。
可理解地,通过所述rancher平台,能够查询出当前的所有主机中与所述特殊待升级微服务唯一码关联的所述特殊待升级主机,查询方式可以为从所述rancher平台的日志中查询与所述特殊待升级微服务唯一码相同且关联的主机,即为需要查询的所述特殊待升级主机,通过SSH协议和所述特殊待升级主机建立通信。
S611,通过所述rancher平台,将各所述特殊升级微服务文件发送至与所述特殊升级微服务文件对应的所述特殊待升级主机,以供所述特殊待升级主机根据所述特殊升级微服务文件执行更新操作。
在一实施例中,所述步骤S611中,即所述通过所述rancher平台,将各所述特殊升级微服务文件发送至与所述特殊升级微服务文件对应的所述特殊待升级主机,以供所述特殊待升级主机根据所述特殊升级微服务文件执行更新操作,包括:
S6111,通过所述rancher平台,向各所述特殊待升级主机发送与所述特殊待升级微服务唯一码对应的路径查询指令。
可理解地,所述路径查询指令为通知所述特殊待升级主机执行查询与所述特殊待升级微服务唯一码对应的微服务的指令。
S6112,接收到各所述特殊待升级主机针对所述路径查询指令反馈的特殊升级路径。
可理解地,所述特殊升级路径为与所述特殊待升级微服务唯一码对应的微服务在所述特殊待升级主机中的存储路径。
S6113,通过所述rancher平台,发送与所述特殊待升级微服务唯一码对应的特殊停用指令至各所述特殊待升级主机。
可理解地,所述特殊停用指令为所述特殊待升级主机执行后能够停止运行该指令指定的微服务,即表明需升级所述特殊待升级微服务唯一码关联的微服务之前,先停用该微服务。
S6114,通过所述rancher平台,接收到各所述特殊待升级主机针对所述特殊停用指令反馈的特殊停用成功指令之后,将所述特殊升级微服务文件推送至各与所述特殊升级微服务文件对应的所述特殊待升级主机,并存储至所述特殊升级路径。
本发明通过所述rancher平台,向各所述特殊待升级主机发送与所述特殊待升级微服务唯一码对应的路径查询指令;接收到各所述特殊待升级主机针对所述路径查询指令反馈的特殊升级路径;通过所述rancher平台,发送与所述特殊待升级微服务唯一码对应的特殊停用指令至各所述特殊待升级主机;通过所述rancher平台,接收到各所述特殊待升级主机针对所述特殊停用指令反馈的特殊停用成功指令之后,将各所述特殊升级微服务文件推送至与所述特殊升级微服务文件对应的所述特殊待升级主机,并存储至所述特殊升级路径,如此,通过rancher平台获取特殊升级路径,根据所述特殊升级路径升级所有特殊待升级主机,简化了升级流程和减少了人工操作。
S612,向与所述特殊升级微服务文件对应且已执行更新操作后的特殊待升级主机发送特殊升级启动指令。
可理解地,在苏搜狐特殊待升级主机完成更新操作之后,发送与其相应的所述特殊升级启动指令,所述特殊升级启动指令为启动部署的指令。
S613,当接收到所有所述特殊待升级主机针对所述特殊升级启动指令反馈的特殊升级部署完成指令时,确认所述特殊微服务升级部署信息完成部署;所述特殊升级部署完成指令为所述特殊待升级主机启动所述特殊升级微服务文件之后获得。
可理解地,在所述特殊待升级主机根据所述特殊升级启动指令进行启动所述特殊升级微服务文件之后自动反馈所述特殊升级部署完成指令。
本发明通过接收特殊升级部署指令,获取仅包含至少两个特殊待升级微服务唯一码和关联的特殊升级版本的特殊微服务升级部署信息;通过特殊升级scripts脚本,从备份Docker容器中获取特殊升级微服务文件;通过所述rancher平台,查询出含有至少一个与所述特殊待升级微服务唯一码关联的特殊待升级主机,并通过SSH协议和所述特殊待升级主机建立通信;通过所述rancher平台,将各所述特殊升级微服务文件发送至与所述特殊待升级主机,以供所述特殊待升级主机根据所述特殊升级微服务文件执行更新操作;向与所述第三目标微服务文件对应且已执行更新操作后的特殊待升级主机发送特殊升级启动指令;接收到所有所述特殊待升级主机针对所述特殊升级启动指令反馈的特殊升级部署完成指令,确认所述特殊微服务升级部署信息完成部署,如此,实现了一种仅通过至少两个特殊待升级微服务唯一码和关联的特殊升级版本的特殊微服务升级部署信息,实现了批量升级rancher平台下的所有与所述特殊待升级微服务唯一码相关的特殊待升级主机,简化了查询和升级操作。
在一实施例中,提供一种微服务部署装置,该微服务部署装置与上述实施例中微服务部署方法一一对应。如图4所示,该微服务部署装置包括接收模块11、获取模块12、通信模块13、推送模块14、发送模块15和确认模块16。各功能模块详细说明如下:
接收模块11,用于接收初始化部署指令,获取所述初始化部署指令中的微服务初始化部署信息;所述微服务初始化部署信息包括至少一个主机组数据和与所述主机组数据对应的微服务组数据,一个所述主机组数据包括至少一个主机地址和与所述主机地址对应的主机登录信息,所述微服务组数据包括至少两个微服务唯一码、均与所述微服务唯一码关联的部署版本和部署路径;
获取模块12,用于通过初始scripts脚本,从初始Docker容器中获取与所述微服务唯一码以及所述部署版本均匹配的初始镜像文件,将获取的所述初始镜像文件确定为初始微服务文件;
通信模块13,用于通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机;
推送模块14,用于通过rancher平台,将各所述初始微服务文件推送至与所述初始微服务文件对应的所述初始主机,按照与其相应的存储路径,将经所述初始主机已确认接收的所述初始微服务文件存储为初始目标微服务文件;每个所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述部署路径相同;
发送模块15,用于向与所述初始目标微服务文件对应的初始主机发送初始启动指令;
确认模块16,用于当接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令时,确认所述微服务初始化部署信息完成部署;所述部署完成指令为所述初始主机启动所述初始目标微服务文件之后获得。
在一实施例中,如图5所示,所述确认模块16包括:
接收单元61,用于接收常规升级部署指令,获取所述常规升级部署指令中的常规微服务升级部署信息;所述常规微服务升级部署信息包括至少一个常规待升级主机组数据和与所述常规待升级主机组数据对应的常规待升级微服务组数据,一个所述常规待升级主机组数据包括至少一个常规待升级主机地址和与所述常规待升级主机地址对应的常规待升级主机登录信息,所述常规待升级微服务组数据包括至少两个常规待升级微服务唯一码、均与所述常规待升级微服务唯一码关联的常规升级版本和常规升级路径;
获取单元62,用于通过常规升级scripts脚本,从存新Docker容器中获取与所述常规待升级微服务唯一码以及所述常规升级版本均匹配的新版镜像文件,将获取的所述新版镜像文件确定为新版微服务文件;
通信单元63,用于通过SSH协议,建立和与至少一个所述常规待升级主机地址匹配的常规待升级主机的通信,并且根据与所述常规待升级主机地址对应的所述常规待升级主机登录信息,登录与所述常规待升级主机地址匹配的所述常规待升级主机;
第一发送单元64,用于通过所述rancher平台,发送各个与所述常规待升级微服务唯一码对应的常规停用指令至所述常规待升级主机;
第一反馈单元65,用于通过所述rancher平台,接收到各所述常规待升级主机针对所述常规停用指令反馈的常规停用成功指令之后,将各所述新版微服务文件推送至与所述新版微服务文件对应的所述常规待升级主机,按照与其相应的升级存储路径,将经所述常规待升级主机已确认接收的所述新版微服务文件存储为新版目标微服务文件;每个所述新版目标微服务文件的升级存储路径均与所述新版目标微服务文件对应的所述常规升级路径相同;
第二发送单元66,用于将各所述新版目标微服务文件的常规升级启动指令发送至与所述新版目标微服务文件对应的常规待升级主机;
第二反馈单元67,用于当接收到所有所述常规待升级主机针对所述常规升级启动指令反馈的常规升级部署完成指令时,确认所述常规微服务升级部署信息完成部署;所述常规升级部署完成指令为所述常规待升级主机启动所述新版目标微服务文件之后获得。
关于微服务部署装置的具体限定可以参见上文中对于微服务部署方法的限定,在此不再赘述。上述微服务部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端或者服务端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括可读存储介质、内存储器。该可读存储介质存储有操作系统、计算机程序和数据库。该内存储器为可读存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种微服务部署方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中微服务部署方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中微服务部署方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (8)

1.一种微服务部署方法,其特征在于,包括:
接收初始化部署指令,获取所述初始化部署指令中的微服务初始化部署信息;所述微服务初始化部署信息包括至少一个主机组数据和与所述主机组数据对应的微服务组数据,一个所述主机组数据包括至少一个主机地址和与所述主机地址对应的主机登录信息,所述微服务组数据包括至少两个微服务唯一码、均与所述微服务唯一码关联的部署版本和部署路径;
通过初始scripts脚本,从初始Docker容器中获取与所述微服务唯一码以及所述部署版本均匹配的初始镜像文件,将获取的所述初始镜像文件确定为初始微服务文件;
通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机;
通过rancher平台,将各所述初始微服务文件推送至与所述初始微服务文件对应的所述初始主机,按照与其相应的存储路径,将经所述初始主机已确认接收的所述初始微服务文件存储为初始目标微服务文件;每个所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述部署路径相同;
向与所述初始目标微服务文件对应的初始主机发送初始启动指令;
当接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令时,确认所述微服务初始化部署信息完成部署;所述部署完成指令为所述初始主机启动所述初始目标微服务文件之后获得;
所述接收到所有所述初始主机针对所述启动指令反馈的部署完成指令,确认所述微服务初始化部署信息完成部署之后,包括:
接收特殊升级部署指令,获取所述特殊升级部署指令中的特殊微服务升级部署信息;所述特殊微服务升级部署信息包括至少一个特殊待升级微服务组数据;所述特殊待升级微服务组数据仅包括至少两个特殊待升级微服务唯一码以及与所述特殊待升级微服务唯一码关联的特殊升级版本;
通过特殊升级scripts脚本,从备份Docker容器中获取与所述特殊待升级微服务唯一码以及所述特殊升级版本均匹配的备份镜像文件,将获取的所述备份镜像文件确定为特殊升级微服务文件;
通过所述rancher平台,查询出含有至少一个与所述特殊待升级微服务唯一码关联的特殊待升级主机,并通过SSH协议和所述特殊待升级主机建立通信;所述查询方式为从所述rancher平台的日志中查询与所述特殊待升级微服务唯一码相同且关联的所述特殊待升级主机;
通过所述rancher平台,将各所述特殊升级微服务文件发送至与所述特殊升级微服务文件对应的所述特殊待升级主机,以供所述特殊待升级主机根据所述特殊升级微服务文件执行更新操作;
向与所述特殊升级微服务文件对应且已执行更新操作后的特殊待升级主机发送特殊升级启动指令;
当接收到所有所述特殊待升级主机针对所述特殊升级启动指令反馈的特殊升级部署完成指令时,确认所述特殊微服务升级部署信息完成部署;所述特殊升级部署完成指令为所述特殊待升级主机启动所述特殊升级微服务文件之后获得;
所述通过所述rancher平台,将各所述特殊升级微服务文件发送至与所述特殊升级微服务文件对应的所述特殊待升级主机,以供所述特殊待升级主机根据所述特殊升级微服务文件执行更新操作,包括:
通过所述rancher平台,向各所述特殊待升级主机发送与所述特殊待升级微服务唯一码对应的路径查询指令;
接收到各所述特殊待升级主机针对所述路径查询指令反馈的特殊升级路径;
通过所述rancher平台,发送与所述特殊待升级微服务唯一码对应的特殊停用指令至各所述特殊待升级主机;所述特殊停用指令为所述特殊待升级主机执行后停止运行该指令指定的微服务;
通过所述rancher平台,接收到各所述特殊待升级主机针对所述特殊停用指令反馈的特殊停用成功指令之后,将所述特殊升级微服务文件推送至各与所述特殊升级微服务文件对应的所述特殊待升级主机,并存储至所述特殊升级路径。
2.如权利要求1所述的微服务部署方法,其特征在于,所述接收到所有所述初始主机针对所述启动指令反馈的部署完成指令,确认所述微服务初始化部署信息完成部署之后,包括:
接收常规升级部署指令,获取所述常规升级部署指令中的常规微服务升级部署信息;所述常规微服务升级部署信息包括至少一个常规待升级主机组数据和与所述常规待升级主机组数据对应的常规待升级微服务组数据,一个所述常规待升级主机组数据包括至少一个常规待升级主机地址和与所述常规待升级主机地址对应的常规待升级主机登录信息,所述常规待升级微服务组数据包括至少两个常规待升级微服务唯一码、均与所述常规待升级微服务唯一码关联的常规升级版本和常规升级路径;
通过常规升级scripts脚本,从存新Docker容器中获取与所述常规待升级微服务唯一码以及所述常规升级版本均匹配的新版镜像文件,将获取的所述新版镜像文件确定为新版微服务文件;
通过SSH协议,建立和与至少一个所述常规待升级主机地址匹配的常规待升级主机的通信,并且根据与所述常规待升级主机地址对应的所述常规待升级主机登录信息,登录与所述常规待升级主机地址匹配的所述常规待升级主机;
通过所述rancher平台,发送与所述常规待升级微服务唯一码对应的常规停用指令至各所述常规待升级主机;
通过所述rancher平台,接收到各所述常规待升级主机针对所述常规停用指令反馈的常规停用成功指令之后,将各所述新版微服务文件推送至与所述新版微服务文件对应的所述常规待升级主机,按照与其相应的升级存储路径,将经所述常规待升级主机已确认接收的所述新版微服务文件存储为新版目标微服务文件;每个所述新版目标微服务文件的升级存储路径均与所述新版目标微服务文件对应的所述常规升级路径相同;
将各所述新版目标微服务文件的常规升级启动指令发送至与所述新版目标微服务文件对应的常规待升级主机;
当接收到所有所述常规待升级主机针对所述常规升级启动指令反馈的常规升级部署完成指令时,确认所述常规微服务升级部署信息完成部署;所述常规升级部署完成指令为所述常规待升级主机启动所述新版目标微服务文件之后获得。
3.如权利要求2所述的微服务部署方法,其特征在于,所述确认所述常规微服务升级部署信息完成部署之后,包括:
接收到回退部署指令,所述回退部署指令为所述常规微服务升级部署信息完成部署之后运行出现异常而触发的指令;
通过所述rancher平台,发送与所述常规待升级微服务唯一码对应的回退指令至各所述常规待升级主机;
通过所述rancher平台,接收到各所述常规待升级主机针对所述回退指令反馈的回退执行指令之后,向与回退目标微服务文件对应的常规待升级主机发送回退启动指令;所述回退执行指令为所述常规待升级主机将被确定为回退目标微服务文件的所述新版目标微服务文件进行回退之后获得;
当接收到所有所述常规待升级主机针对所述回退启动指令反馈的回退部署完成指令时,确认所述回退部署指令完成回退部署;所述回退部署完成指令为所述常规待升级主机启动所述回退目标微服务文件之后获得。
4.如权利要求1所述的微服务部署方法,其特征在于,所述通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机,包括:
通过所述SSH协议,查询到与所述主机地址匹配的所述初始主机;
运用xshell工具,生成与当前时间对应的密钥,并向所述初始主机发送连接请求;
接收到所述初始主机根据所述连接请求返回的所述密钥,并将包含接收到的所述密钥的协议发送至所述初始主机,以建立通信;
根据所述主机登录信息,登录所述初始主机。
5.一种微服务部署装置,其特征在于,包括:
接收模块,用于接收初始化部署指令,获取所述初始化部署指令中的微服务初始化部署信息;所述微服务初始化部署信息包括至少一个主机组数据和与所述主机组数据对应的微服务组数据,一个所述主机组数据包括至少一个主机地址和与所述主机地址对应的主机登录信息,所述微服务组数据包括至少两个微服务唯一码、均与所述微服务唯一码关联的部署版本和部署路径;
获取模块,用于通过初始scripts脚本,从初始Docker容器中获取与所述微服务唯一码以及所述部署版本均匹配的初始镜像文件,将获取的所述初始镜像文件确定为初始微服务文件;
通信模块,用于通过SSH协议,建立和与至少一个所述主机地址匹配的初始主机的通信,并且根据与所述主机地址对应的所述主机登录信息,登录与所述主机地址匹配的所述初始主机;
推送模块,用于通过rancher平台,将各所述初始微服务文件推送至与所述初始微服务文件对应的所述初始主机,按照与其相应的存储路径,将经所述初始主机已确认接收的所述初始微服务文件存储为初始目标微服务文件;每个所述初始目标微服务文件的存储路径均与所述初始目标微服务文件对应的所述部署路径相同;
发送模块,用于向与所述初始目标微服务文件对应的初始主机发送初始启动指令;
确认模块,用于当接收到所有所述初始主机针对所述初始启动指令反馈的部署完成指令时,确认所述微服务初始化部署信息完成部署;所述部署完成指令为所述初始主机启动所述初始目标微服务文件之后获得;
所述确认模块还用于:
接收特殊升级部署指令,获取所述特殊升级部署指令中的特殊微服务升级部署信息;所述特殊微服务升级部署信息包括至少一个特殊待升级微服务组数据;所述特殊待升级微服务组数据仅包括至少两个特殊待升级微服务唯一码以及与所述特殊待升级微服务唯一码关联的特殊升级版本;
通过特殊升级scripts脚本,从备份Docker容器中获取与所述特殊待升级微服务唯一码以及所述特殊升级版本均匹配的备份镜像文件,将获取的所述备份镜像文件确定为特殊升级微服务文件;
通过所述rancher平台,查询出含有至少一个与所述特殊待升级微服务唯一码关联的特殊待升级主机,并通过SSH协议和所述特殊待升级主机建立通信;所述查询方式为从所述rancher平台的日志中查询与所述特殊待升级微服务唯一码相同且关联的所述特殊待升级主机;
通过所述rancher平台,将各所述特殊升级微服务文件发送至与所述特殊升级微服务文件对应的所述特殊待升级主机,以供所述特殊待升级主机根据所述特殊升级微服务文件执行更新操作;
向与所述特殊升级微服务文件对应且已执行更新操作后的特殊待升级主机发送特殊升级启动指令;
当接收到所有所述特殊待升级主机针对所述特殊升级启动指令反馈的特殊升级部署完成指令时,确认所述特殊微服务升级部署信息完成部署;所述特殊升级部署完成指令为所述特殊待升级主机启动所述特殊升级微服务文件之后获得;
所述通过所述rancher平台,将各所述特殊升级微服务文件发送至与所述特殊升级微服务文件对应的所述特殊待升级主机,以供所述特殊待升级主机根据所述特殊升级微服务文件执行更新操作,包括:
通过所述rancher平台,向各所述特殊待升级主机发送与所述特殊待升级微服务唯一码对应的路径查询指令;
接收到各所述特殊待升级主机针对所述路径查询指令反馈的特殊升级路径;
通过所述rancher平台,发送与所述特殊待升级微服务唯一码对应的特殊停用指令至各所述特殊待升级主机;所述特殊停用指令为所述特殊待升级主机执行后停止运行该指令指定的微服务;
通过所述rancher平台,接收到各所述特殊待升级主机针对所述特殊停用指令反馈的特殊停用成功指令之后,将所述特殊升级微服务文件推送至各与所述特殊升级微服务文件对应的所述特殊待升级主机,并存储至所述特殊升级路径。
6.如权利要求5所述的微服务部署装置,其特征在于,所述确认模块包括:
接收单元,用于接收常规升级部署指令,获取所述常规升级部署指令中的常规微服务升级部署信息;所述常规微服务升级部署信息包括至少一个常规待升级主机组数据和与所述常规待升级主机组数据对应的常规待升级微服务组数据,一个所述常规待升级主机组数据包括至少一个常规待升级主机地址和与所述常规待升级主机地址对应的常规待升级主机登录信息,所述常规待升级微服务组数据包括至少两个常规待升级微服务唯一码、均与所述常规待升级微服务唯一码关联的常规升级版本和常规升级路径;
获取单元,用于通过常规升级scripts脚本,从存新Docker容器中获取与所述常规待升级微服务唯一码以及所述常规升级版本均匹配的新版镜像文件,将获取的所述新版镜像文件确定为新版微服务文件;
通信单元,用于通过SSH协议,建立和与至少一个所述常规待升级主机地址匹配的常规待升级主机的通信,并且根据与所述常规待升级主机地址对应的所述常规待升级主机登录信息,登录与所述常规待升级主机地址匹配的所述常规待升级主机;
第一发送单元,用于通过所述rancher平台,发送各个与所述常规待升级微服务唯一码对应的常规停用指令至所述常规待升级主机;
第一反馈单元,用于通过所述rancher平台,接收到各所述常规待升级主机针对所述常规停用指令反馈的常规停用成功指令之后,将各所述新版微服务文件推送至与所述新版微服务文件对应的所述常规待升级主机,按照与其相应的升级存储路径,将经所述常规待升级主机已确认接收的所述新版微服务文件存储为新版目标微服务文件;每个所述新版目标微服务文件的升级存储路径均与所述新版目标微服务文件对应的所述常规升级路径相同;
第二发送单元,用于将各所述新版目标微服务文件的常规升级启动指令发送至与所述新版目标微服务文件对应的常规待升级主机;
第二反馈单元,用于当接收到所有所述常规待升级主机针对所述常规升级启动指令反馈的常规升级部署完成指令时,确认所述常规微服务升级部署信息完成部署;所述常规升级部署完成指令为所述常规待升级主机启动所述新版目标微服务文件之后获得。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述微服务部署方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述微服务部署方法。
CN202110482004.8A 2021-04-30 2021-04-30 微服务部署方法、装置、设备及存储介质 Active CN113190327B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110482004.8A CN113190327B (zh) 2021-04-30 2021-04-30 微服务部署方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110482004.8A CN113190327B (zh) 2021-04-30 2021-04-30 微服务部署方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113190327A CN113190327A (zh) 2021-07-30
CN113190327B true CN113190327B (zh) 2023-02-03

Family

ID=76983112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110482004.8A Active CN113190327B (zh) 2021-04-30 2021-04-30 微服务部署方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113190327B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741919A (zh) * 2021-09-18 2021-12-03 中国银行股份有限公司 一种微服务管理方法及装置
CN115442206A (zh) * 2022-08-25 2022-12-06 浪潮云信息技术股份公司 一种在云环境下针对go微服务远程部署的方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109716729A (zh) * 2016-06-14 2019-05-03 希尔戴克斯网络股份有限公司 动态的基于负载的自动缩放网络安全微服务架构

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109358858B (zh) * 2018-09-19 2022-03-22 网易(杭州)网络有限公司 自动化部署方法、装置、介质及电子设备
CN111352635A (zh) * 2019-04-16 2020-06-30 深圳市鸿合创新信息技术有限责任公司 一种部署微服务的方法及装置、电子设备
CN111666080B (zh) * 2020-04-28 2024-05-03 平安科技(深圳)有限公司 微服务集群部署方法、装置、计算机设备及存储介质
CN111866149B (zh) * 2020-07-23 2023-09-05 平安证券股份有限公司 集群部署方法、装置、计算机设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109716729A (zh) * 2016-06-14 2019-05-03 希尔戴克斯网络股份有限公司 动态的基于负载的自动缩放网络安全微服务架构

Also Published As

Publication number Publication date
CN113190327A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
CN113190327B (zh) 微服务部署方法、装置、设备及存储介质
CN111666081B (zh) 基于Git的项目版本发布方法、装置、设备及介质
EP2456257B1 (en) Method and system for upgrading wireless data card
CN111866149B (zh) 集群部署方法、装置、计算机设备及存储介质
CN102609281A (zh) 分布式软件补丁更新方法及系统
GB2532299A (en) Over-the-air updates for BLE devices
CN109714363B (zh) 一种交换机密码修改方法及系统
CN114138296A (zh) 一种多系统网关升级方法、设备以及存储介质
CN113590169A (zh) 应用部署方法、应用部署系统和计算机可读存储介质
CN112130889A (zh) 资源的管理方法和装置、存储介质、电子装置
CN112667272A (zh) 电表升级方法、系统、智能电表及存储介质
EP4195033A1 (en) Method and apparatus for upgrading blockchain system, and terminal device
CN101026488A (zh) 一种分布式数据加载的实现方法及系统
US20230038226A1 (en) Network-based solution module deployment platform
Cisco Install the System Software
CN112669490A (zh) 应急开锁方法、终端设备、服务器及系统
CN113688143B (zh) 具系统设定数据同步功能的服务器
CN101420788B (zh) 一种在移动通信基站系统中通信接口板参数配置方法
CN113285905A (zh) 跨协定控制设备及其跨协定的设备还原方法
CN107844314B (zh) 一种升级Weblogic应用程序的方法及系统
CN117234606B (zh) Bios配置数据的同步方法及装置
CN115167887B (zh) 升级方法、装置、存储介质及电子设备
CN115809096B (zh) 操作系统批量自适应升级方法
CN110519130B (zh) 设备入网方法及系统
CN115827027A (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