CN116603245A - 程序版本调整方法、装置、设备及可读存储介质 - Google Patents
程序版本调整方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116603245A CN116603245A CN202310899506.XA CN202310899506A CN116603245A CN 116603245 A CN116603245 A CN 116603245A CN 202310899506 A CN202310899506 A CN 202310899506A CN 116603245 A CN116603245 A CN 116603245A
- Authority
- CN
- China
- Prior art keywords
- version
- program
- target
- application program
- package
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 130
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000007726 management method Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 10
- 238000010276 construction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 6
- 230000018109 developmental process Effects 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000008531 maintenance mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提出了一种程序版本调整方法、装置、设备及可读存储介质,可应用于云技术、云游戏、人工智能等领域或场景,该方法包括:响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识;根据版本标识从镜像仓库获取目标版本的应用程序对应的目标镜像,目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据;根据程序运行环境镜像数据构建目标版本的应用程序的运行环境容器;从云存储空间获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本,并在运行环境容器中运行目标版本的应用程序。通过本申请实施例,可以提高应用程序版本调整的效率和灵活性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及程序版本调整方法、装置、设备及可读存储介质。
背景技术
在网络游戏的运营过程中,游戏服务器需要不断的进行更新维护,如版本更新、版本切换等版本调整,以便于为玩家提供更加优质的游戏服务。而网络游戏作为一种即时在线的网络服务,其游戏服务器的更新维护机制是否高效灵活,极大程度的影响游戏服务质量,决定了玩家是否能够快速完成更新、正常进入游戏。同时,为了给玩家提供更加精细真实的游戏体验,游戏版本包也越来越大,这给游戏服务器上的更新维护带来了不小的挑战。
目前,采用完整游戏资源包的版本调整方案,即在每一次版本调整时发布对应版本的完整游戏资源包并由玩家进行下载,但该方案在版本频繁调整的情况下会造成大量冗余文件被反复下载,导致版本调整的效率不够高效。并且,该方案难以实现不同版本之间的切换,如版本回滚、逆向更新等,导致版本调整的灵活性较低。因此,如何提高应用程序版本调整的效率和灵活性,是目前亟需解决的问题。
发明内容
本申请提供了一种程序版本调整方法、装置、设备及可读存储介质,可以提高应用程序版本调整的效率和灵活性。
第一方面,本申请提供了一种程序版本调整方法,该方法包括:
响应于针对应用程序的版本调整触发,确定上述应用程序需要调整到的目标版本的版本标识;
根据上述版本标识从镜像仓库获取目标版本的上述应用程序对应的目标镜像,上述目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据,上述目标程序版本包为目标版本的上述应用程序对应的程序版本包;
根据上述程序运行环境镜像数据构建目标版本的上述应用程序的运行环境容器;
从云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本,并在上述运行环境容器中运行目标版本的上述应用程序。
第二方面,本申请提供了一种程序版本调整装置,该装置包括:
获取模块,用于响应于针对应用程序的版本调整触发,确定上述应用程序需要调整到的目标版本的版本标识;
处理模块,用于根据上述版本标识从镜像仓库获取目标版本的上述应用程序对应的目标镜像,上述目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据,上述目标程序版本包为目标版本的上述应用程序对应的程序版本包;
上述处理模块,还用于根据上述程序运行环境镜像数据构建目标版本的上述应用程序的运行环境容器;
调整模块,用于从云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本,并在上述运行环境容器中运行目标版本的上述应用程序。
第三方面,本申请提供了一种计算机设备,包括:处理器、存储装置和通信接口,上述处理器、上述通信接口和上述存储装置相互连接,其中,上述存储装置存储有可执行程序代码,上述处理器用于调用上述可执行程序代码,用以实现上述的程序版本调整方法。
第四方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令被处理器执行时,用以实现如上述的程序版本调整方法。
第五方面,本申请提供了一种计算机程序产品,上述计算机程序产品包括计算机程序或计算机指令,上述计算机程序或计算机指令被处理器执行,用以实现上述的程序版本调整方法。
本申请实施例首先响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识,由于各个版本的应用程序的镜像以及程序版本包是预先分别存储到镜像仓库以及云存储空间中的,此时,服务器可以根据版本标识从镜像仓库获取目标版本的应用程序对应的目标镜像,根据程序运行环境镜像数据构建目标版本的应用程序的运行环境容器;然后,服务器从云存储空间获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本,并在运行环境容器中运行目标版本的应用程序,实现了应用程序的版本调整。由于目标镜像包括体积较小的程序运行环境镜像数据,但不包括体积较大的目标程序版本包的镜像数据,使得服务器可以从镜像仓库中快速获取体积较小的各个版本对应的镜像,并可以从云存储空间获取中快速获取相应版本的程序版本包用于进行程序版本调整,这相比于采用完整游戏资源包的版本调整方案来说,可以提高应用程序版本调整的效率和灵活性。上述方法可以实现服务器侧的程序版本调整,将上述方法应用于云游戏场景,可以提高游戏版本包的更新、切换效率,从而显著减少玩家的等待时间,提高玩家的游戏体验。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的一种程序版本调整系统的架构示意图;
图2是本申请一个示例性实施例提供的一种程序版本调整方法的流程示意图;
图3是本申请一个示例性实施例提供的另一种程序版本调整方法的流程示意图;
图4是本申请一个示例性实施例提供的一种程序版本调整的处理流程图;
图5是本申请一个示例性实施例提供的一种构建环境的处理流程图;
图6是本申请一个示例性实施例提供的一种镜像制作插件的界面示意图;
图7是本申请一个示例性实施例提供的一种根据镜像构建环境的界面示意图;
图8是本申请一个示例性实施例提供的一种程序版本调整装置的示意框图;
图9是本申请一个示例性实施例提供的一种计算机设备的示意框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中所涉及到的“第一”、“第二”等描述仅用于描述目的,而不能理解为指示或者暗示其相对重要性或者隐含指明所指示的技术特征的数量。因此,限定有“第一”、“第二”的技术特征可以明示或者隐含的包括至少一个该特征。
本申请实施例提出的版本调整方法可以应用在Kubernetes架构下的应用程序(如Kubernetes架构下部署的云游戏应用程序)的版本调整场景中,为了更好地理解本申请实施例提出的调整方法,下面先对本申请实施例可能涉及的相关术语和概念进行介绍:
Kubernetes:简称k8s,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统,Kubernetes可以称为Kubernetes集群。
容器(container):利用容器技术,通过镜像创建的独立运行应用实例,一个节点可运行多个容器。在云游戏应用程序中,容器用于承载游戏服务器、游戏客户端等组件,并提供游戏服务或游戏界面。
Pod(容器组):是Kubernetes创建或部署的最简单的基本单位,Pod封装了应用容器、存储资源、独立的网络IP以及管理控制容器运行方式的策略选项。在云游戏应用程序中,一个Pod可以包含一个或多个相关的容器,例如游戏服务器、游戏客户端等对应的容器。
镜像(image):一种自定义文件系统,包含容器运行所需要的全部的独立文件、依赖、配置、元数据等。在云游戏应用程序中,云游戏各个版本的镜像(如目标镜像)存储在镜像仓库中,以供后续调用,通过调用的镜像可以构建对应版本的运行环境容器。上述各个版本的镜像中只包含游戏运行环境数据(如程序运行环境),不包含游戏内容(如程序版本包),因此该镜像可以称为空包镜像。
镜像仓库(repository):用于存放镜像,仓库分为公有仓库和私有仓库,可用于查找、分享镜像。在云游戏应用程序中,镜像仓库用于存储云游戏各个版本的镜像(如目标镜像),以便于根据实际需求获取和构建相应版本的游戏运行环境。
持久卷(PersistentVolume,PV):是Kubernetes集群中的存储资源,使用卷插件来实现的,拥有独立于任何使用PV的Pod的生命周期。
持久卷申领(PersistentVolumeClaim,PVC):指的是用户对存储的请求。PVC申领会耗用PV资源,用户可以配置特定PVC的大小和访问模式。在云游戏应用程序中,从云存储空间获取目标程序版本包可以是通过将云端文件存储(如云存储空间)挂载到PVC实现,通过将云端文件存储挂载到PVC上,实现了可靠和持久化的游戏内容存储。
文件存储(Cloud File Storage,CFS):指云文件存储,使用了标准的网络文件系统(Network File System,NFS)访问协议,为服务器提供共享的数据源,现有应用无需修改即可挂载使用,支持弹性容量和性能的扩展。
对象存储(Cloud Object Storage,COS):一种存储海量文件的分布式存储服务。
程序版本包:指在服务器上可以运行的程序压缩包,程序版本包中包括了应用程序的资源数据,以游戏版本包为例,通常包含了游戏程序、资源文件、配置文件以及其他必要的数据。
版本分支:指程序版本包所属的特定分支版本,一般由产品经理来规划,常见的版本分支划分主要与程序版本包的构建分支(如测试版本分支、正式版本分支)、版本周期代号相关,不同的版本分支对应的程序运行环境一般存在差异。
版本标识:指应用程序的各个程序版本包绑定的版本号,一般与程序版本包的构建标签、程序版本包的创建时间相关。
下面将对基于Kubernetes架构下的云游戏应用程序进行说明:在Kubernetes架构下,云游戏应用程序在容器中运行,以云游戏应用程序对应一个游戏服务器和多个游戏客户端(玩家所在终端设备)为例,可以采用以下架构:
游戏服务器:游戏服务器可以作为一个独立的容器运行在一个或多个Pod中,每个Pod可以包含一个游戏服务器容器,并负责处理游戏逻辑、管理游戏状态,并与多个游戏客户端进行通信。
游戏客户端:每个游戏客户端通常运行在玩家所在的设备上,如PC、手机或平板电脑,游戏客户端通过网络连接到游戏服务器,并与游戏服务器进行交互。
需要说明的是,一个Pod中通常是运行单个容器,但也可以运行多个容器共同协作完成任务。如果游戏服务器需要与其他组件或服务(如数据库、缓存等)协作,这些组件或服务可以部署在同一个Pod中的不同容器中,从而实现多个容器之间共享网络和文件系统。
本申请实施例可应用于云计算、云物联、云游戏、人工智能、车载场景、智慧交通、辅助驾驶等各种领域或场景,下面将对几个典型领域或场景进行介绍。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。本申请可以将与应用程序相关的数据等存储于云服务器上,当需要使用上述数据时,可以在云服务器上直接获取,极大地提高了数据获取速度。
云物联(Cloud IOT)旨在将传统物联网中传感设备感知的信息和接受的指令连入互联网中,真正实现网络化,并通过云计算技术实现海量数据存储和运算,由于物联网的特性是物与物相连接,实时感知各个“物体”当前的运行状态,在这个过程中会产生大量的数据信息,如何将这些信息汇总,如何在海量信息中筛取有用信息为后续发展做决策支持,这些已成为影响物联网发展的关键问题,而基于云计算和云存储技术的物联云也因此成为物联网技术和应用的有力支持。
云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。本申请应用于云游戏,在有游戏版本调整(包括版本切换、版本更新)需求时,通过本申请提出的方法将云游戏应用程序切换或更新到目标版本,从而提高应用程序版本调整的效率和灵活性,以便于为玩家提供更加稳定、优质的游戏服务。
下面将对本申请实施例提出的程序版本调整方法的使用场景进行说明:在网络游戏的运营过程中,游戏服务器需要不断的进行更新维护,如版本更新、版本切换等版本调整,以便于为玩家提供更加优质的游戏服务。而网络游戏作为一种即时在线的网络服务,其游戏服务器的更新维护机制是否高效灵活,极大程度的影响游戏服务质量,决定了玩家是否能够快速完成更新、正常进入游戏。同时,为了给玩家提供更加精细真实的游戏体验,游戏版本包也越来越大,热门游戏甚至可以达到10G以上,这给游戏服务器上的更新维护带来了不小的挑战。
采用完整游戏资源包的版本调整方案,在每一次版本调整时发布对应版本的完整游戏资源包并由玩家进行下载,但是上述方案存在以下问题:
一方面,游戏版本包往往集中在少数大文件,这导致生成的完整游戏资源包的镜像版本包体积大,分层不均衡,最终导致镜像的上传与下载将占用服务器更多的网络带宽。并且,在多个服务器同时进行版本发布时,镜像仓库往往会限流,控制并发下载连接数,在此期间,可能会遇到下载超时、下载失败等情况,导致最终版本发布异常。
另一方面,体积较大的镜像版本包在安装时也会存在失败风险,不利于业务环境的灵活销毁重建。在切换游戏版本时,运行中的docker容器需要销毁重建,重新下载对应版本的docker镜像。在此期间,游戏服务会中断,极大地影响用户的游戏体验。
上述方案在版本频繁调整的情况下(如在QA测试环境中版本包镜像高频更新的情况)会造成大量冗余文件被反复下载,导致版本调整的效率不够高效。并且,该方案难以实现不同版本之间的切换,如版本回滚、逆向更新等,导致版本调整的灵活性较低。基于此,本申请实施例提出将应用程序的程序版本包和镜像进行拆分,将程序版本包存储到云存储空间(如云端共享文件夹),将体积大幅减小的镜像(该镜像中不包含程序版本包)正常上传到镜像仓库,程序版本包和镜像通过版本标识(如版本分支、版本号)进行关联。服务器在响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识;然后根据版本标识从镜像仓库获取目标版本的应用程序对应的目标镜像;再根据目标镜像中的程序运行环境镜像数据构建目标版本的应用程序的运行环境容器;最后从云存储空间获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本,并在运行环境容器中运行目标版本的应用程序。上述方法提高了应用程序版本调整的效率和灵活性,将上述方法应用于云游戏应用程序的游戏版本更新加速场景(针对游戏服务器侧版本更新加速)中,可以实现服务器侧的游戏版本包调整,提高游戏版本包的发布、更新效率,从而显著减少玩家的等待时间,提高玩家的游戏体验。
可以理解的是,在本申请的具体实施方式中,涉及到镜像、程序运行环境镜像数据、程序版本包等相关的数据,当本申请以上实施例运用到具体产品或技术中时,相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准。
本申请将具体通过如下实施例进行说明:
请参阅图1,该图是本申请一个示例性实施例提供的一种程序版本调整系统的架构示意图。程序版本调整系统具体可以包括服务器10、终端设备11、镜像仓库12以及云存储空间13。其中,终端设备11与服务器10之间,以及镜像仓库12、云存储空间13分别与服务器10之间通过网络连接,比如,通过局域网、广域网、移动互联网等连接。除此之外,镜像仓库12、云存储空间13也可以分别与终端设备11之间通过上述方式网络连接。操作对象在终端设备11的浏览器或者客户端应用上进行操作,对应用程序进行版本调整,服务器10可以响应于该操作,为操作对象提供各种与版本调整相关的服务。
在一实施例中,首先,服务器10可以响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识。例如,当服务器10确定应用程序满足更新条件时,确定检测到针对应用程序的版本调整触发,然后将新增版本的版本标识确定为应用程序需要更新到的目标版本的版本标识;又如,当服务器10接收到终端设备11发送的版本切换请求时,确定检测到针对应用程序的版本调整触发,然后将版本切换请求对应的切换版本标识确定为应用程序需要切换到的目标版本的版本标识。其次,服务器10根据版本标识从镜像仓库12获取目标版本的应用程序对应的目标镜像,目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据(目标程序版本包为目标版本的应用程序对应的程序版本包)。然后,服务器10根据目标镜像中的程序运行环境镜像数据构建目标版本的应用程序的运行环境容器。最后,服务器10从云存储空间13获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本,并在运行环境容器中运行目标版本的应用程序,从而实现了应用程序的版本调整。除此之外,服务器10可以发布目标版本的应用程序,以使得终端设备11可以从服务器10下载并运行目标版本的应用程序。
其中,服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
终端设备11也称为终端(Terminal)、用户设备(user equipment,UE)、接入终端、用户单元、移动设备、用户终端、无线通信设备、用户代理或用户装置。终端设备可以是智能家电、具有无线通信功能的手持设备(例如智能手机、平板电脑)、计算设备(例如个人电脑(ersonal computer,PC))、车载终端、智能语音交互设备、可穿戴设备或者其他智能装置等,但并不局限于此。
镜像仓库12通常提供了一系列的功能,例如版本控制、元数据管理、权限控制等。镜像仓库具有高可靠性和可扩展性,能够满足大规模云游戏服务的需求,并支持并行处理和高速数据传输。在本申请实施例中,镜像仓库12用于保存应用程序的镜像,这些镜像不包含应用程序的内容数据,而只是作为应用程序的基础框架和结构的副本。开发人员可以将应用程序不同版本的镜像上传到镜像仓库,并对其进行标记和分类,以便后续使用和管理,如利用目标镜像建立目标版本的应用程序的程序运行环境。
云存储空间13是指在云计算环境中提供的一种数据存储服务,云存储空间具有高可用性、持久性、灵活性和安全性,可以提供便捷的文件存储、数据备份、共享等功能。云存储空间可以包括多种存储方式,如云文件存储(Cloud File Storage,CFS)、云对象存储(Cloud Object Storage,COS)。其中,CFS使用了标准的网络文件系统(Network FileSystem,NFS)访问协议,为服务器提供共享的数据源,现有应用无需修改即可挂载使用,支持弹性容量和性能的扩展。COS是一种存储海量文件的分布式存储服务,以对象为单位进行存储,每个对象包含数据以及与之相关的元数据,COS适用于存储大量非结构化数据,如备份、归档、日志和静态网页等。
在一实施例中,本申请提出的程序版本调整系统的架构还可以包括数据库,数据库用于存储应用程序的相关数据,还可以用于存储与判断处理相关的逻辑数据(如判断当前版本的应用程序与目标版本的应用程序的程序运行环境是否相匹配),这些数据在数据库中可以通过不同的数据库表格记录。例如,数据库可以是设于服务器中的数据库,即可以是服务器内置或自带的数据库;数据库也可以是与服务器相连接的外设数据库,例如云数据库(即部署在云端的数据库),具体可以基于私有云、公有云、混合云、边缘云等中的任一种部署,从而使得云数据库侧重的功能不同。
可以理解的是,本申请实施例描述的系统的架构示意图是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。例如,本申请实施例所提供的程序版本调整方法除了可以由服务器10执行,还可以由不同于服务器10且能够与终端设备11和/或服务器10通信的其他服务器或服务器集群执行。本领域普通技术人员可知,图1中的终端设备、服务器、镜像仓库以及云存储空间的数目仅仅是示意性的。根据业务实现需要,可以配置具有任意数目的终端设备、服务器、镜像仓库以及云存储空间。并且,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。在后续实施例中,将以服务器指代上述服务器10,以终端设备指代上述终端设备11,后续实施例中将不再赘述。
请参阅图2,图2是本申请一个示例性实施例提供的一种程序版本调整方法的流程示意图,以该方法应用于服务器为例进行说明,该方法可包括以下步骤:
S201、响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识。
本申请实施例中,版本调整可以包括版本切换、版本更新等,版本调整触发是指针对应用程序进行版本调整的一个事件,这个事件可以是由服务器主动触发的,例如由服务器检测到应用程序满足调整条件(如更新条件、切换条件)而主动触发,此时,服务器确定检测到针对应用程序的版本调整触发;这个事件也可以是由服务器被动触发的,如服务器接收到版本调整请求(如版本切换请求、版本更新请求)而被动触发的,此时,服务器确定检测到针对应用程序的版本调整触发。
当服务器确定检测到针对应用程序的版本调整触发后,可以响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识,以便于后续基于目标版本的版本标识将应用程序从当前版本调整到目标版本。
在一实施例中,应用程序可以是云游戏应用程序,那么版本调整触发可以是版本切换触发(如检测到云游戏应用程序满足切换条件、接收到版本切换请求)、版本更新触发(如检测到云游戏应用程序满足更新条件、接收到版本更新请求)。目标版本的版本标识可以是除应用程序的各个已记录版本以外的新增版本(如最新发布的版本),也可以是应用程序的各个已记录版本中的其中一个已记录版本。
S202、根据版本标识从镜像仓库获取目标版本的应用程序对应的目标镜像,目标镜像包括程序运行环境镜像数据。
本申请实施例中,镜像仓库用于存放各个版本的应用程序对应的镜像,镜像仓库中包括目标版本的应用程序对应的目标镜像。目标镜像不包括目标程序版本包的镜像数据,目标程序版本包为目标版本的应用程序对应的程序版本包。除此之外,镜像仓库中的各个镜像均不包括所对应版本的应用程序的程序版本包的镜像数据。
其中,程序版本包是指在服务器上可以运行的程序压缩包,程序版本包中包括了应用程序的资源数据,以程序版本包为游戏版本包为例,游戏版本包中包含了游戏程序、资源文件、配置文件以及其他必要的数据。而目标镜像不包括目标程序版本包的镜像数据,目标镜像是一个基础镜像,只包含应用程序运行所需的最基本的组件和环境数据。
目标镜像包括程序运行环境镜像数据,程序运行环境镜像数据是指程序运行环境数据的镜像数据,程序运行环境数据是指用于支持应用程序运行所需的各种软件、依赖库和配置文件等数据,如操作系统、编程语言环境、依赖库、系统配置等。程序运行环境镜像数据是指对是对程序运行环境数据进行镜像处理(如快照、打包),以镜像的形式保存下来的数据,通过程序运行环境镜像数据,可以方便将程序运行环境数据部署在不同的计算平台或设备上进行部署与使用,避免了手动安装和配置所有必需的组件,从而确保程序在不同地方运行时的一致性,简化了应用程序的管理和维护。
服务器可以通过目标镜像中的程序运行环境镜像数据,构建目标版本的应用程序的运行环境容器,运行环境容器用于提供应用程序运行的虚拟化环境,保证应用程序运行的稳定性。以目标镜像为游戏镜像为例,游戏镜像中不包含具体的游戏内容和数据,游戏镜像可以作为一个模板,用于服务器构建游戏的运行环境容器。
通过上述方法,服务器根据版本标识从镜像仓库获取目标版本的应用程序对应的目标镜像,目标镜像包括程序运行环境镜像数据但不包括目标程序版本包的镜像数据,这样提高了目标镜像的获取效率。除此之外,通过将各个版本的应用程序的镜像以及对应的程序版本包进行拆分,将应用程序各个版本对应的不包含程序版本包的镜像存储到镜像仓库中,可以减小各个版本对应的镜像的大小,降低服务器存储负担,服务器可以从镜像仓库中快速获取体积较小的各个版本对应的镜像并用于程序版本调整,可以提高应用程序版本调整的效率,有利于QA测试人员在测试过程中下载、安装和验证版本的速度,提高了QA测试的效率和体验。
S203、根据程序运行环境镜像数据构建目标版本的应用程序的运行环境容器。
本申请实施例中,运行环境容器用于提供应用程序运行的虚拟化环境,具体而言,通过将应用程序运行所需的操作系统、库文件、引擎等组件打包成一个独立的容器,使得应用程序能够在不同的硬件和操作系统环境下以相同的方式运行(相同的方式即是指该容器所对应的方式)。服务器可以根据目标镜像以及程序运行环境镜像数据,构建目标版本的应用程序的运行环境容器,保证目标版本的应用程序运行的稳定性。
服务器通过在镜像仓库存放各个版本的应用程序对应的镜像,并在有需求时从镜像仓库获取相应版本的应用程序对应的镜像,进而构建该版本的应用程序的运行环境容器,从而可以避免手动配置程序运行环境,简化各个版本的应用程序的部署和管理的过程。并且,由于运行环境容器可以支持对应版本的应用程序在不同的硬件和操作系统(如PC、手机、智能电视等)上运行,提高了应用程序的跨平台兼容性。除此之外,由于各个版本的应用程序的运行环境容器都是独立的运行实例,它们之间互相隔离,不会相互干扰,可以提高应用程序运行的稳定性和安全性,以便于为用户提供高质量的使用体验。
S204、从云存储空间获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本,并在运行环境容器中运行目标版本的应用程序。
本申请实施例中,云存储空间用于存放各个版本的应用程序对应的程序版本包,如目标版本的应用程序对应的目标程序版本包。其中,云存储空间中存放的程序版本包是指在服务器上可以运行的程序压缩包,程序版本包中包括了应用程序的资源数据,以程序版本包为游戏版本包为例,游戏版本包中包含了游戏程序、资源文件、配置文件以及其他必要的数据。
服务器可以根据目标版本的版本标识,从云存储空间获取目标程序版本包,然后根据目标程序版本包将应用程序调整到目标版本,并在运行环境容器中运行目标版本的应用程序。根据目标程序版本包将应用程序调整到目标版本可以是指:对目标程序版本包进行解压,得到目标版本的应用程序,从而实现将应用程序调整到目标版本,提高了应用程序版本调整的效率和灵活性。由于在步骤S203中已经构建了目标版本的应用程序的运行环境容器,通过在运行环境容器中运行目标版本的应用程序,可以提高应用程序运行的稳定性和安全性。
基于上述实施例,本申请的有益效果在于:本申请通过将各个版本的应用程序的镜像以及对应的程序版本包进行拆分,将应用程序各个版本对应的不包含程序版本包的镜像存储到镜像仓库中,将各个版本对应的程序版本包存储到云存储空间中,可以减小各个版本对应的镜像的大小,降低服务器存储负担。在有版本调整需求时,服务器可以从镜像仓库中快速获取体积较小的相应版本对应的镜像以及从云存储空间中快速获取相应版本对应的程序版本包,并用于程序版本调整,可以实现应用程序的版本管理、构建和更新等功能,提高了应用程序版本调整的效率和灵活性。
请参阅图3,图3是本申请一个示例性实施例提供的另一种程序版本调整方法的流程示意图,以该方法应用于服务器为例进行说明,该方法可包括以下步骤:
S301、响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识。
本申请实施例中,版本调整可以包括版本切换、版本更新等,版本调整触发是指针对应用程序进行版本调整的一个事件,这个事件可以是由服务器主动触发的,如由服务器检测到应用程序满足调整条件(如更新条件、切换条件)而主动触发,此时,服务器确定检测到针对应用程序的版本调整触发;这个事件也可以是由服务器被动触发的,如服务器接收到版本调整请求(如版本切换请求、版本更新请求)而被动触发的,此时,服务器确定检测到针对应用程序的版本调整触发。
在一实施例中,服务器可以执行以下步骤:
(1)、若检测到镜像仓库存在应用程序对应的新增镜像,且云存储空间存在与新增镜像相匹配的新增程序版本包,则确定新增镜像和新增程序版本包对应的应用程序的新增版本。
其中,新增镜像是指新添加到镜像仓库中的应用程序的一个镜像,与新增镜像相匹配的新增程序版本包是指与新增镜像对应同一个版本的应用程序的程序版本包。当服务器检测到镜像仓库存在应用程序对应的新增镜像,且云存储空间存在与新增镜像相匹配的新增程序版本包后,可以确定新增镜像和新增程序版本包对应的应用程序的新增版本,通过判断新增版本是否为应用程序的一个或多个已记录版本中的最高版本,可以判断应用程序是否满足更新条件。
示例性的,镜像仓库中存在应用程序的多个版本对应的镜像,如版本V1.0、V1.1、V1.2、V2、V3分别对应的镜像,云存储空间中存在应用程序的多个版本对应的程序版本包,如版本V1.0、V1.1、V1.2、V2、V3分别对应的程序版本包。新增镜像可以是镜像仓库中的一个镜像,如版本V3对应的镜像;新增程序版本包可以是云存储空间中的一个程序版本包,如版本V3对应的程序版本包。
(2)、若新增版本为应用程序的一个或多个已记录版本中的最高版本,则确定应用程序满足更新条件;其中,已记录版本为镜像仓库中包含的镜像和云存储空间中包含的程序版本包对应的应用程序的版本。
在一实施例中,已记录版本是指应用程序的已经记录的多个历史版本,已记录版本可以是在镜像仓库中被记录的(如镜像仓库中包含的各个镜像对应的应用程序的各个版本),也可以是在云存储空间中被记录的(如云存储空间中包含的各个程序版本包对应的应用程序的各个版本),还可以是在管理设备(如应用程序的管理服务器)上被记录的。
示例性的,应用程序包括多个已记录版本:V1.0、V1.1、V1.2、V2.0、V3.0,新增版本为V3.0,此时,服务器可以判断新增版本为应用程序的一个或多个已记录版本中的最高版本,那么,服务器可以确定应用程序满足版本的更新条件。
(3)、在确定应用程序满足更新条件时,确定检测到针对应用程序的版本调整触发。
其中,当服务器确定应用程序满足更新条件时,服务器也就确定检测到针对应用程序的版本调整触发,此时的版本调整触发是应用程序的版本更新触发。
基于上述步骤(1)-(3),那么,上述步骤S301中的确定应用程序需要调整到的目标版本的版本标识,可以通过以下方式实现:将新增版本的版本标识确定为应用程序需要更新到的目标版本的版本标识。
通过上述步骤,使得服务器可以在应用程序满足更新条件时,确定检测到针对应用程序的版本调整触发,再进行后续的程序版本更新处理,保证了应用程序版本更新的效率。
在一实施例中,服务器可以执行以下步骤:在接收到版本切换请求时,确定检测到针对应用程序的版本调整触发;版本切换请求携带切换版本标识。
其中,版本切换请求可以是终端设备发送给服务器的,例如应用程序的开发测试人员在终端设备上向服务器发送的版本切换请求。当服务器在接收到版本切换请求时,服务器也就确定检测到针对应用程序的版本调整触发,此时的版本调整触发是应用程序的版本切换触发。
基于此,上述步骤S301中的确定应用程序需要调整到的目标版本的版本标识,可以通过以下方式实现:从版本切换请求获取切换版本标识,将切换版本标识确定为应用程序需要切换到的目标版本的版本标识。
通过上述步骤,使得服务器可以在接收到版本切换请求时,确定检测到针对应用程序的版本调整触发,再进行后续的程序版本切换处理,保证了应用程序版本切换的效率,提高了应用程序版本切换的灵活性。
S302、确定当前版本的应用程序与目标版本的应用程序的程序运行环境是否相匹配。
本申请实施例中,由于不同版本的应用程序的程序运行环境可能存在差异,例如在测试版本和正式版本对应的应用程序的程序运行环境不同。因此,服务器可以首先确定当前版本的应用程序与目标版本的应用程序的程序运行环境是否相匹配,当匹配时,再通过执行步骤S302以及后续步骤进行相应的运行环境容器的构建以及将应用程序调整到目标版本,可以保证应用程序的稳定运行。
在一实施例中,上述步骤S302,可以根据以下步骤实现:
(1)、获取应用程序的当前版本的版本标识。
(2)、根据当前版本的版本标识以及目标版本的版本标识,确定当前版本的应用程序与目标版本的应用程序是否属于同一版本分支下的应用程序。
(3)、若是,则确定当前版本的应用程序与目标版本的应用程序的程序运行环境相匹配。
(4)、若否,则确定当前版本的应用程序与目标版本的应用程序的程序运行环境不相匹配。
在上述步骤(1)-(4)中,版本分支可以看作是应用程序的一个大版本,一个版本分支下可以包括多个版本。不同版本分支下的应用程序的程序运行环境不同。服务器可以通过比较当前版本的应用程序与目标版本的应用程序是否属于同一版本分支下的应用程序,从而判断两者的程序运行环境是否匹配。
示例性的,应用程序包括多个已记录版本:V1.0、V1.1、V1.2、V2.0、V3.0,V1.0、V1.1、V1.2属于版本分支V1,V2.0属于版本分支V2,V3.0属于版本分支V3,那么V1.0、V1.1、V1.2的程序运行环境相同,V2.0、V3.0分别与V1.0、V1.1、V1.2中的任意一个版本的程序运行环境不相同。需要说明的是,本申请实施例不对版本分支的形式进行限定,服务器除了可以通过上述方法确定应用程序的程序运行环境是否匹配,还可以通过应用程序的各个版本的版本标识所对应的版本分支标识确定应用程序的程序运行环境是否匹配。例如V1.0、V1.1、V1.2对应的版本分支标识为测试版本分支,V2.0对应的版本分支标识为正式版本分支。
通过上述方法,提高了判断当前版本的应用程序与目标版本的应用程序的程序运行环境是否匹配的效率,进而提高了应用程序版本调整的效率。
S303、若当前版本的应用程序与目标版本的应用程序的程序运行环境不相匹配,则根据版本标识从镜像仓库获取目标版本的应用程序对应的目标镜像,目标镜像包括程序运行环境镜像数据。
其中,目标镜像不包括目标程序版本包的镜像数据,目标程序版本包为目标版本的应用程序对应的程序版本包。
S304、根据程序运行环境镜像数据构建目标版本的应用程序的运行环境容器。
在上述步骤S303-S304中,当服务器判断当前版本的应用程序与目标版本的应用程序的程序运行环境不相匹配时,需要根据程序运行环境镜像数据构建目标版本的应用程序的运行环境容器。由于运行环境容器可以支持对应版本的应用程序在不同的硬件和操作系统(如PC、手机、智能电视等)上运行,提高了应用程序的跨平台兼容性。除此之外,由于各个版本的应用程序的运行环境容器都是独立的运行实例,它们之间互相隔离,不会相互干扰,可以提高应用程序运行的稳定性和安全性,为用户提供高质量的使用体验。
在一实施例中,服务器可以获取目标版本的应用程序的运行环境数据,然后基于程序运行环境镜像数据以及运行环境数据构建目标版本的应用程序的运行环境容器,用以在运行环境容器中运行目标版本的应用程序。
S305、从云存储空间获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本。
本申请实施例中,服务器可以从云存储空间获取目标程序版本包,然后根据目标程序版本包将应用程序调整到目标版本,并在运行环境容器中运行目标版本的应用程序。根据目标程序版本包将应用程序调整到目标版本可以是指:对目标程序版本包进行解压,得到目标版本的应用程序,从而实现将应用程序调整到目标版本,提高了应用程序版本调整的效率和灵活性。
在一实施例中,上述步骤S305,可以根据以下步骤实现:
(1)、将云存储空间挂载到本地,本地为应用程序所运行在的服务器。
(2)、通过挂载到本地的云存储空间,下载目标程序版本包,并对目标程序版本包进行解压处理,得到目标程序版本包的解压数据。
(3)、根据目标程序版本包的解压数据生成目标版本的应用程序。
在上述步骤(1)-(3)中,服务器通过将云存储空间挂载到本地(如应用程序所运行在的游戏服务器),可以提高服务器获取目标程序版本包的效率,服务器可以像访问本地文件系统一样访问并更新云存储空间中的文件,而无需复制整个文件到本地,实现文件的快速访问。
在一实施例中,云存储空间可以是指云端文件存储,云端文件存储可以采用文件存储(Cloud File Storage,CFS)、对象存储(Cloud Object Storage,COS)等。以云游戏场景为例,服务器可以将云端文件存储挂载到本地,然后通过挂载到本地的云存储空间,通过对目标程序版本包进行下载和解压,得到目标程序版本包的解压数据,最后根据目标程序版本包的解压数据生成目标版本的应用程序(如启动游戏进程)。
具体来说,服务器可以将云端对象挂载到Kubernetes集群(容器集群管理系统)中的PVC(存储资源管理接口);通过调用PVC,可以对目标程序版本包进行下载和解压。上述将云端文件存储挂载到PVC是指将云端文件存储系统(如对象存储服务)通过一个PersistentVolume Claim(PVC)的抽象层连接到Kubernetes集群内的一个持久卷(PersistentVolume,PV),PVC作为对PV的请求,请求Kubernetes集群为Pod提供一些持久化存储资源。这样,在Kubernetes集群中的应用程序可以通过PVC来访问云端文件存储系统,就如同访问了一个本地目录一样。
上述方法可以在服务器侧实现更快速、轻量级的程序版本调整(如游戏版本更新、游戏版本切换),当程序版本需要进行调整时,只需要更改云存储空间中的文件,而无需重新构建发布完整的游戏安装包,服务器能够直接从挂载的云存储空间中获取调整后的文件,从而向用户提供对应版本的应用程序。
S306、在目标版本的应用程序的运行环境容器中运行目标版本的应用程序。
其中,步骤S306的具体实施方式参见前述实施例中步骤S204的相关描述,此处不再赘述。
S307、若当前版本的应用程序与目标版本的应用程序的程序运行环境相匹配,则从云存储空间获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本。
S308、在针对当前版本的应用程序构建的运行环境容器中运行目标版本的应用程序。
在上述步骤S307-S308,若当前版本的应用程序与目标版本的应用程序的程序运行环境相匹配,那么,服务器不需要重新构建运行环境容器,服务器可以从云存储空间获取目标程序版本包,根据目标程序版本包将应用程序调整到目标版本,然后直接在针对当前版本的应用程序构建的运行环境容器中运行目标版本的应用程序,避免重复构建运行环境容器,提高了程序版本调整的效率。
在一实施例中,服务器可以构建各个版本的应用程序的镜像以及程序版本包,并将各个版本的应用程序的镜像存储到进行镜像仓库,将各个版本的应用程序的程序版本包存储到云存储空间。需要说明的是,上述构建各个版本的应用程序的镜像以及程序版本包,并将各个版本的应用程序的镜像存储到进行镜像仓库,将各个版本的应用程序的程序版本包存储到云存储空间,可以是服务器执行的,也可以是不同于本申请实施例中的服务器之外的其他服务器执行的,例如图4中的构建机,构建机是一个专用服务器,作为应用程序的开发机器。
如图4所示,图4是本申请一个示例性实施例提供的一种程序版本调整的处理流程图,用户通过所在终端设备触发构建(如构建机接收到用户针对目标版本的应用程序的构建请求或指令),此时,构建机开始构建目标版本的应用程序的目标程序版本包(如图4中所示的程序版本包),并将目标程序版本包上传到云存储空间,然后构建目标版本的应用程序的目标镜像(如图4中所示的镜像),并将目标镜像上传到镜像仓库,最终完成构建。
下面将对程序版本调整方法的整体流程进行说明,如图4所示,当用户需要调整(如创建或更新)环境时,服务器(应用程序所在的运行环境)可以响应于针对应用程序的版本调整触发,确定应用程序需要调整到的目标版本的版本标识;然后根据版本标识从镜像仓库下载目标版本的应用程序对应的目标镜像,根据程序运行环境镜像数据构建目标版本的应用程序的运行环境容器。服务器再将云存储空间挂载到本地(可以通过PVC挂载云端存储的程序版本包实现),通过挂载到本地的云存储空间,下载目标程序版本包,并对目标程序版本包进行解压处理,得到目标程序版本包的解压数据,并启动应用程序,最终,完成调整(如创建或更新)环境。
当需要切换版本时(如切换到同一版本分支下的其他版本),服务器可以直接从挂载到本地的云存储空间解压相应版本的程序版本包,得到解压后的程序版本包,并启动应用程序,最终,完成切换版本,实现了程序版本的快速切换。
在一实施例中,服务器可以利用镜像制作插件或者数据构建脚本,构建目标版本的应用程序对应的目标镜像以及目标程序版本包。如图5所示,图5是本申请一个示例性实施例提供的一种构建环境的处理流程图,应用程序的程序版本包的构建流程主要包括制作镜像以及根据镜像构建环境。如图6所示,图6是本申请一个示例性实施例提供的一种镜像制作插件的界面示意图,界面中包括镜像制作插件的版本选择标识(如版本1.0.6)、业务标识(如100556)、版本分支(test)、版本号(如test20230521)、版本说明、程序版本包路径(如路径s),服务器根据从镜像制作插件的界面中获取到的输入信息确定用于构建镜像的数据,并进行镜像构建。
如图7所示,图7是本申请一个示例性实施例提供的一种根据镜像构建环境的界面示意图,服务器可以选择是否批量创建环境、是否使用模板创建环境。当选择使用模板创建环境时,服务器可以选择相应的镜像作为模板,该模板的名称如基础模板1,镜像对应的版本分支的名称如版本分支a,镜像对应的版本标识如1.23.0.16711,通过上述版本分支和版本标识,便可对应镜像仓库中的唯一一个镜像。同时,服务器可以定义该环境对应的环境标识(如11079)、环境名称(如环境e)、标签、描述等信息。
在一实施例中,可能存在一些原始业务环境下的各个版本的应用程序,原始业务环境下的应用程序是指采用完整游戏资源包进行存储的应用程序,在原始业务环境下,各个版本的应用程序对应一个完整镜像,例如目标版本的应用程序的完整镜像(记为待处理镜像,待处理镜像为目标版本的应用程序在进行程序优化前的完整镜像,待处理镜像包括程序运行环境的镜像数据以及目标程序版本包的镜像数据)。服务器通过对应用程序对应的待处理镜像进行数据拆分处理,得到目标版本的应用程序对应的目标镜像以及目标程序版本包,然后将目标镜像存储到镜像仓库,将目标程序版本包存储到云存储空间。服务器可以通过上述方法对原始业务环境下的各个版本的应用程序进行处理,将各个版本的应用程序的数据结构和存储方式进行优化,从而使得程序优化后的应用程序的程序版本调整的效率更高,并可以实现应用程序的不同程序版本的灵活切换,提高程序版本调整的灵活性。
在一实施例中,终端设备可以获取目标版本的应用程序,然后在所在的运行环境容器中运行目标版本的应用程序,若目标版本的应用程序运行失败,终端设备可以显示版本选择窗口,版本选择窗口中显示多个候选版本标识,多个候选版本标识以及目标版本的版本标识对应相同版本分支;然后,终端设备可以响应于针对版本选择窗口的版本选择触发,从多个候选版本标识中确定已选择版本标识;再从云存储空间获取已选择版本标识对应的程序版本包,根据已选择版本标识对应的程序版本包将应用程序调整到相应版本,并在上述运行环境容器中运行相应版本的所述应用程序。通过上述方法,使得终端设备在运行目标版本的应用程序失败时可以切换运行同一版本分支下的其他版本的应用程序,保证了应用程序运行的成功率。
在一实施例中,前述实施例中的技术方案相对比较复杂、功能实现比较全面,为了快速实现程序版本调整,也可以进行相应的变化调整,例如通过镜像制作脚本替代镜像制作插件,通过镜像制作脚本直接实现镜像仓库、云文件存储于服务器之间的数据交互。又如,可以通过简化版本分支,只提供一个拆分的版本号,从而实现程序版本的快速调整。
本申请实施例提出的程序版本调整方法适用于游戏测试环境更新等大版本包高频更新的场景,具有以下优点:上述方案能够很好的解决游戏业务场景下大版本包高频更新环境的需求,结合云存储空间(如程序版本调整)和镜像仓库增加了灵活切换版本的能力,减少玩家的等待,让玩家更快更好的游戏。同时,可以有效降低各个版本的应用程序的镜像大小,提升游戏环境更新发布效率,提高QA测试体验。并且,支持版本包直接切换,减少因为镜像下载、更新安装等异常导致的服务器环境不可用。
请参阅图8,该图是本申请实施例提供的一种程序版本调整装置的示意框图。其中,程序版本调整装置具体可以包括:
获取模块801,用于响应于针对应用程序的版本调整触发,确定上述应用程序需要调整到的目标版本的版本标识;
处理模块802,用于根据上述版本标识从镜像仓库获取目标版本的上述应用程序对应的目标镜像,上述目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据,上述目标程序版本包为目标版本的上述应用程序对应的程序版本包;
上述处理模块802,还用于根据上述程序运行环境镜像数据构建目标版本的上述应用程序的运行环境容器;
调整模块803,用于从云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本,并在上述运行环境容器中运行目标版本的上述应用程序。
可选的,上述处理模块802还用于:
确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境是否相匹配;
若当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境不相匹配,则执行上述根据上述版本标识从镜像仓库获取目标版本的上述应用程序对应的目标镜像的步骤及后续步骤。
可选的,上述处理模块802还用于:
若当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境相匹配,则从上述云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本,并在针对当前版本的上述应用程序构建的运行环境容器中运行目标版本的上述应用程序。
可选的,上述处理模块802在用于确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境是否相匹配时,具体用于:
获取上述应用程序的当前版本的版本标识;
根据上述当前版本的版本标识以及上述目标版本的版本标识,确定当前版本的上述应用程序与目标版本的上述应用程序是否属于同一版本分支下的应用程序;
若是,则确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境相匹配;
若否,则确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境不相匹配。
可选的,上述获取模块801还用于:
若检测到上述镜像仓库存在上述应用程序对应的新增镜像,且上述云存储空间存在与上述新增镜像相匹配的新增程序版本包,则确定上述新增镜像和上述新增程序版本包对应的上述应用程序的新增版本;
若上述新增版本为上述应用程序的一个或多个已记录版本中的最高版本,则确定上述应用程序满足更新条件;其中,上述已记录版本为上述镜像仓库中包含的镜像和上述云存储空间中包含的程序版本包对应的上述应用程序的版本;
在确定上述应用程序满足更新条件时,确定检测到针对上述应用程序的版本调整触发;
其中,上述获取模块801在用于确定上述应用程序需要调整到的目标版本的版本标识时,具体用于:
将上述新增版本的版本标识确定为上述应用程序需要更新到的目标版本的版本标识。
可选的,上述获取模块801还用于:
在接收到版本切换请求时,确定检测到针对上述应用程序的版本调整触发;上述版本切换请求携带切换版本标识;
其中,上述获取模块801在用于确定上述应用程序需要调整到的目标版本的版本标识时,具体用于:
从上述版本切换请求获取上述切换版本标识,将上述切换版本标识确定为上述应用程序需要切换到的目标版本的版本标识。
可选的,上述调整模块803在用于从云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本时,具体用于:
将云存储空间挂载到本地,上述本地为上述应用程序所运行在的服务器;
通过挂载到本地的云存储空间,下载上述目标程序版本包,并对上述目标程序版本包进行解压处理,得到上述目标程序版本包的解压数据;
根据上述目标程序版本包的解压数据生成目标版本的上述应用程序。
需要说明的是,本申请实施例的程序版本调整装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参阅图9,该图是本申请实施例提供的一种计算机设备的示意框图。如图9所示的本实施例中的计算机设备可以包括:处理器901、存储装置902以及通信接口903。上述处理器901、存储装置902以及通信接口903之间可以进行数据交互。
上述存储装置902可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置902也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;上述存储装置902还可以包括上述种类的存储器的组合。
上述处理器901可以是中央处理器(central processing unit,CPU)。在一个实施例中,上述处理器901还可以是图形处理器(Graphics Processing Unit,GPU)。上述处理器901也可以是由CPU和GPU的组合。在一个实施例中,上述存储装置902用于存储程序指令,上述处理器901可以调用上述程序指令,执行如下操作:
响应于针对应用程序的版本调整触发,确定上述应用程序需要调整到的目标版本的版本标识;
根据上述版本标识从镜像仓库获取目标版本的上述应用程序对应的目标镜像,上述目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据,上述目标程序版本包为目标版本的上述应用程序对应的程序版本包;
根据上述程序运行环境镜像数据构建目标版本的上述应用程序的运行环境容器;
从云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本,并在上述运行环境容器中运行目标版本的上述应用程序。
可选的,上述处理器901还用于:
确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境是否相匹配;
若当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境不相匹配,则执行上述根据上述版本标识从镜像仓库获取目标版本的上述应用程序对应的目标镜像的步骤及后续步骤。
可选的,上述处理器901还用于:
若当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境相匹配,则从上述云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本,并在针对当前版本的上述应用程序构建的运行环境容器中运行目标版本的上述应用程序。
可选的,上述处理器901在用于确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境是否相匹配时,具体用于:
获取上述应用程序的当前版本的版本标识;
根据上述当前版本的版本标识以及上述目标版本的版本标识,确定当前版本的上述应用程序与目标版本的上述应用程序是否属于同一版本分支下的应用程序;
若是,则确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境相匹配;
若否,则确定当前版本的上述应用程序与目标版本的上述应用程序的程序运行环境不相匹配。
可选的,上述处理器901还用于:
若检测到上述镜像仓库存在上述应用程序对应的新增镜像,且上述云存储空间存在与上述新增镜像相匹配的新增程序版本包,则确定上述新增镜像和上述新增程序版本包对应的上述应用程序的新增版本;
若上述新增版本为上述应用程序的一个或多个已记录版本中的最高版本,则确定上述应用程序满足更新条件;其中,上述已记录版本为上述镜像仓库中包含的镜像和上述云存储空间中包含的程序版本包对应的上述应用程序的版本;
在确定上述应用程序满足更新条件时,确定检测到针对上述应用程序的版本调整触发;
其中,上述处理器901在用于确定上述应用程序需要调整到的目标版本的版本标识时,具体用于:
将上述新增版本的版本标识确定为上述应用程序需要更新到的目标版本的版本标识。
可选的,上述处理器901还用于:
在接收到版本切换请求时,确定检测到针对上述应用程序的版本调整触发;上述版本切换请求携带切换版本标识;
其中,上述处理器901在用于确定上述应用程序需要调整到的目标版本的版本标识时,具体用于:
从上述版本切换请求获取上述切换版本标识,将上述切换版本标识确定为上述应用程序需要切换到的目标版本的版本标识。
可选的,上述处理器901在用于从云存储空间获取上述目标程序版本包,根据上述目标程序版本包将上述应用程序调整到上述目标版本时,具体用于:
将云存储空间挂载到本地,上述本地为上述应用程序所运行在的服务器;
通过挂载到本地的云存储空间,下载上述目标程序版本包,并对上述目标程序版本包进行解压处理,得到上述目标程序版本包的解压数据;
根据上述目标程序版本包的解压数据生成目标版本的上述应用程序。
具体实现中,本申请实施例中所描述的处理器901、存储装置902以及通信接口903可执行本申请实施例图2或图3提供的程序版本调整方法的相关实施例中所描述的实现方式,也可执行本申请实施例图8提供的程序版本调整装置的相关实施例中所描述的实现方式,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的程序版本调整装置所执行的计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文图2、图3所对应实施例中的方法,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文图2、图3所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请的部分实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种程序版本调整方法,其特征在于,所述方法包括:
响应于针对应用程序的版本调整触发,确定所述应用程序需要调整到的目标版本的版本标识;
根据所述版本标识从镜像仓库获取目标版本的所述应用程序对应的目标镜像,所述目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据,所述目标程序版本包为目标版本的所述应用程序对应的程序版本包;
根据所述程序运行环境镜像数据构建目标版本的所述应用程序的运行环境容器;
从云存储空间获取所述目标程序版本包,根据所述目标程序版本包将所述应用程序调整到所述目标版本,并在所述运行环境容器中运行目标版本的所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定当前版本的所述应用程序与目标版本的所述应用程序的程序运行环境是否相匹配;
若当前版本的所述应用程序与目标版本的所述应用程序的程序运行环境不相匹配,则执行所述根据所述版本标识从镜像仓库获取目标版本的所述应用程序对应的目标镜像的步骤及后续步骤。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若当前版本的所述应用程序与目标版本的所述应用程序的程序运行环境相匹配,则从所述云存储空间获取所述目标程序版本包,根据所述目标程序版本包将所述应用程序调整到所述目标版本,并在针对当前版本的所述应用程序构建的运行环境容器中运行目标版本的所述应用程序。
4.根据权利要求2所述的方法,其特征在于,所述确定当前版本的所述应用程序与目标版本的所述应用程序的程序运行环境是否相匹配,包括:
获取所述应用程序的当前版本的版本标识;
根据所述当前版本的版本标识以及所述目标版本的版本标识,确定当前版本的所述应用程序与目标版本的所述应用程序是否属于同一版本分支下的应用程序;
若是,则确定当前版本的所述应用程序与目标版本的所述应用程序的程序运行环境相匹配;
若否,则确定当前版本的所述应用程序与目标版本的所述应用程序的程序运行环境不相匹配。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
若检测到所述镜像仓库存在所述应用程序对应的新增镜像,且所述云存储空间存在与所述新增镜像相匹配的新增程序版本包,则确定所述新增镜像和所述新增程序版本包对应的所述应用程序的新增版本;
若所述新增版本为所述应用程序的一个或多个已记录版本中的最高版本,则确定所述应用程序满足更新条件;其中,所述已记录版本为所述镜像仓库中包含的镜像和所述云存储空间中包含的程序版本包对应的所述应用程序的版本;
在确定所述应用程序满足更新条件时,确定检测到针对所述应用程序的版本调整触发;
其中,所述确定所述应用程序需要调整到的目标版本的版本标识,包括:
将所述新增版本的版本标识确定为所述应用程序需要更新到的目标版本的版本标识。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
在接收到版本切换请求时,确定检测到针对所述应用程序的版本调整触发;所述版本切换请求携带切换版本标识;
其中,所述确定所述应用程序需要调整到的目标版本的版本标识,包括:
从所述版本切换请求获取所述切换版本标识,将所述切换版本标识确定为所述应用程序需要切换到的目标版本的版本标识。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述从云存储空间获取所述目标程序版本包,根据所述目标程序版本包将所述应用程序调整到所述目标版本,包括:
将云存储空间挂载到本地,所述本地为所述应用程序所运行在的服务器;
通过挂载到本地的云存储空间,下载所述目标程序版本包,并对所述目标程序版本包进行解压处理,得到所述目标程序版本包的解压数据;
根据所述目标程序版本包的解压数据生成目标版本的所述应用程序。
8.一种程序版本调整装置,其特征在于,所述装置包括:
获取模块,用于响应于针对应用程序的版本调整触发,确定所述应用程序需要调整到的目标版本的版本标识;
处理模块,用于根据所述版本标识从镜像仓库获取目标版本的所述应用程序对应的目标镜像,所述目标镜像包括程序运行环境镜像数据,且不包括目标程序版本包的镜像数据,所述目标程序版本包为目标版本的所述应用程序对应的程序版本包;
所述处理模块,还用于根据所述程序运行环境镜像数据构建目标版本的所述应用程序的运行环境容器;
调整模块,用于从云存储空间获取所述目标程序版本包,根据所述目标程序版本包将所述应用程序调整到所述目标版本,并在所述运行环境容器中运行目标版本的所述应用程序。
9.一种计算机设备,其特征在于,包括:处理器、存储装置和通信接口,所述处理器、所述通信接口和所述存储装置相互连接,其中,所述存储装置存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,用以实现如权利要求1-7中任一项所述的程序版本调整方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,用以实现如权利要求1-7中任一项所述的程序版本调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310899506.XA CN116603245B (zh) | 2023-07-21 | 2023-07-21 | 程序版本调整方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310899506.XA CN116603245B (zh) | 2023-07-21 | 2023-07-21 | 程序版本调整方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116603245A true CN116603245A (zh) | 2023-08-18 |
CN116603245B CN116603245B (zh) | 2023-09-29 |
Family
ID=87680497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310899506.XA Active CN116603245B (zh) | 2023-07-21 | 2023-07-21 | 程序版本调整方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116603245B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732275A (en) * | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
US7930273B1 (en) * | 2007-07-30 | 2011-04-19 | Adobe Systems Incorporated | Version management for application execution environment |
CN105677356A (zh) * | 2016-01-11 | 2016-06-15 | 上海雷腾软件股份有限公司 | 一种运维方法及设备 |
CN110119312A (zh) * | 2019-04-30 | 2019-08-13 | 广州微算互联信息技术有限公司 | 一种基于云存储的调度方法、系统、装置和存储介质 |
CN110716734A (zh) * | 2019-09-20 | 2020-01-21 | 北京奇艺世纪科技有限公司 | 一种软件升级的方法、装置、电子设备及介质 |
CN111651178A (zh) * | 2020-05-27 | 2020-09-11 | 平安普惠企业管理有限公司 | 容器配置更新方法、装置、计算机设备和存储介质 |
CN111756574A (zh) * | 2020-06-19 | 2020-10-09 | 浪潮电子信息产业股份有限公司 | 远程批量更新固件的方法、装置及计算机可读存储介质 |
CN113031993A (zh) * | 2021-04-26 | 2021-06-25 | 中国工商银行股份有限公司 | 基于集群容器的应用升级方法及装置 |
CN114296764A (zh) * | 2021-12-30 | 2022-04-08 | 北京字节跳动网络技术有限公司 | 系统升级方法、装置、存储介质和电子设备 |
CN114327578A (zh) * | 2021-12-31 | 2022-04-12 | 佛山技研智联科技有限公司 | 私有部署系统升级方法、装置、计算机设备及存储介质 |
CN114706564A (zh) * | 2022-05-16 | 2022-07-05 | 龙芯中科技术股份有限公司 | 软件包制作方法、装置、电子设备及存储介质 |
CN114756261A (zh) * | 2022-03-23 | 2022-07-15 | 广域铭岛数字科技有限公司 | 一种容器集群的升级方法、系统、电子设备及介质 |
CN116414417A (zh) * | 2023-04-14 | 2023-07-11 | 中国工商银行股份有限公司 | 版本更新方法、装置、非易失性存储介质及电子设备 |
-
2023
- 2023-07-21 CN CN202310899506.XA patent/CN116603245B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732275A (en) * | 1996-01-11 | 1998-03-24 | Apple Computer, Inc. | Method and apparatus for managing and automatically updating software programs |
US7930273B1 (en) * | 2007-07-30 | 2011-04-19 | Adobe Systems Incorporated | Version management for application execution environment |
CN105677356A (zh) * | 2016-01-11 | 2016-06-15 | 上海雷腾软件股份有限公司 | 一种运维方法及设备 |
CN110119312A (zh) * | 2019-04-30 | 2019-08-13 | 广州微算互联信息技术有限公司 | 一种基于云存储的调度方法、系统、装置和存储介质 |
CN110716734A (zh) * | 2019-09-20 | 2020-01-21 | 北京奇艺世纪科技有限公司 | 一种软件升级的方法、装置、电子设备及介质 |
CN111651178A (zh) * | 2020-05-27 | 2020-09-11 | 平安普惠企业管理有限公司 | 容器配置更新方法、装置、计算机设备和存储介质 |
CN111756574A (zh) * | 2020-06-19 | 2020-10-09 | 浪潮电子信息产业股份有限公司 | 远程批量更新固件的方法、装置及计算机可读存储介质 |
CN113031993A (zh) * | 2021-04-26 | 2021-06-25 | 中国工商银行股份有限公司 | 基于集群容器的应用升级方法及装置 |
CN114296764A (zh) * | 2021-12-30 | 2022-04-08 | 北京字节跳动网络技术有限公司 | 系统升级方法、装置、存储介质和电子设备 |
CN114327578A (zh) * | 2021-12-31 | 2022-04-12 | 佛山技研智联科技有限公司 | 私有部署系统升级方法、装置、计算机设备及存储介质 |
CN114756261A (zh) * | 2022-03-23 | 2022-07-15 | 广域铭岛数字科技有限公司 | 一种容器集群的升级方法、系统、电子设备及介质 |
CN114706564A (zh) * | 2022-05-16 | 2022-07-05 | 龙芯中科技术股份有限公司 | 软件包制作方法、装置、电子设备及存储介质 |
CN116414417A (zh) * | 2023-04-14 | 2023-07-11 | 中国工商银行股份有限公司 | 版本更新方法、装置、非易失性存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116603245B (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525624B (zh) | 一种容器登录方法、装置及存储介质 | |
US7849462B2 (en) | Image server | |
CN102571940B (zh) | 应用程序远程安装系统、方法、智能终端、应用服务器 | |
US9792623B2 (en) | Advertisement processing method and apparatus | |
US20060155674A1 (en) | Image server | |
JP7397094B2 (ja) | リソース構成方法、リソース構成装置、コンピューター機器、及びコンピュータープログラム | |
CN101968741A (zh) | 一种数据更新的方法、服务器及系统 | |
CN111045715A (zh) | 一种云游戏的热更新方法、系统和可读存储介质 | |
CN112882738A (zh) | 一种微服务架构下的配置信息更新方法、装置及电子设备 | |
CN113181646A (zh) | 游戏数据方法及装置、电子设备、存储介质 | |
CN110362338B (zh) | 一种在移动平台下的游戏资源打包和资源快速访问方法 | |
CN115794139B (zh) | 镜像数据处理方法、装置、设备以及介质 | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN114238237A (zh) | 任务处理方法、装置、电子设备和计算机可读存储介质 | |
CN106850724B (zh) | 数据推送方法及装置 | |
WO2024193352A1 (zh) | 一种数据处理方法、装置、计算机设备以及可读存储介质 | |
CN113110800A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN116603245B (zh) | 程序版本调整方法、装置、设备及可读存储介质 | |
CN114610384A (zh) | 一种应用迁移方法、装置、设备及存储介质 | |
CN113268272B (zh) | 基于私有云的应用交付方法、装置及系统 | |
CN111597021B (zh) | 一种实现应用程序运行的方法、装置、系统及相关设备 | |
CN111399896B (zh) | 补丁获取方法、装置、设备及存储介质 | |
EP2680135A1 (en) | Methods for updating applications | |
CN109167826B (zh) | Web应用的上架方法、装置及系统 | |
CN114675912A (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 |