WO2021227564A1 - Application automatic delivery system based on container environment - Google Patents

Application automatic delivery system based on container environment Download PDF

Info

Publication number
WO2021227564A1
WO2021227564A1 PCT/CN2021/073966 CN2021073966W WO2021227564A1 WO 2021227564 A1 WO2021227564 A1 WO 2021227564A1 CN 2021073966 W CN2021073966 W CN 2021073966W WO 2021227564 A1 WO2021227564 A1 WO 2021227564A1
Authority
WO
WIPO (PCT)
Prior art keywords
mirror
information
server
application
image
Prior art date
Application number
PCT/CN2021/073966
Other languages
French (fr)
Chinese (zh)
Inventor
罗平
陈海钊
季统凯
贺忠堂
Original Assignee
国云科技股份有限公司
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 国云科技股份有限公司 filed Critical 国云科技股份有限公司
Publication of WO2021227564A1 publication Critical patent/WO2021227564A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Definitions

  • the embodiments of the present application relate to the field of container technology, and in particular, to an application automatic delivery system based on a container environment.
  • microservices enable products to be upgraded and iterated in a more convenient way.
  • Containers a favorable tool for the iterative and deployment of microservice products, as a lightweight application packaging and isolation technology, enable applications to have high security and portability.
  • the container technology adopts continuous integration and continuous deployment methods, which greatly simplifies the development, testing, and deployment processes, accelerates the delivery of products, and is more in line with today's application market for software products that require continuous iteration, rapid deployment, and high reliability.
  • Container technology is an effective tool for microservices of large-scale monolithic applications.
  • the current application methods of microservices containerization on the market mainly highlight the high portability of containerized applications, and only realize the deployment of microservices to Container environment. This method only considers the application itself to simplify the application configuration and avoid the problem of repeated deployment. It does not cause the overhead of the image packaging, import, construction and other processes that are additionally introduced by the container technology. If the technology is not fully utilized, it may bring Continuous delivery, automatic delivery, and rapid deployment advantages.
  • container private mirror warehouses are limited to private clouds. But at present, applications across multiple clouds (public cloud, private cloud, hybrid cloud) are very common. To ensure continuous delivery and continuous deployment, it is necessary to ensure that users support access to private container image warehouses in a multi-cloud environment.
  • the embodiment of the present application provides an application automatic delivery system based on a container environment, which can connect the development environment and the customer environment, so that after software development is completed, it can be automatically deployed to the customer environment to realize continuous delivery deployment.
  • an embodiment of the present application provides an application automatic delivery system based on a container environment, including: a development end, a server end, and an agent end;
  • the development end is used to provide a development environment in which container technology is used to build a central mirror warehouse and a business management module is deployed in the development environment. Manage the access authority of the server;
  • the server is used to provide a customer environment in which container technology is used to build a local mirror warehouse, and a local management module and a mirror synchronization module are deployed in the customer environment.
  • the mirror synchronization module is used to serve as a local management module.
  • Provide a synchronization strategy; the local management module is used to synchronize the mirror information stored on the development end and the server end according to the synchronization strategy of the mirror synchronization module;
  • the agent end is used to provide an application deployment environment, and the agent end is also used to pull image information and script information from the local mirror warehouse, and perform image construction and application deployment on the agent end.
  • the central mirror warehouse is used to receive mirror information and corresponding script information uploaded by the software supplier, and update the version information in the mirror information list according to the mirror information;
  • the service management module obtains the mirror information list, and determines whether the stored mirror version information is consistent with the version information in the mirror information list.
  • the version information is updated to obtain the current mirror version information.
  • said synchronizing the mirroring information stored on the development end and the server end includes:
  • the pulling image information and script information from the local image repository, and performing image construction and application deployment on the agent side includes:
  • the synchronization strategy of the mirror synchronization module includes:
  • the management of the access authority of the server includes:
  • the receiving server sends a mirroring synchronization request and determining whether the corresponding server has access authority according to the mirroring synchronization request, and if so, performing a mirroring synchronization operation.
  • the mirroring synchronization request includes the authority information of the server.
  • the MQ mirror queue is used for communication between the server and the agent, and the HTTP/HTTPS communication protocol is used for communication between the development and the server.
  • the server is set in one or more of a private cloud, a hybrid cloud, or a public cloud.
  • the number of the server and the agent is multiple.
  • the solution of the embodiment of this application builds a central mirror warehouse and a local mirror warehouse in the development environment and the client environment respectively, and controls the mirror synchronization through the management module, so that as soon as a new version of the application is released in the development environment, the client environment will automatically synchronize the mirrors, and the agent When the client detects that the update is triggered, it automatically pulls the image from the mirror warehouse of the server, builds the script, and then deploys a new application. Through this system, automated application deployment can be achieved without additional manual intervention.
  • FIG. 1 is a structural block diagram of an application automatic delivery system based on a container environment provided by an embodiment of the present application;
  • Figure 2 is a flowchart of mirroring synchronization between the development end and the server provided by an embodiment of the present application
  • FIG. 3 is a flowchart of application deployment on the agent side provided by an embodiment of the present application.
  • Fig. 4 is a sequence diagram of a method for automatic application delivery based on a container environment provided by an embodiment of the present application.
  • Containerization will enable microservice applications to have excellent portability, but this only simplifies the application deployment process, and does not fundamentally solve the problem of how to quickly deploy applications in the local development environment to the customer's production environment.
  • the practice of deploying by copying application image files offline completely separates the connection between the customer environment and the development environment, and the process is cumbersome and error-prone.
  • the software provider environment and the customer environment are opened up, and after software development is completed, it can be automatically deployed to the customer environment to realize continuous delivery and deployment.
  • the automatic delivery of the application based on the container environment provided by this application builds a central mirror warehouse and a local mirror warehouse in the development environment and the customer environment, and controls the mirror synchronization through the management module, so as to realize the release of a new version of the application in the development environment.
  • the environment automatically synchronizes the mirror, and when the agent detects that the update is triggered, it automatically pulls the mirror from the mirror warehouse on the server, builds the script, and then deploys a new application.
  • the application deployment process is simple and not prone to errors.
  • FIG. 1 is a structural block diagram of an application automatic delivery system based on a container environment provided by an embodiment of the present application. As shown in FIG. 1, an embodiment of the present application provides an application automatic delivery system based on a container environment, including: a development end , Server and agent;
  • the development end is used to provide a development environment in which container technology is used to build a central mirror warehouse and a business management module is deployed in the development environment.
  • the access authority of the server is managed.
  • the center side refers to the software provider environment, which includes software development, testing, and release, and provides Web UI to manage the central warehouse and customer environment groups. Wait for daily maintenance. It also includes the software supplier releasing the new version of the service image to the local mirror warehouse, creating a service release group, and formulating a planned release strategy.
  • the center end also refers to the development end.
  • service release groups are also created in this embodiment, which means that different customer environments are divided into groups based on customers.
  • the new version of service mirroring will be based on groups to provide mirror synchronization URLs for qualified customer environments.
  • the business management module refers to providing functions including central image management and access authority management.
  • Central mirror warehouse management means that after the software supplier completes the new version of the software update test, he manually pushes the original mirror to the central mirror warehouse, and provides APIs for modifying, querying, and deleting mirror information for page calls.
  • Access rights management means that when the client environment initiates a mirror synchronization request, it first checks the verification conditions, then checks whether it meets the grouping environment, and returns the new version of the mirror information, the mirror update URL, and the mirror build script URL if it meets the requirements. Detecting whether it conforms to the grouping environment refers to the management of permissions.
  • the central mirror repository is used to receive mirror information and corresponding script information uploaded by the software supplier, and update the version information in the mirror information list according to the mirror information.
  • the service management module obtains the mirror information list, and determines whether the stored mirror version information is consistent with the version information in the mirror information list.
  • the version information is updated to obtain the current mirror version information.
  • the above steps are mainly to confirm the current mirror version information on the development side. When the mirror version information is confirmed to be inconsistent, the mirror version information stored on the development side can be updated.
  • the server is used to provide a customer environment in which container technology is used to build a local mirror warehouse, and a local management module and a mirror synchronization module are deployed in the customer environment.
  • the mirror synchronization module is used to serve as a local management module.
  • Provide a synchronization strategy; the local management module is used to synchronize the mirror information stored on the development end and the server end according to the synchronization strategy of the mirror synchronization module.
  • the server side refers to the client environment.
  • the server side does not perceive the existence of the center side.
  • the environment can also complete management work independently.
  • the software supplier can also upload mirroring and other operations on its own to complete the local environment update.
  • the aforementioned mirror warehouses on the Center and Server sides refer to private warehouses built based on container technologies such as Docker.
  • This method uses a registry warehouse running in a docker environment.
  • the center end and the server end communicate through https, and the mirror synchronization strategy adopts the docker-based "pull-push" method, which completely shields the heterogeneous cloud environment deployed at the bottom layer, and only requires network interoperability.
  • the server-side management module refers to a local mirroring module and a mirroring synchronization module.
  • the local mirror management module allows customers to manage mirrors in their environment, providing all the functions and Agent grouping management the same as the Center end except for group management, so that for the customer environment, it also has a logically independent management end.
  • the agent is directly deployed in the application environment which encapsulates the docker client, the server and the agent communicate with MQ mirroring.
  • the mirror synchronization module means that the server side provides manual and automatic upgrade strategies. If the automatic upgrade strategy is selected, the mirror synchronization timer will periodically access the Center to obtain software version information, and then automatically pull the mirror from the Center to the server mirror warehouse based on the URL of the new mirror and script obtained from the Center. During this process, the server side and the center side network interaction is the only requirement, completely cross-cloud (public cloud, private cloud, hybrid cloud).
  • Figure 2 is a flowchart of mirroring synchronization between the development end and the server provided by an embodiment of the present application.
  • the synchronization of the mirror information stored on the development end and the server includes:
  • S102 Determine whether the current image version information is consistent with the image version information stored on the server, and if not, execute the next step;
  • S104 Push the mirror information and the script information to the local mirror warehouse of the server.
  • the above steps are specific mirror synchronization steps.
  • the mirror version is compared on the server first, and then the mirror information in the central mirror repository is pulled. Finally, the image information created by the development side is pulled to the server side.
  • the agent end is used to provide an application deployment environment, and the agent end is also used to pull image information and script information from the local mirror warehouse, and perform image construction and application deployment on the agent end.
  • the solution of this embodiment separately builds a central mirror warehouse and a local mirror warehouse in the development environment of the software provider and the customer environment, and manages the near-in real-time synchronization of the mirrors through the management modules on the center and server sides to realize the release of a new version of the application in the development environment.
  • the customer environment will automatically synchronize the mirroring.
  • the agent side regularly detects that the update is triggered, it automatically pulls the image from the server side warehouse, builds the script, and deploys a new application. Realize the automatic and rapid deployment of applications to the customer environment.
  • FIG. 3 is a flowchart of application deployment on the agent side provided by an embodiment of the present application.
  • the image information and script information are pulled from the local mirror warehouse and performed on the agent side.
  • Image construction and application deployment including:
  • S201 Determine whether the received current mirror version information is consistent with the mirror version information stored on the agent, and if not, execute the next step;
  • S203 Perform image construction according to the image information and perform application deployment according to the script information.
  • the agent side includes the Agent side operation module, which refers to the container operation module integrated with the docker client, and the client's application production environment is deployed in the docker environment.
  • the agent side regularly obtains the new version information and the image and script URL of the application image from the server side. If there is a new version image or a new image, it will pull the image to the local environment and call the startup script to complete the application deployment and update. This process does not require human intervention. , The automation is completed. Through the agent, it is the automatic deployment of the current application without manual intervention.
  • Fig. 4 is a sequence diagram of an application automatic delivery method based on a container environment provided by an embodiment of the present application. As shown in Fig. 4, based on the automatic delivery system of this embodiment, the above-mentioned automatic delivery method mainly includes the following steps:
  • the center management module regularly obtains the docker warehouse image information list
  • the center side obtains the request and returns the central warehouse mirror information list
  • the center end After the center end passes the group permission detection, it returns the image information including the image url and the container instance construction script url;
  • the server compares and updates the center image version information
  • the server pulls mirror images and script requests from the central mirror warehouse
  • the central warehouse on the center side returns mirror images and scripts
  • the server side waits for the upgrade strategy to trigger the agent side image upgrade
  • the agent obtains the mirror information from the server
  • the server side returns the mirroring information
  • the agent compares and updates the server mirror version information
  • the agent pulls images and script requests from the local mirror factory library
  • the server side returns the image and script
  • the agent builds images, executes scripts, and deploys applications. Through the above steps, the application deployment on the client can be realized as soon as the development is completed on the development side.
  • the server side refers to the server side
  • the agent side refers to the agent side
  • the center side refers to the development side.
  • the main improvement points of the application rapid delivery system based on the container environment of this embodiment include: 1. Open up the software provider environment and the customer environment. After software development is completed, it can be automatically deployed to the customer environment to achieve continuous delivery and deployment; 2. Software The supplier can manage all customer environments across the cloud, completely shielding the customer's heterogeneous cloud environment; 3. The entire application is fully automated from delivery to final deployment without additional manual intervention.
  • the solution of this embodiment is based on the docker container technology, it is only required that the platform is compatible with docker, and that the Center end and the Server end are network interoperable.
  • the specific implementation method is that the Center and Server use HTTPS communication, and the mirror synchronization is implemented based on the docker image warehouse registry.
  • the solution of this embodiment implements the "Center, Server, Agent” deployment mode.
  • the Center can manage all client environments in groups, but the Server cannot sense the existence of the Center.
  • “Server, Agent” also constitutes an independent local application delivery management The system ensures the testability and modifiability of the system.
  • the invention provides a rapid application delivery system based on a container environment, which solves the problem of rapid application deployment from a development environment to a customer's production environment, shortens the software development cycle, and reduces operation and maintenance costs.
  • the hierarchical management deployment method of center and server adopted by this system not only realizes the multi-client requirements of development environment management, but also ensures the independence of the use of the customer environment, which has great economic benefits.
  • the technical solution provided by the embodiments of this application is to build a central mirror warehouse and a local mirror warehouse in the development environment and the client environment respectively, and control the mirror synchronization through the management module, so that as soon as a new version of the application is released in the development environment, the client environment automatically synchronizes the mirror. , And when the agent detects that the update is triggered, it automatically pulls the image from the mirror warehouse of the server, builds the script, and then deploys a new application.
  • the system realizes automated application deployment without additional manual intervention.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed is an application automatic delivery system based on a container environment. According to the technical solution provided in embodiments of the present application, a central mirror image repository and a local mirror image repository are respectively built in a development environment and a client environment, and mirror image synchronization is controlled by means of a management module, so that automatic mirror image synchronization is achieved in the client environment once a new version of application is released in the development environment, and when updating is detected to be triggered, a proxy end automatically pulls mirror images from a mirror image repository of a server end, constructs scripts, and then deploys brand-new applications. By means of the system, automatic application deployment can be achieved without extra manual intervention.

Description

一种基于容器环境的应用自动交付系统An application automatic delivery system based on container environment 技术领域Technical field
本申请实施例涉及容器技术领域,尤其涉及一种基于容器环境的应用自动交付系统。The embodiments of the present application relate to the field of container technology, and in particular, to an application automatic delivery system based on a container environment.
背景技术Background technique
目前,传统的单体应用纷纷朝微服务化模式转变,并逐渐成为大型web应用技术迭代更新的方向。微服务由于其轻量化的部署、松耦合服务等技术特点,使得产品能够以一种更加便捷的方式升级、迭代。微服务化产品迭代、部署的有利工具——容器,作为一种轻量级的应用打包、隔离的技术,使应用具备较高安全性、可移植性。容器技术采用持续集成、持续部署方式,极大地简化开发、测试、部署流程,加快产品的交付速度,更加符合当今应用市场对软件产品持续迭代、快速部署、高可靠性的需求。At present, traditional monolithic applications have shifted to a micro-service model, and have gradually become the direction of iterative updates of large-scale web application technologies. Due to its lightweight deployment, loosely coupled services and other technical characteristics, microservices enable products to be upgraded and iterated in a more convenient way. Containers, a favorable tool for the iterative and deployment of microservice products, as a lightweight application packaging and isolation technology, enable applications to have high security and portability. The container technology adopts continuous integration and continuous deployment methods, which greatly simplifies the development, testing, and deployment processes, accelerates the delivery of products, and is more in line with today's application market for software products that require continuous iteration, rapid deployment, and high reliability.
但是,目前容器技术还存在有如下缺陷:However, the current container technology still has the following shortcomings:
一、容器技术是大型单体应用微服务化的一种有效工具,但目前市面上微服务容器化的应用方式,主要突出容器化后应用具有的高度可移植性,仅实现将微服务部署到容器环境。这种方式仅从应用本身考虑到简化应用配置,避免重复部署的问题,并未对由于容器技术额外引入的镜像打包、导入、构建等流程造成的开销,并未充分发挥该技术将可能带来持续交付、自动交付、快速部署优势。1. Container technology is an effective tool for microservices of large-scale monolithic applications. However, the current application methods of microservices containerization on the market mainly highlight the high portability of containerized applications, and only realize the deployment of microservices to Container environment. This method only considers the application itself to simplify the application configuration and avoid the problem of repeated deployment. It does not cause the overhead of the image packaging, import, construction and other processes that are additionally introduced by the container technology. If the technology is not fully utilized, it may bring Continuous delivery, automatic delivery, and rapid deployment advantages.
二、软件开发商与客户之间关于产品持续交付、持续部署的问题,目前业界的通用操作主要分为两步:1、由软件开发商在本地开发、测试、打包镜像,然后将镜像交付给客户运维;2、由客户运维讲过镜像导入、部署。整个过程能够实现基本需求,但缺乏足够便利、操作步骤多、易出错,软件开发与客户之间缺乏一种更加便利的方式为产品的持续部署提供支持。2. With regard to the continuous delivery and continuous deployment of products between software developers and customers, the current industry’s general operations are mainly divided into two steps: 1. The software developers locally develop, test, and package images, and then deliver the images to Customer operation and maintenance; 2. The customer operation and maintenance talked about image import and deployment. The whole process can meet the basic requirements, but lacks sufficient convenience, many operation steps, and error-prone. There is a lack of a more convenient way between software development and customers to provide support for the continuous deployment of products.
三、容器私有镜像仓库的使用,仅限于私有云。但目前应用跨多云(公有云、私有云、混合云)非常普遍,要保证持续交付、持续部署就必须保证对多云环境下,用户对私有容器镜像仓库访问的支持。3. The use of container private mirror warehouses is limited to private clouds. But at present, applications across multiple clouds (public cloud, private cloud, hybrid cloud) are very common. To ensure continuous delivery and continuous deployment, it is necessary to ensure that users support access to private container image warehouses in a multi-cloud environment.
发明内容Summary of the invention
本申请实施例提供一种基于容器环境的应用自动交付系统,其能够打通开发环境与客户环境,使得软件开发完成后即可自动部署到客户环境进而实现持续交付部署。The embodiment of the present application provides an application automatic delivery system based on a container environment, which can connect the development environment and the customer environment, so that after software development is completed, it can be automatically deployed to the customer environment to realize continuous delivery deployment.
在第一方面,本申请实施例提供了一种基于容器环境的应用自动交付系统,包括:开发端、服务端和代理端;In the first aspect, an embodiment of the present application provides an application automatic delivery system based on a container environment, including: a development end, a server end, and an agent end;
所述开发端用于提供开发环境,在所述开发环境中采用容器技术搭建中央镜像仓库以及在所述开发环境中部署业务管理模块,所述业务管理模块用于对中央镜像仓库中镜像信息和服务端的访问权限进行管理;The development end is used to provide a development environment in which container technology is used to build a central mirror warehouse and a business management module is deployed in the development environment. Manage the access authority of the server;
所述服务端用于提供客户环境,在所述客户环境中采用容器技术搭建本地镜像仓库以及在所述客户环境中部署本地管理模块和镜像同步模块,所述镜像同步模块用于为本地管理模块提供同步策略;所述本地管理模块用于根据所述镜像同步模块的同步策略对所述开发端与服务端存储的镜像信息进行同步;The server is used to provide a customer environment in which container technology is used to build a local mirror warehouse, and a local management module and a mirror synchronization module are deployed in the customer environment. The mirror synchronization module is used to serve as a local management module. Provide a synchronization strategy; the local management module is used to synchronize the mirror information stored on the development end and the server end according to the synchronization strategy of the mirror synchronization module;
所述代理端用于提供应用部署环境,所述代理端还用于从所述本地镜像仓库中拉取镜像信息以及脚本信息,并在代理端进行镜像构建以及应用部署。The agent end is used to provide an application deployment environment, and the agent end is also used to pull image information and script information from the local mirror warehouse, and perform image construction and application deployment on the agent end.
进一步的,所述中央镜像仓库用于接收软件供应方上传的镜像信息以及对应的脚本信息,并根据所述镜像信息对镜像信息列表中的版本信息进行更新;Further, the central mirror warehouse is used to receive mirror information and corresponding script information uploaded by the software supplier, and update the version information in the mirror information list according to the mirror information;
对应的,所述业务管理模块获取所述镜像信息列表,并确定其存储的镜像版本信息与所述镜像信息列表中的版本信息是否一致,如果否,则根据所述镜像信息列表对存储的镜像版本信息进行更新得到当前镜像版本信息。Correspondingly, the service management module obtains the mirror information list, and determines whether the stored mirror version information is consistent with the version information in the mirror information list. The version information is updated to obtain the current mirror version information.
进一步的,所述对所述开发端与服务端存储的镜像信息进行同步,包括:Further, said synchronizing the mirroring information stored on the development end and the server end includes:
获取开发端的当前镜像版本信息;Obtain the current image version information of the development end;
确定所述当前镜像版本信息与服务端存储的镜像版本信息是否一致,如果否,则执行下一步;Determine whether the current mirror version information is consistent with the mirror version information stored on the server, and if not, execute the next step;
从所述开发端的中央镜像仓库中拉取对应的镜像信息以及脚本信息;Pull the corresponding image information and script information from the central image repository of the development end;
将所述镜像信息以及所述脚本信息推送至服务端的本地镜像仓库。Push the mirror information and the script information to the local mirror warehouse of the server.
进一步的,所述从所述本地镜像仓库中拉取镜像信息以及脚本信息,并在代理端进行镜像构建以及应用部署,包括:Further, the pulling image information and script information from the local image repository, and performing image construction and application deployment on the agent side includes:
确定接收到的当前镜像版本信息与在代理端存储的镜像版本信息是否一致,如果否,则执行下一步;Determine whether the received current mirror version information is consistent with the mirror version information stored on the agent, if not, proceed to the next step;
从服务端的本地镜像仓库中拉取对应的所述镜像信息以及所述脚本信息;Pull the corresponding image information and the script information from the local image warehouse of the server;
根据所述镜像信息进行镜像构建以及根据所述脚本信息进行应用部署。Perform image construction according to the image information and perform application deployment according to the script information.
进一步的,所述镜像同步模块的同步策略,包括:Further, the synchronization strategy of the mirror synchronization module includes:
每隔预设时间获取开发端的当前镜像版本信息;或,Obtain the current image version information of the development terminal every preset time; or,
在预设时间点获取开发端的当前镜像版本信息。Obtain the current mirror version information of the development terminal at a preset time point.
进一步的,所述对服务端的访问权限进行管理,包括:Further, the management of the access authority of the server includes:
接收服务端发送镜像同步请求并根据所述镜像同步请求确定对应的服务端是否具备访问权限,如果是,则进行镜像同步操作,所述镜像同步请求包括服务端的权限信息。The receiving server sends a mirroring synchronization request and determining whether the corresponding server has access authority according to the mirroring synchronization request, and if so, performing a mirroring synchronization operation. The mirroring synchronization request includes the authority information of the server.
进一步的,所述服务端与代理端之间采用MQ镜像队列进行通信,所述开发端与服务端之间采用HTTP/HTTPS通信协议进行通信。Further, the MQ mirror queue is used for communication between the server and the agent, and the HTTP/HTTPS communication protocol is used for communication between the development and the server.
进一步的,所述服务端设置于私有云、混合云或者公有云中的一种或多种。Further, the server is set in one or more of a private cloud, a hybrid cloud, or a public cloud.
进一步的,所述服务端与代理端的数量为多个。Further, the number of the server and the agent is multiple.
本申请实施例的方案通过在开发环境以及客户环境分别搭建中央镜像仓库、本地镜像仓库,并通过管理模块来控制镜像同步,实现在开发环境一发布新版应用,客户环境就自动同步镜像,且代理端当检测到更新被触发时,自动从服务端的镜像仓库拉取镜像、构建脚本,进而部署全新的应用。通过该系统能够实现自动化应用部署,无需额外人工干预。The solution of the embodiment of this application builds a central mirror warehouse and a local mirror warehouse in the development environment and the client environment respectively, and controls the mirror synchronization through the management module, so that as soon as a new version of the application is released in the development environment, the client environment will automatically synchronize the mirrors, and the agent When the client detects that the update is triggered, it automatically pulls the image from the mirror warehouse of the server, builds the script, and then deploys a new application. Through this system, automated application deployment can be achieved without additional manual intervention.
附图说明Description of the drawings
图1是本申请实施例提供的基于容器环境的应用自动交付系统的结构框图;FIG. 1 is a structural block diagram of an application automatic delivery system based on a container environment provided by an embodiment of the present application;
图2是本申请实施例提供的在开发端和服务端进行镜像同步的流程图;Figure 2 is a flowchart of mirroring synchronization between the development end and the server provided by an embodiment of the present application;
图3是本申请实施例提供的在代理端进行应用部署的流程图;FIG. 3 is a flowchart of application deployment on the agent side provided by an embodiment of the present application;
图4是本申请实施例提供的基于容器环境的应用自动交付方法的时序图。Fig. 4 is a sequence diagram of a method for automatic application delivery based on a container environment provided by an embodiment of the present application.
具体实施方式Detailed ways
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的 处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。In order to make the objectives, technical solutions, and advantages of the present application clearer, specific embodiments of the present application will be described in further detail below with reference to the accompanying drawings. It can be understood that the specific embodiments described here are only used to explain the application, but not to limit the application. In addition, it should be noted that, for ease of description, the drawings only show part of the content related to the present application, but not all of the content. Before discussing the exemplary embodiments in more detail, it should be mentioned that some exemplary embodiments are described as processes or methods depicted as flowcharts. Although the flowchart describes various operations (or steps) as sequential processing, many of the operations can be implemented in parallel, concurrently, or simultaneously. In addition, the order of operations can be rearranged. The processing may be terminated when its operation is completed, but may also have additional steps not included in the drawings. The processing may correspond to methods, functions, procedures, subroutines, subroutines, and so on.
容器化将使得微服务应用具有优异的可移植性,但这仅仅是简化应用部署流程,并未从根本上解决如何将快速的实现本地开发环境上的应用快速部署到客户生产环境问题。目前使用通过离线拷贝应用镜像文件部署这一做法完全割裂客户环境与开发环境之间的联系,流程比较繁琐、易出错。通过本实施例的方法打通软件提供方环境与客户环境,软件开发完成后即可自动部署到客户环境,实现持续交付、部署。Containerization will enable microservice applications to have excellent portability, but this only simplifies the application deployment process, and does not fundamentally solve the problem of how to quickly deploy applications in the local development environment to the customer's production environment. At present, the practice of deploying by copying application image files offline completely separates the connection between the customer environment and the development environment, and the process is cumbersome and error-prone. Through the method of this embodiment, the software provider environment and the customer environment are opened up, and after software development is completed, it can be automatically deployed to the customer environment to realize continuous delivery and deployment.
现有的应用部署大多需要人工辅助来进行部署,进而使得整个过程缺乏足够的便利性。基于此,本申请提供的基于容器环境的应用自动交付通过在开发环境以及客户环境分别搭建中央镜像仓库、本地镜像仓库,并通过管理模块来控制镜像同步,实现在开发环境一发布新版应用,客户环境就自动同步镜像,且代理端当检测到更新被触发时,自动从服务端的镜像仓库拉取镜像、构建脚本,进而部署全新的应用。应用部署流程简单且不易出错。Most of the existing application deployment requires manual assistance for deployment, which makes the entire process lack of sufficient convenience. Based on this, the automatic delivery of the application based on the container environment provided by this application builds a central mirror warehouse and a local mirror warehouse in the development environment and the customer environment, and controls the mirror synchronization through the management module, so as to realize the release of a new version of the application in the development environment. The environment automatically synchronizes the mirror, and when the agent detects that the update is triggered, it automatically pulls the mirror from the mirror warehouse on the server, builds the script, and then deploys a new application. The application deployment process is simple and not prone to errors.
图1是本申请实施例提供的一种基于容器环境的应用自动交付系统的结构框图,如图1所示,本申请实施例提供了一种基于容器环境的应用自动交付系统,包括:开发端、服务端和代理端;FIG. 1 is a structural block diagram of an application automatic delivery system based on a container environment provided by an embodiment of the present application. As shown in FIG. 1, an embodiment of the present application provides an application automatic delivery system based on a container environment, including: a development end , Server and agent;
所述开发端用于提供开发环境,在所述开发环境中采用容器技术搭建中央镜像仓库以及在所述开发环境中部署业务管理模块,所述业务管理模块用于对中央镜像仓库中镜像信息和服务端的访问权限进行管理。The development end is used to provide a development environment in which container technology is used to build a central mirror warehouse and a business management module is deployed in the development environment. The access authority of the server is managed.
在开发端设置有Center端Web UI、Center端业务管理模块、中央镜像仓库,Center端是指软件提供方环境,其包括软件的开发、测试、发布,并提供Web UI管理中央仓库及客户环境分组等日常维护。还包括软件供应方发布新版服务镜像到本地镜像仓库、创建服务发布分组、制定计划性发布策略。在本实施例中center端也即是指的是开发端。On the development side, there are Web UI on the center side, business management modules on the center side, and a central mirror warehouse. The center side refers to the software provider environment, which includes software development, testing, and release, and provides Web UI to manage the central warehouse and customer environment groups. Wait for daily maintenance. It also includes the software supplier releasing the new version of the service image to the local mirror warehouse, creating a service release group, and formulating a planned release strategy. In this embodiment, the center end also refers to the development end.
除了进行管理之外,在本实施例中还创建服务发布分组,是指以客户为单位为不同的客户环境划分分组,新版服务镜像将以分组为单位,为符合条件的客户环境提供镜像同步URL及Version。所述的业务管理模块,是指提供包括 中央镜像管理、访问权限管理等功能。中央镜像仓库管理是指软件供应方完成新版软件更新测试后,手动将原始镜像push到中央镜像仓库,且提供对镜像信息的修改、查询、删除接口API供页面调用。访问权限管理是指当客户环境发起镜像同步请求时,首先检测验证条件,然后检测是否符合分组环境,若符合则返回新版镜像信息及镜像更新URL、镜像构建脚本URL。检测是否符合分组环境指的即是对权限的管理。In addition to management, service release groups are also created in this embodiment, which means that different customer environments are divided into groups based on customers. The new version of service mirroring will be based on groups to provide mirror synchronization URLs for qualified customer environments. And Version. The business management module refers to providing functions including central image management and access authority management. Central mirror warehouse management means that after the software supplier completes the new version of the software update test, he manually pushes the original mirror to the central mirror warehouse, and provides APIs for modifying, querying, and deleting mirror information for page calls. Access rights management means that when the client environment initiates a mirror synchronization request, it first checks the verification conditions, then checks whether it meets the grouping environment, and returns the new version of the mirror information, the mirror update URL, and the mirror build script URL if it meets the requirements. Detecting whether it conforms to the grouping environment refers to the management of permissions.
进一步的,所述中央镜像仓库用于接收软件供应方上传的镜像信息以及对应的脚本信息,并根据所述镜像信息对镜像信息列表中的版本信息进行更新。Further, the central mirror repository is used to receive mirror information and corresponding script information uploaded by the software supplier, and update the version information in the mirror information list according to the mirror information.
对应的,所述业务管理模块获取所述镜像信息列表,并确定其存储的镜像版本信息与所述镜像信息列表中的版本信息是否一致,如果否,则根据所述镜像信息列表对存储的镜像版本信息进行更新得到当前镜像版本信息。上述步骤主要是在开发端对当前镜像版本信息进行确认,当镜像版本信息确认不一致时,可以对在开发端存储的镜像版本信息进行更新。Correspondingly, the service management module obtains the mirror information list, and determines whether the stored mirror version information is consistent with the version information in the mirror information list. The version information is updated to obtain the current mirror version information. The above steps are mainly to confirm the current mirror version information on the development side. When the mirror version information is confirmed to be inconsistent, the mirror version information stored on the development side can be updated.
所述服务端用于提供客户环境,在所述客户环境中采用容器技术搭建本地镜像仓库以及在所述客户环境中部署本地管理模块和镜像同步模块,所述镜像同步模块用于为本地管理模块提供同步策略;所述本地管理模块用于根据所述镜像同步模块的同步策略对所述开发端与服务端存储的镜像信息进行同步。The server is used to provide a customer environment in which container technology is used to build a local mirror warehouse, and a local management module and a mirror synchronization module are deployed in the customer environment. The mirror synchronization module is used to serve as a local management module. Provide a synchronization strategy; the local management module is used to synchronize the mirror information stored on the development end and the server end according to the synchronization strategy of the mirror synchronization module.
Server端是指客户环境,Server端感知不到Center端的存在,环境也可独立完成管理工作,软件供应方也可自行上传镜像等操作,完成本地环境更新。The server side refers to the client environment. The server side does not perceive the existence of the center side. The environment can also complete management work independently. The software supplier can also upload mirroring and other operations on its own to complete the local environment update.
所述的Center、Server端的镜像仓库,是指基于Docker等容器技术,搭建的私有仓库,本方法使用运行在docker环境下的registry仓库。Center端与Server端之间通过https进行通信,镜像同步策略采用基于docker的“pull-push”方式,完全屏蔽底层部署的异构云环境,仅要求网络互通。The aforementioned mirror warehouses on the Center and Server sides refer to private warehouses built based on container technologies such as Docker. This method uses a registry warehouse running in a docker environment. The center end and the server end communicate through https, and the mirror synchronization strategy adopts the docker-based "pull-push" method, which completely shields the heterogeneous cloud environment deployed at the bottom layer, and only requires network interoperability.
所述的Server端管理模块,是指本地镜像模块、镜像同步模块。本地镜像管理模块允许客户在其环境管理镜像,提供与Center端同样的除分组管理外的所有功能、Agent分组管理,这样对于客户环境来说,也具备一个逻辑上独立的管理端。Agent端直接部署在应用环境是哪个封装docker客户端,Server端与Agent端采用MQ镜像通信。The server-side management module refers to a local mirroring module and a mirroring synchronization module. The local mirror management module allows customers to manage mirrors in their environment, providing all the functions and Agent grouping management the same as the Center end except for group management, so that for the customer environment, it also has a logically independent management end. The agent is directly deployed in the application environment which encapsulates the docker client, the server and the agent communicate with MQ mirroring.
镜像同步模块,是指Server端提供手动、自动两种升级策略。选择自动升级策略,则镜像同步定时器将定时访问Center获取软件版本信息,则自动根据从Center端获取新镜像、脚本的url,将镜像从Center拉取到Server端镜像 仓库。此过程中,Server端与Center端网络互动是唯一要求,完全做到跨云(公有云、私有云、混合云)。The mirror synchronization module means that the server side provides manual and automatic upgrade strategies. If the automatic upgrade strategy is selected, the mirror synchronization timer will periodically access the Center to obtain software version information, and then automatically pull the mirror from the Center to the server mirror warehouse based on the URL of the new mirror and script obtained from the Center. During this process, the server side and the center side network interaction is the only requirement, completely cross-cloud (public cloud, private cloud, hybrid cloud).
如图2所示,图2是本申请实施例提供的在开发端和服务端进行镜像同步的流程图,所述对所述开发端与服务端存储的镜像信息进行同步,包括:As shown in Figure 2, Figure 2 is a flowchart of mirroring synchronization between the development end and the server provided by an embodiment of the present application. The synchronization of the mirror information stored on the development end and the server includes:
S101:获取开发端的当前镜像版本信息;S101: Obtain the current image version information of the development end;
S102:确定所述当前镜像版本信息与服务端存储的镜像版本信息是否一致,如果否,则执行下一步;S102: Determine whether the current image version information is consistent with the image version information stored on the server, and if not, execute the next step;
S103:从所述开发端的中央镜像仓库中拉取对应的镜像信息以及脚本信息;S103: Pull the corresponding mirror information and script information from the central mirror warehouse of the development end;
S104:将所述镜像信息以及所述脚本信息推送至服务端的本地镜像仓库。S104: Push the mirror information and the script information to the local mirror warehouse of the server.
上述步骤为具体的镜像同步步骤,先在服务端进行镜像版本的比对然后在对中央镜像仓库中的镜像信息进行拉取。最终将开发端创建的镜像信息拉取到服务端。The above steps are specific mirror synchronization steps. The mirror version is compared on the server first, and then the mirror information in the central mirror repository is pulled. Finally, the image information created by the development side is pulled to the server side.
所述代理端用于提供应用部署环境,所述代理端还用于从所述本地镜像仓库中拉取镜像信息以及脚本信息,并在代理端进行镜像构建以及应用部署。本实施例的方案分别在软件提供方的开发环境及客户环境分别搭建一个中央镜像仓库、本地镜像仓库,通过center端、server端的管理模块分别管理镜像近进实时同步,实现开发环境一发布新版应用、客户环境就自动同步镜像。agent端定时检测到更新被触发时,则自动从server端仓库拉取镜像、构建脚本,部署全新的应用。实现应用自动、快速化部署到客户环境。The agent end is used to provide an application deployment environment, and the agent end is also used to pull image information and script information from the local mirror warehouse, and perform image construction and application deployment on the agent end. The solution of this embodiment separately builds a central mirror warehouse and a local mirror warehouse in the development environment of the software provider and the customer environment, and manages the near-in real-time synchronization of the mirrors through the management modules on the center and server sides to realize the release of a new version of the application in the development environment. , The customer environment will automatically synchronize the mirroring. When the agent side regularly detects that the update is triggered, it automatically pulls the image from the server side warehouse, builds the script, and deploys a new application. Realize the automatic and rapid deployment of applications to the customer environment.
进一步的,如图3所示,图3是本申请实施例提供的在代理端进行应用部署的流程图,所述从所述本地镜像仓库中拉取镜像信息以及脚本信息,并在代理端进行镜像构建以及应用部署,包括:Further, as shown in FIG. 3, FIG. 3 is a flowchart of application deployment on the agent side provided by an embodiment of the present application. The image information and script information are pulled from the local mirror warehouse and performed on the agent side. Image construction and application deployment, including:
S201:确定接收到的当前镜像版本信息与在代理端存储的镜像版本信息是否一致,如果否,则执行下一步;S201: Determine whether the received current mirror version information is consistent with the mirror version information stored on the agent, and if not, execute the next step;
S202:从服务端的本地镜像仓库中拉取对应的所述镜像信息以及所述脚本信息;S202: Pull the corresponding mirror information and the script information from the local mirror warehouse of the server;
S203:根据所述镜像信息进行镜像构建以及根据所述脚本信息进行应用部署。S203: Perform image construction according to the image information and perform application deployment according to the script information.
代理端包括Agent端操作模块,是指集成docker客户端的容器操作模块,客户的应用生产环境均部署在docker环境。Agent端定时从Server端获取应用镜像新的版本信息及镜像、脚本url,若存在新版镜像和全新镜像则将镜像 拉到本地环境,并调用启动脚本完成应用部署、更新,此过程完全无需人为干预,自动化完成。通过代理端是是现应用的自动部署,无需人工干预。The agent side includes the Agent side operation module, which refers to the container operation module integrated with the docker client, and the client's application production environment is deployed in the docker environment. The agent side regularly obtains the new version information and the image and script URL of the application image from the server side. If there is a new version image or a new image, it will pull the image to the local environment and call the startup script to complete the application deployment and update. This process does not require human intervention. , The automation is completed. Through the agent, it is the automatic deployment of the current application without manual intervention.
图4是本申请实施例提供的基于容器环境的应用自动交付方法的时序图,如图4所示,基于本实施例的自动交付系统,上述自动交付方法其主要包括有如下步骤:Fig. 4 is a sequence diagram of an application automatic delivery method based on a container environment provided by an embodiment of the present application. As shown in Fig. 4, based on the automatic delivery system of this embodiment, the above-mentioned automatic delivery method mainly includes the following steps:
软件开发人员将开发完成的应用及脚本打包成docker镜像push到center镜像仓库;Software developers package the developed applications and scripts into docker images and push them to the center image warehouse;
center端管理模块定时获取docker仓库镜像信息列表;The center management module regularly obtains the docker warehouse image information list;
center端获取请求,并返回中央仓库镜像信息列表;The center side obtains the request and returns the central warehouse mirror information list;
center比较数据库中镜像版本信息、有不存在的则更新;center compares the mirror version information in the database, and updates if there is no existing version;
server定时获取center镜像信息请求;Server regularly obtains center mirroring information request;
center端通过分组权限检测后返回镜像信息包括镜像url、容器实例构建脚本url;After the center end passes the group permission detection, it returns the image information including the image url and the container instance construction script url;
server比较center镜像版本信息并更新;The server compares and updates the center image version information;
server从中央镜像仓库pull镜像、脚本请求;The server pulls mirror images and script requests from the central mirror warehouse;
center端中央仓库返回镜像、脚本;The central warehouse on the center side returns mirror images and scripts;
server端push镜像到本地镜像仓库;Push the mirror on the server side to the local mirror warehouse;
server端等待升级策略触发agent端镜像升级;The server side waits for the upgrade strategy to trigger the agent side image upgrade;
agent从server端获取镜像信息;The agent obtains the mirror information from the server;
server端返回镜像信息;The server side returns the mirroring information;
agent比较server镜像版本信息并更新;The agent compares and updates the server mirror version information;
agent从本地镜像厂库pull镜像及脚本请求;The agent pulls images and script requests from the local mirror factory library;
server端返回镜像、脚本;The server side returns the image and script;
agent构建镜像、执行脚本、部署应用。通过上述步骤能够实现在开发端一完成开发即可在实现在客户端的应用部署。本实施例中,server端指的是服务端,agent端指的是代理端,center端指的是开发端。The agent builds images, executes scripts, and deploys applications. Through the above steps, the application deployment on the client can be realized as soon as the development is completed on the development side. In this embodiment, the server side refers to the server side, the agent side refers to the agent side, and the center side refers to the development side.
本实施例的基于容器环境的应用快速交付系统,主要改进点包括:一、打通软件提供方环境与客户环境,软件开发完成后即可自动部署到客户环境,实现持续交付、部署;二、软件供应方可跨云管理所有客户环境,完全屏蔽客户的异构云环境;三、整个应用从交付到最终部署,完全实现自动化,无需人工额外干预。The main improvement points of the application rapid delivery system based on the container environment of this embodiment include: 1. Open up the software provider environment and the customer environment. After software development is completed, it can be automatically deployed to the customer environment to achieve continuous delivery and deployment; 2. Software The supplier can manage all customer environments across the cloud, completely shielding the customer's heterogeneous cloud environment; 3. The entire application is fully automated from delivery to final deployment without additional manual intervention.
本实施例的方案由于是基于docker容器技术,因此,只要求平台兼容docker,且Center端、Server端网络互通即可。具体实现方式,Center端、Server端使用HTTPS通信,镜像同步是基于docker镜像仓库registry来实现,通过上述方式完全屏蔽了应用部署的异构云环境或者物理环境,具备高性能、保证安全性。Since the solution of this embodiment is based on the docker container technology, it is only required that the platform is compatible with docker, and that the Center end and the Server end are network interoperable. The specific implementation method is that the Center and Server use HTTPS communication, and the mirror synchronization is implemented based on the docker image warehouse registry. Through the above method, the heterogeneous cloud environment or physical environment for application deployment is completely shielded, with high performance and guaranteed security.
本实施例的方案实现“Center、Server、Agent”部署模式,Center端可以分组管理所有客户环境Server端,但Server端无法感知Center端存在,“Server、Agent”同样构成一个独立的本地应用交付管理系统,保证了系统可测试性、可修改性。The solution of this embodiment implements the "Center, Server, Agent" deployment mode. The Center can manage all client environments in groups, but the Server cannot sense the existence of the Center. "Server, Agent" also constitutes an independent local application delivery management The system ensures the testability and modifiability of the system.
本发明提供了一种基于容器环境的应用快速交付系统,解决了开发环境到客户生产环境的应用快速部署问题,缩短了软件开发周期,降低运维成本。且本系统所采用的center、server这种层级管理部署方式即实现开发环境管理多客户端需求,又保证了客户环境的使用独立性,具有较大的经济效益。The invention provides a rapid application delivery system based on a container environment, which solves the problem of rapid application deployment from a development environment to a customer's production environment, shortens the software development cycle, and reduces operation and maintenance costs. In addition, the hierarchical management deployment method of center and server adopted by this system not only realizes the multi-client requirements of development environment management, but also ensures the independence of the use of the customer environment, which has great economic benefits.
本申请实施例提供的技术方案,通过在开发环境以及客户环境分别搭建中央镜像仓库、本地镜像仓库,并通过管理模块来控制镜像同步,实现在开发环境一发布新版应用,客户环境就自动同步镜像,且代理端当检测到更新被触发时,自动从服务端的镜像仓库拉取镜像、构建脚本,进而部署全新的应用。通过该系统实现自动化应用部署,无需额外人工干预。The technical solution provided by the embodiments of this application is to build a central mirror warehouse and a local mirror warehouse in the development environment and the client environment respectively, and control the mirror synchronization through the management module, so that as soon as a new version of the application is released in the development environment, the client environment automatically synchronizes the mirror. , And when the agent detects that the update is triggered, it automatically pulls the image from the mirror warehouse of the server, builds the script, and then deploys a new application. The system realizes automated application deployment without additional manual intervention.
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。The above are only the preferred embodiments of the present application and the technical principles used. The application is not limited to the specific embodiments described herein, and various obvious changes, readjustments and substitutions that can be made by those skilled in the art will not depart from the protection scope of the application. Therefore, although the application has been described in more detail through the above embodiments, the application is not limited to the above embodiments, and can also include more other equivalent embodiments without departing from the concept of the application. The scope of is determined by the scope of the claims.

Claims (10)

  1. 一种基于容器环境的应用自动交付系统,其特征在于,包括:开发端、服务端和代理端;An application automatic delivery system based on a container environment, which is characterized by including: a development end, a server end and an agent end;
    所述开发端用于提供开发环境,在所述开发环境中采用容器技术搭建中央镜像仓库以及在所述开发环境中部署业务管理模块,所述业务管理模块用于对中央镜像仓库中镜像信息和服务端的访问权限进行管理;The development end is used to provide a development environment in which container technology is used to build a central mirror warehouse and a business management module is deployed in the development environment. Manage the access authority of the server;
    所述服务端用于提供客户环境,在所述客户环境中采用容器技术搭建本地镜像仓库以及在所述客户环境中部署本地管理模块和镜像同步模块,所述镜像同步模块用于为本地管理模块提供同步策略;所述本地管理模块用于根据所述镜像同步模块的同步策略对所述开发端与服务端存储的镜像信息进行同步;The server is used to provide a customer environment in which container technology is used to build a local mirror warehouse, and a local management module and a mirror synchronization module are deployed in the customer environment. The mirror synchronization module is used to serve as a local management module. Provide a synchronization strategy; the local management module is used to synchronize the mirror information stored on the development end and the server end according to the synchronization strategy of the mirror synchronization module;
    所述代理端用于提供应用部署环境,所述代理端还用于从所述本地镜像仓库中拉取镜像信息以及脚本信息,并在代理端进行镜像构建以及应用部署。The agent end is used to provide an application deployment environment, and the agent end is also used to pull image information and script information from the local mirror warehouse, and perform image construction and application deployment on the agent end.
  2. 根据权利要求1所述的基于容器环境的应用自动交付系统,其特征在于,所述中央镜像仓库用于接收软件供应方上传的镜像信息以及对应的脚本信息,并根据所述镜像信息对镜像信息列表中的版本信息进行更新;The application automatic delivery system based on the container environment according to claim 1, wherein the central mirror warehouse is used to receive mirror information and corresponding script information uploaded by a software supplier, and to pair the mirror information according to the mirror information. Update the version information in the list;
    对应的,所述业务管理模块获取所述镜像信息列表,并确定其存储的镜像版本信息与所述镜像信息列表中的版本信息是否一致,如果否,则根据所述镜像信息列表对存储的镜像版本信息进行更新得到当前镜像版本信息。Correspondingly, the service management module obtains the mirror information list, and determines whether the stored mirror version information is consistent with the version information in the mirror information list. The version information is updated to obtain the current mirror version information.
  3. 根据权利要求1所述的基于容器环境的应用自动交付系统,其特征在于,所述对所述开发端与服务端存储的镜像信息进行同步,包括:The application automatic delivery system based on a container environment according to claim 1, wherein said synchronizing the image information stored on the development end and the server end comprises:
    获取开发端的当前镜像版本信息;Obtain the current image version information of the development end;
    确定所述当前镜像版本信息与服务端存储的镜像版本信息是否一致,如果否,则执行下一步;Determine whether the current mirror version information is consistent with the mirror version information stored on the server, and if not, execute the next step;
    从所述开发端的中央镜像仓库中拉取对应的镜像信息以及脚本信息;Pull the corresponding image information and script information from the central image repository of the development end;
    将所述镜像信息以及所述脚本信息推送至服务端的本地镜像仓库。Push the mirror information and the script information to the local mirror warehouse of the server.
  4. 根据权利要求3所述的基于容器环境的应用自动交付系统,其特征在于,所述从所述本地镜像仓库中拉取镜像信息以及脚本信息,并在代理端进行镜像构建以及应用部署,包括:The application automatic delivery system based on a container environment according to claim 3, wherein the pulling image information and script information from the local image repository, and performing image construction and application deployment on the agent side, comprises:
    确定接收到的当前镜像版本信息与在代理端存储的镜像版本信息是否一致,如果否,则执行下一步;Determine whether the received current mirror version information is consistent with the mirror version information stored on the agent, if not, proceed to the next step;
    从服务端的本地镜像仓库中拉取对应的所述镜像信息以及所述脚本信息;Pull the corresponding image information and the script information from the local image warehouse of the server;
    根据所述镜像信息进行镜像构建以及根据所述脚本信息进行应用部署。Perform image construction according to the image information and perform application deployment according to the script information.
  5. 根据权利要求4所述的基于容器环境的应用自动交付系统,其特征在于,所述镜像同步模块的同步策略,包括:The application automatic delivery system based on a container environment according to claim 4, wherein the synchronization strategy of the mirror synchronization module includes:
    每隔预设时间获取开发端的当前镜像版本信息;或,Obtain the current image version information of the developer terminal every preset time; or,
    在预设时间点获取开发端的当前镜像版本信息。Obtain the current mirror version information of the development terminal at a preset time point.
  6. 根据权利要求1所述的基于容器环境的应用自动交付系统,其特征在于,对所述服务端的访问权限进行管理,包括:The application automatic delivery system based on a container environment according to claim 1, wherein the management of the access authority of the server includes:
    接收服务端发送镜像同步请求并根据所述镜像同步请求确定对应的服务端是否具备访问权限,如果是,则进行镜像同步操作,所述镜像同步请求包括服务端的权限信息。The receiving server sends a mirroring synchronization request and determining whether the corresponding server has access authority according to the mirroring synchronization request, and if so, performing a mirroring synchronization operation. The mirroring synchronization request includes the authority information of the server.
  7. 根据权利要求1-6中任意一项所述的基于容器环境的应用自动交付系统,其特征在于,所述服务端与代理端之间采用MQ镜像队列进行通信,所述开发端与服务端之间采用HTTP/HTTPS通信协议进行通信。The application automatic delivery system based on a container environment according to any one of claims 1-6, wherein the MQ mirror queue is used for communication between the server and the agent, and the development and the server are different from each other. Use HTTP/HTTPS communication protocol to communicate between.
  8. 根据权利要求1-6中任意一项所述的基于容器环境的应用自动交付系统,其特征在于,所述业务管理模块还用于提供对镜像信息的修改、查询和删除的应用程序接口以供用户进行调用。The application automatic delivery system based on a container environment according to any one of claims 1-6, wherein the service management module is also used to provide an application program interface for modifying, querying, and deleting image information for The user makes the call.
  9. 根据权利要求1-6中任意一项所述的基于容器环境的应用自动交付系统,其特征在于,所述服务端设置于私有云、混合云或者公有云中的一种或多种。The application automatic delivery system based on a container environment according to any one of claims 1-6, wherein the server is set in one or more of a private cloud, a hybrid cloud, or a public cloud.
  10. 根据权利要求1-6中任意一项所述的基于容器环境的应用自动交付系统,其特征在于,所述服务端与代理端的数量为多个。The application automatic delivery system based on a container environment according to any one of claims 1-6, wherein the number of the server and the agent is multiple.
PCT/CN2021/073966 2020-05-13 2021-01-27 Application automatic delivery system based on container environment WO2021227564A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202010404059.2 2020-05-13
CN202010404059 2020-05-13
CN202010449883.X 2020-05-25
CN202010449883.XA CN111654533A (en) 2020-05-13 2020-05-25 Application automatic delivery system based on container environment

Publications (1)

Publication Number Publication Date
WO2021227564A1 true WO2021227564A1 (en) 2021-11-18

Family

ID=72349563

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/073966 WO2021227564A1 (en) 2020-05-13 2021-01-27 Application automatic delivery system based on container environment

Country Status (2)

Country Link
CN (1) CN111654533A (en)
WO (1) WO2021227564A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114995841A (en) * 2022-07-18 2022-09-02 浩鲸云计算科技股份有限公司 Method and system for realizing extremely simple upgrading of database cloud service
CN115134141A (en) * 2022-06-27 2022-09-30 贵州数联铭品科技有限公司 Micro-service container cluster cross-network communication system and communication method thereof
CN115756733A (en) * 2023-01-10 2023-03-07 北京数原数字化城市研究中心 Container mirror image calling system and container mirror image calling method
CN116450153A (en) * 2023-04-26 2023-07-18 北京计算机技术及应用研究所 Rapid deployment method for containerized simulation platform
WO2023142924A1 (en) * 2022-01-29 2023-08-03 京东方科技集团股份有限公司 Electronic map operation and maintenance method, electronic map data use method and service system
CN116737839A (en) * 2023-08-10 2023-09-12 中国电子投资控股有限公司 Product synchronization method under network limitation condition

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111654533A (en) * 2020-05-13 2020-09-11 国云科技股份有限公司 Application automatic delivery system based on container environment
CN113157392B (en) * 2021-04-09 2022-10-04 上海云轴信息科技有限公司 High-availability method and equipment for mirror image warehouse
CN113094069B (en) * 2021-04-16 2024-02-09 中国工商银行股份有限公司 Method and device for upgrading image warehouse
CN115297111B (en) * 2022-07-15 2023-10-24 东风汽车集团股份有限公司 System, method and medium for managing and submitting vulnerabilities of Internet of vehicles

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106873975A (en) * 2016-12-30 2017-06-20 武汉默联股份有限公司 Devops based on Docker persistently pays and automated system and method
CN109358858A (en) * 2018-09-19 2019-02-19 网易(杭州)网络有限公司 Automatically dispose method, apparatus, medium and electronic equipment
CN109600269A (en) * 2019-01-21 2019-04-09 云南电网有限责任公司信息中心 A kind of cloud management platform based on DCOS
CN110399134A (en) * 2019-06-28 2019-11-01 绿漫科技有限公司 A kind of quick deployment method and system based on container
US10623386B1 (en) * 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
CN111654533A (en) * 2020-05-13 2020-09-11 国云科技股份有限公司 Application automatic delivery system based on container environment

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066310A (en) * 2017-03-11 2017-08-18 郑州云海信息技术有限公司 It is a kind of to build and using the method and device in the privately owned warehouses of safe Docker
CN109391664B (en) * 2017-08-11 2021-04-20 中国电信股份有限公司 System and method for multi-cluster container deployment
US10642703B2 (en) * 2017-11-30 2020-05-05 International Business Machines Corporation Configuring a secondary storage system for data mirroring
CN110908671A (en) * 2018-09-18 2020-03-24 北京京东尚科信息技术有限公司 Method and device for constructing docker mirror image and computer readable storage medium
CN110336699A (en) * 2019-07-09 2019-10-15 北京和利时智能技术有限公司 The method, apparatus and system of automatically dispose gateway system
CN110502268A (en) * 2019-08-29 2019-11-26 恩亿科(北京)数据科技有限公司 Application program update method, apparatus, server and storage medium

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10623386B1 (en) * 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
CN106873975A (en) * 2016-12-30 2017-06-20 武汉默联股份有限公司 Devops based on Docker persistently pays and automated system and method
CN109358858A (en) * 2018-09-19 2019-02-19 网易(杭州)网络有限公司 Automatically dispose method, apparatus, medium and electronic equipment
CN109600269A (en) * 2019-01-21 2019-04-09 云南电网有限责任公司信息中心 A kind of cloud management platform based on DCOS
CN110399134A (en) * 2019-06-28 2019-11-01 绿漫科技有限公司 A kind of quick deployment method and system based on container
CN111654533A (en) * 2020-05-13 2020-09-11 国云科技股份有限公司 Application automatic delivery system based on container environment

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023142924A1 (en) * 2022-01-29 2023-08-03 京东方科技集团股份有限公司 Electronic map operation and maintenance method, electronic map data use method and service system
CN115134141A (en) * 2022-06-27 2022-09-30 贵州数联铭品科技有限公司 Micro-service container cluster cross-network communication system and communication method thereof
CN115134141B (en) * 2022-06-27 2023-10-03 贵州数联铭品科技有限公司 Micro-service container cluster cross-network communication system and communication method thereof
CN114995841A (en) * 2022-07-18 2022-09-02 浩鲸云计算科技股份有限公司 Method and system for realizing extremely simple upgrading of database cloud service
CN115756733A (en) * 2023-01-10 2023-03-07 北京数原数字化城市研究中心 Container mirror image calling system and container mirror image calling method
CN116450153A (en) * 2023-04-26 2023-07-18 北京计算机技术及应用研究所 Rapid deployment method for containerized simulation platform
CN116450153B (en) * 2023-04-26 2023-11-24 北京计算机技术及应用研究所 Rapid deployment method for containerized simulation platform
CN116737839A (en) * 2023-08-10 2023-09-12 中国电子投资控股有限公司 Product synchronization method under network limitation condition

Also Published As

Publication number Publication date
CN111654533A (en) 2020-09-11

Similar Documents

Publication Publication Date Title
WO2021227564A1 (en) Application automatic delivery system based on container environment
WO2021232845A1 (en) Container-based image updating and distribution method, and apparatus
US11093227B1 (en) Computer-automated software release and deployment architecture
US11157253B1 (en) Computer-automated software release and deployment architecture
US8146073B2 (en) Updating software while it is running
US8918513B2 (en) Network resource deployment for cloud-based services
RU2417416C2 (en) Solution deployment in server farm
US20200004570A1 (en) Dynamically scaled hyperconverged system
US9047163B2 (en) Managing the distribution of client packages
US8230416B2 (en) System, method and article of manufacture for using shadow installations of software modules during distributed system upgrade
CN112527349A (en) Dynamic deployment strategy optimization and continuous deployment service guarantee system
CN102648448A (en) Provisioning and managing replicated data instances
CN112019610B (en) Cloud edge cooperation method and system
CN105426208A (en) OpenStack offline automatic installation method of cloud computing system
US20220103555A1 (en) Service deployment method, device, system, and computer-readable storage medium
WO2018033094A1 (en) Rich communication suite release platform, method and system for version update, and mobile terminal
US11269613B2 (en) Software platform upgrades
EP4050850A1 (en) Service upgrading method, device and system
US20220326929A1 (en) Automated delivery of cloud native application updates using one or more user-connection gateways
CN109992295B (en) Version management method and server
CN112966833A (en) Machine learning model platform based on Kubernetes cluster
US20230118880A1 (en) Copying computing resources between execution environments
CN111459530A (en) Patching method, device and storage medium
CN111427605B (en) Distributed code automatic updating and deploying method and system based on docker
CN115426370A (en) Heterogeneous container cloud platform and edge manufacturing service subscription implementation method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21804614

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21804614

Country of ref document: EP

Kind code of ref document: A1