CN116755794A - 一种于云原生的应用程序自动化部署方法及系统 - Google Patents
一种于云原生的应用程序自动化部署方法及系统 Download PDFInfo
- Publication number
- CN116755794A CN116755794A CN202310592440.XA CN202310592440A CN116755794A CN 116755794 A CN116755794 A CN 116755794A CN 202310592440 A CN202310592440 A CN 202310592440A CN 116755794 A CN116755794 A CN 116755794A
- Authority
- CN
- China
- Prior art keywords
- container
- application program
- application
- cluster
- deployment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000008602 contraction Effects 0.000 claims abstract description 28
- 238000003860 storage Methods 0.000 claims description 33
- 238000012544 monitoring process Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 13
- 230000002441 reversible effect Effects 0.000 claims description 9
- 230000002688 persistence Effects 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 18
- 238000012423 maintenance Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 3
- 230000008092 positive effect Effects 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000380131 Ammophila arenaria Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种于云原生的应用程序自动化部署方法及系统,本方法具体包括:建立应用程序镜像库:将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用。容器编排工具:采用容器编排工具,在集群中进行自动化部署、伸缩和管理。自动扩缩容:通过监听集群资源的使用状况,实现自动扩缩容。当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应。动态负载均衡:采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。通过综合运用以上技术手段和措施,基于云原生的应用程序自动化部署可以实现快速、灵活、可靠的应用程序部署。
Description
技术领域
本发明涉及软件工程和计算机科学技术领域,特别涉及一种于云原生的应用程序自动化部署方法及系统。
背景技术
互联网技术的快速发展和应用,使得云计算技术得以广泛应用。而在云计算技术当中,云原生应用程序部署是一项非常关键的技术。传统的应用程序部署方式通常需要手动配置,而且难以适应复杂的分布式环境。而基于云原生的应用程序自动化部署方法和系统,可以大大提高应用程序部署的效率、可靠性和安全性。
与传统的手动部署方式相比,基于云原生的应用程序自动化部署具有以下优点:
自动化部署:基于云原生的应用程序自动化部署可以根据预定义的规则,自动化地部署应用程序,避免了人工操作的疏忽和错误。
灵活性:基于云原生技术的应用程序部署方式可以适应不同的运行环境,可以快速地部署、升级和扩展应用程序。
可靠性:基于云原生的应用程序部署方法和系统可以自动化地进行容器编排和故障切换等操作,提高了应用程序的容错能力和可靠性。
安全性:基于云原生的应用程序自动化部署可以提供多层安全防护,包括健康检查、访问控制和认证机制等。
然而,目前现有的应用程序部署技术仍然存在一些问题和缺点。例如部署时需要手动配置:传统的应用程序部署通常需要手动配置,容易出现疏忽和错误;安全性不足:传统的应用程序部署方式安全性较低,容易受到网络攻击;部署效率低下:传统的应用程序部署效率低下,无法满足大规模、复杂的分布式环境需求。
发明内容
基于此,本申请实施例提供了一种于云原生的应用程序自动化部署方法及系统,可以有效地解决以上问题和缺点。它能够实现更高效、更安全的应用程序部署,提高了应用程序的可靠性和可维护性。
第一方面,提供了一种于云原生的应用程序自动化部署方法,该方法包括:
建立应用程序镜像库,具体将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用;
采用容器编排工具,在集群中进行自动化部署、伸缩和管理;
通过监听集群资源的使用状况,实现自动扩缩容;当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应;
采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。
可选地,所述建立应用程序镜像库,包括:
确定镜像仓库管理软件;其中,所述镜像仓库管理软件至少包括了DockerRegistry和Harbor;
安装和配置镜像仓库管理软件,根据需要进行安全设置、存储设置、访问控制等操作;
构建并推送镜像到镜像仓库中,具体使用Dockerfile进行构建,并将应用程序的源代码或二进制文件编译成可执行的镜像文件,并将其上传到镜像仓库;
从镜像仓库中拉取镜像到本地环境中,并对镜像仓库进行管理和维护。
可选地,采用容器编排工具,在集群中进行自动化部署、伸缩和管理,包括:
选择云服务提供商或自建集群,安装Kubernetes软件并配置网络、存储和安全设置,并创建Kubernetes对象来定义应用程序的运行状态和资源需求;
构建镜像并上传到Docker仓库,然后通过Kubernetes来运行容器;使用Kubernetes的Service对象提供稳定的网络地址和负载均衡功能,以便外部访问应用程序;
根据CPU利用率或其他指标自动调整Pod数量,实现自动化的伸缩;
使用Kubernetes的ConfigMap和Secret对象来管理应用程序的配置和敏感信息。
可选地,当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应,包括:
监控集群中各节点的CPU使用率、内存使用率、磁盘使用率等指标,判断是否需要添加新节点;
如果监控数据表明集群资源已经达到预设的阈值,则触发自动扩展功能;在自动扩展功能被触发后,集群管理器确定新节点并在上面部署容器,并将其加入到集群中;
新节点加入集群后,负载均衡器会自动检测到新的节点,并更新请求路由规则,监控新节点的资源使用情况。
可选地,容器通过存储卷读取文件、写入文件以及保存应用程序数据;并通过API网关统一入口点来提供对应用程序的访问。
可选地,所述方法还包括:
提供HTTP、TCP等多种协议的反向代理、负载均衡、请求路由等网络服务;以及提供身份认证、权限管理、访问控制等安全服务。
可选地,所述方法还包括:
提供分布式存储和共享存储等多种存储方式,以支持容器间文件及数据的持久化和共享;并收集和展示应用程序和底层基础设施的性能指标、告警信息和日志数据。
第二方面,提供了一种于云原生的应用程序自动化部署系统,该系统包括:
镜像模块,用于建立应用程序镜像库,具体将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用;
编排模块,采用容器编排工具,在集群中进行自动化部署、伸缩和管理;
扩缩容模块,用于通过监听集群资源的使用状况,实现自动扩缩容;当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应;
均衡模块,采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。
第三方面,提供了一种电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面任一所述的应用程序自动化部署方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面任一所述的应用程序自动化部署方法。
相较于传统的应用程序部署方式,基于云原生的应用程序自动化部署方法和系统具有以下优点和积极效果:
更高效的应用程序部署:本发明采用了基于容器技术的自动化部署方法,在构建、发布和运行应用程序方面都更加高效,节省了大量时间和人力成本。
更高可靠性和可维护性:采用自动扩展容器数量、动态负载均衡等策略,保证了应用程序在高并发访问下的稳定性和可用性。同时,能够快速部署新的版本,方便后期应用程序的维护和更新。
更灵活的部署方案:通过镜像仓库和容器编排工具,可以实现将应用程序快速移植到不同的云环境中,适应不同的业务需求和业务场景。
更高的安全性:采用基于云原生的技术,提供了多层次的安全保障措施,保证了数据和网络的安全。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
图1为本申请实施例提供的一种于云原生的应用程序自动化部署方法流程图;
图2为本申请可选的一个实施例提供的应用程序自动化部署步骤流程图;
图3为本申请可选的一个实施例提供的应用程序自动化部署步骤框图;
图4为本申请应用程序自动化部署整体架构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本发明的描述中,术语“包括”、“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包括了一系列步骤或单元的过程、方法、系统、产品或设备不必限于已明确列出的那些步骤或单元,而是还可包含虽然并未明确列出的但对于这些过程、方法、产品或设备固有的其它步骤或单元,或者基于本发明构思进一步的优化方案所增加的步骤或单元。
本发明创造旨在解决传统的应用程序部署方式需要手动配置,难以适应复杂分布式环境等问题,通过基于云原生技术的应用程序自动化部署方法和系统,实现更高效、更安全、更灵活的应用程序部署,提高应用程序的可靠性和可维护性。具体来说,本发明创造的核心课题是如何实现基于云原生的应用程序自动化部署。其方法是建立一个应用程序镜像库,使用容器编排工具进行应用程序自动化部署,并采用自动扩缩容、动态负载均衡等策略来实现高可用性和高性能的应用程序部署。请参考图1,其示出了本申请实施例提供的一种于云原生的应用程序自动化部署方法的流程图,该方法可以包括以下步骤:
步骤101,建立应用程序镜像库,具体将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用。
在本实施例中,建立应用程序镜像库具体通过以下步骤进行建立:
确定镜像仓库管理软件;其中,所述镜像仓库管理软件至少包括了DockerRegistry和Harbor;
安装和配置镜像仓库管理软件,根据需要进行安全设置、存储设置、访问控制等操作;
构建并推送镜像到镜像仓库中,具体使用Dockerfile进行构建,并将应用程序的源代码或二进制文件编译成可执行的镜像文件,并将其上传到镜像仓库;
从镜像仓库中拉取镜像到本地环境中,并对镜像仓库进行管理和维护。
步骤102,采用容器编排工具,在集群中进行自动化部署、伸缩和管理。
在本实施例中,具体包括:
选择云服务提供商或自建集群,安装Kubernetes软件并配置网络、存储和安全设置,并创建Kubernetes对象来定义应用程序的运行状态和资源需求;
构建镜像并上传到Docker仓库,然后通过Kubernetes来运行容器;使用Kubernetes的Service对象提供稳定的网络地址和负载均衡功能,以便外部访问应用程序;
根据CPU利用率或其他指标自动调整Pod数量,实现自动化的伸缩;
使用Kubernetes的ConfigMap和Secret对象来管理应用程序的配置和敏感信息。
步骤103,通过监听集群资源的使用状况,实现自动扩缩容;当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应。
其中,监控集群中各节点的CPU使用率、内存使用率、磁盘使用率等指标,判断是否需要添加新节点;
如果监控数据表明集群资源已经达到预设的阈值,则触发自动扩展功能;在自动扩展功能被触发后,集群管理器确定新节点并在上面部署容器,并将其加入到集群中;
新节点加入集群后,负载均衡器会自动检测到新的节点,并更新请求路由规则,监控新节点的资源使用情况。
步骤104,采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。
在本实施例中,在容器编排平台中,配置弹性负载均衡服务,并将其绑定到一组容器实例上。
当请求到达弹性负载均衡服务时,该服务会根据预定义的负载均衡算法(如轮询、最少连接数等)将请求分发到可用的容器实例中。
容器实例向服务注册中心发送注册请求,以将自身加入到服务发现机制中。服务发现机制会维护一个可用的容器实例列表,并定期更新该列表中的容器实例状态信息。
当某个容器实例不再可用时(如崩溃、网络故障等),它会向服务发现机制发送注销请求,使其被移除出可用的容器实例列表中。
服务发现机制会及时更新负载均衡服务的可用实例列表,使新的请求能够被均匀地分配到其他可用的容器实例中,从而实现动态负载均衡。
以下给出一个应用上述步骤的具体实施例,在某电商网站上线时,采用基于云原生技术的应用程序自动化部署方法和系统,将前端页面、后台服务、数据库等组件进行容器化,将容器镜像上传至镜像库,通过容器编排工具进行自动化部署。同时,系统还采用了动态扩缩容和负载均衡等策略来保证网站的高可用性和高性能。在用户访问量增加时,系统会自动扩展容器数量,保证了系统性能的稳定和可靠。
云原生的应用程序自动化部署方法和系统的应用示例包括但不限于:
自动化部署应用程序到私有云、公有云或混合云环境中。
自动化部署应用程序到容器化环境中,如Docker容器或Kubernetes。
自动化部署应用程序到云原生数据库中,如OpenStack,Zstack。
自动化部署应用程序到云原生存储中,如Amazon Web Services的S3或阿里云对象存储。
自动化部署应用程序到云原生网络中,如AWS的Elastic Load Balancing或阿里云网络中。
建立应用程序镜像库:将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用。
容器编排工具:采用Kubernetes等容器编排工具,在集群中进行自动化部署、伸缩和管理。
自动扩缩容:通过监听集群资源的使用状况,实现自动扩缩容。当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应。
动态负载均衡:采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。
通过综合运用以上技术手段和措施,基于云原生的应用程序自动化部署可以实现快速、灵活、可靠的应用程序部署。
例如,在某在线教育平台上,采用基于云原生技术的应用程序自动化部署方法和系统,将应用程序容器化,并上传至镜像库。运维人员可以通过容器编排工具进行自动化部署,在集群中实现自动伸缩和管理。当用户访问量增加时,系统会自动创建新的容器实例来处理请求,当用户访问量降低时,系统也会自动缩减容器数量。同时,系统还采用了动态负载均衡等策略,保证了用户请求能够被均匀分配到不同的容器实例中,避免单点故障,提高了系统的可用性和性能。
相较于传统的应用程序部署方式,基于云原生的应用程序自动化部署方法和系统具有以下优点和积极效果:
更高效的应用程序部署:本发明采用了基于容器技术的自动化部署方法,在构建、发布和运行应用程序方面都更加高效,节省了大量时间和人力成本。
更高可靠性和可维护性:采用自动扩展容器数量、动态负载均衡等策略,保证了应用程序在高并发访问下的稳定性和可用性。同时,能够快速部署新的版本,方便后期应用程序的维护和更新。
更灵活的部署方案:通过镜像仓库和容器编排工具,可以实现将应用程序快速移植到不同的云环境中,适应不同的业务需求和业务场景。
更高的安全性:采用基于云原生的技术,提供了多层次的安全保障措施,保证了数据和网络的安全。
这些优点和积极效果是因为本发明采用了以下不同于现有技术的技术手段来实现:
应用程序容器化:将应用程序组件进行容器化,使应用程序的部署和升级更加高效和可控。
容器编排工具:通过容器编排工具,可以实现自动化部署、伸缩和管理,提高了应用程序的可靠性和可维护性。
自动扩缩容和动态负载均衡:通过监听集群资源的使用状况,实现自动扩缩容,采用动态负载均衡等策略,保证了应用程序在高并发访问下的稳定性和可用性。
云原生技术和多层次安全保障措施:采用基于云原生的技术和多层次安全保障措施,提高了应用程序的安全性。
使用了微服务架构、Docker容器化、Kubernetes编排、API网关、持续集成/部署、监控和日志记录、自动扩缩容等一系列技术和方法,它们相互配合协同工作,构建了一个高效、稳定、安全的应用程序运行环境。
微服务架构:采用微服务架构可以将应用程序拆分为多个小型服务,每个服务独立开发、测试、部署和运维。这样可以提高应用程序的灵活性、可伸缩性和容错性。
Docker容器化:将应用程序组件进行容器化可以实现快速、可重复的部署,并且容器环境可以保证应用程序在不同平台和环境中的一致性。Docker还提供对应用程序的版本控制、打包和发布等功能。
Kubernetes编排:使用Kubernetes作为容器编排工具,可以实现对容器的自动化部署、伸缩和管理,同时支持负载均衡、服务发现、故障恢复、滚动升级等功能,大大简化了应用程序的运维工作。
API网关:通过API网关来提供对外访问的入口,并实现请求的路由、过滤、转换、安全检查、限流等操作,可以提高应用程序的安全性、稳定性和可扩展性。
持续集成/部署:采用持续集成/部署技术可以实现代码的自动化构建、测试、打包和发布,并将应用程序快速部署到生产环境中,缩短了开发-发布周期。
监控和日志记录:通过监控和日志记录可以实现对应用程序的性能、状态和行为的实时监控,并对可能发生的故障进行预警和处理。同时,日志记录也可以帮助开发人员诊断和调试应用程序问题。
自动扩缩容:采用自动扩缩容技术可以根据应用程序的负载情况来自动添加或删除节点,以确保应用程序在高峰期仍然能够正常运行。
Kubernetes:容器编排系统,可以将应用程序组件进行容器化,并提供对容器的自动化部署、伸缩和管理。
Helm:Kubernetes的包管理工具,它可以帮助用户定义、安装和升级Kubernetes应用程序,并提供了丰富的应用程序模板。
下面是一个Java应用部署在tomcat中间件并使用postgres数据库和ActiveMQ消息队列的集成环境的过程,用于Kubernetes环境自动化部署的步骤和配置文件示例:
具体步骤为:
创建一个Kubernetes的deployment,并指定容器镜像为java应用的镜像;
创建一个Kubernetes的service,用于将应用暴露为Kubernetes集群内部的服务;
创建一个Kubernetes的persistentvolume和persistentvolume claim,用于将postgres数据持久化;
创建一个Kubernetes的deployment,并指定容器镜像为postgres的镜像,并将上一步创建的persistent volume claim挂载到容器中;
创建一个Kubernetes的deployment,并指定容器镜像为activemq的镜像。
配置文件:
部署PostgreSQL
部署ActiveMQ
/>
部署Java应用程序
/>
/>
以上仅是一个简单的示例,实际部署可能因为环境不同、具体场景的不同而有所不同。
以下给出另一个可选实施例,在本实施例中包括:
应用程序镜像制作:将应用程序组件进行容器化,并将容器镜像上传至镜像仓库。
容器编排工具配置:采用容器编排工具,对应用程序进行自动化部署、伸缩和管理的配置。
集群部署:将容器集群部署到云平台上,各节点均匀分布。
反向代理负载均衡器:反向代理服务器会考虑目标主机的当前状态并根据此状态将请求转发到不同的主机。反向代理服务器可以确保应用程序的负载能够均衡地分配到不同的容器实例中。
存储卷:存储卷使得容器能够读取文件、写入文件以及保存应用程序数据。这是非常重要的,因为容器需要在运行时访问数据,而该数据必须被保存在不同的容器实例之间共享的地方。
API网关:API网关可以通过统一入口点来提供对应用程序的访问,并对传入的请求进行身份验证、授权和限流等操作。
监控和日志记录:监控和日志记录是应用程序运维中的重要组成部分,它可以帮助运维人员识别问题并快速地进行故障排除。
自动扩缩容:自动扩缩容是高效应对突发访问量的一种手段,当集群资源不足时,自动添加新的节点,以保证容器数量和负载相适应。
通过以上技术手段和措施,在基于云原生的应用程序自动化部署方法和系统中,可以快速地建立一个自动化部署、可伸缩、可靠性高、管理方便的应用程序运行环境。
如图2为应用程序自动化部署步骤流程图:
应用程序镜像制作:将应用程序组件进行容器化,并将容器镜像上传至镜像仓库。
集群部署:在云平台上创建一个集群,该集群由多个节点组成,并将镜像仓库中的镜像加载到每个节点上。
容器编排工具配置:使用容器编排工具(如Kubernetes),配置该工具对应用程序的自动化部署、伸缩和管理。配置文件可以描述应用程序的组件、服务端口、环境变量等信息。
反向代理负载均衡器:配置反向代理服务器来处理应用程序的流量,以确保请求能够转发到不同的容器实例中,从而实现负载均衡和高可用性。反向代理服务器还可以提供SSL终止、HTTP/2支持、访问日志记录等功能。
存储卷:为了在容器之间共享数据,需要使用存储卷。存储卷使得容器能够读取文件、写入文件以及保存应用程序数据。
API网关:API网关可以通过统一入口点来提供对应用程序的访问,并对传入的请求进行身份验证、授权和限流等操作。
监控和日志记录:监控和日志记录是应用程序运维中的重要组成部分,它可以帮助运维人员识别问题并快速地进行故障排除。使用监控工具收集集群和应用程序的指标数据,并使用日志记录工具将应用程序和容器的日志发送到集中式存储系统中。
自动扩缩容:为了应对突发访问量,需要配置自动扩缩容机制,以自动添加或删除节点来适应负载变化。
通过以上技术手段和措施,基于云原生的应用程序自动化部署的方法和系统可以实现快速、高效、可靠的应用程序运行环境。
如图3,为另一个应用程序自动化部署步骤框图:
应用程序构建组件:将应用程序的源代码或二进制文件编译成可执行的镜像文件,并将其上传到镜像仓库中。
编排组件:使用容器编排工具(如Kubernetes),对应用程序进行自动化部署、伸缩和管理的配置。该组件可以实现应用程序服务的负载均衡、容错、自愈、扩缩容等功能。
网络代理组件:提供HTTP、TCP等多种协议的反向代理、负载均衡、请求路由等网络服务。该组件负责将客户端请求转发到后端服务,并在集群中自动发现和路由服务,实现高可用和负载均衡。
存储组件:提供分布式存储和共享存储等多种存储方式,以支持容器间文件及数据的持久化和共享。该组件可以为应用程序提供高可靠、低延迟、高吞吐的存储服务。
监控组件:收集和展示应用程序和底层基础设施的性能指标、告警信息和日志数据等。该组件可以实现对应用程序的实时监控和故障定位,提高应用程序的可靠性和稳定性。
安全组件:提供身份认证、权限管理、访问控制等安全服务。该组件可以确保应用程序和数据的机密性、完整性和可用性。
基于云原生的应用程序自动化部署的方法和系统的框图如上所示,各个组件之间采用松耦合的架构,每个组件都有自己的职责和功能,它们相互配合协同工作,共同构建出一个高效、稳定、安全的应用程序运行环境。
如图4,给出了本申请应用程序自动化部署整体架构图。
本申请实施例还提供的一种于云原生的应用程序自动化部署系统。该系统包括:
镜像模块,用于建立应用程序镜像库,具体将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用;
编排模块,采用容器编排工具,在集群中进行自动化部署、伸缩和管理;
扩缩容模块,用于通过监听集群资源的使用状况,实现自动扩缩容;当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应;
均衡模块,采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。
关于应用程序自动化部署装置的具体限定可以参见上文中对于应用程序自动化部署方法的限定,在此不再赘述。上述应用程序自动化部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种电子设备,该电子设备可以是计算机。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该设备的处理器用于提供计算和控制能力。该设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于应用程序自动化部署数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用程序自动化部署方法。
在本申请的一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述应用程序自动化部署方法的步骤。
本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在本领域中,实现上述实施例方法的全部或部分流程可以通过计算机程序来指令相关的硬件来完成。所述的计算机程序可以存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可以包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式存在,例如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、存储器总线直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)以及存储器总线动态RAM(RDRAM)等。这些技术和设备都可以用于实现本申请所述的各种实施例方法,以提高计算机程序的执行效率和稳定性。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种于云原生的应用程序自动化部署方法,其特征在于,所述方法包括:
建立应用程序镜像库,具体将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用;
采用容器编排工具,在集群中进行自动化部署、伸缩和管理;
通过监听集群资源的使用状况,实现自动扩缩容;当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应;
采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。
2.根据权利要求1所述的应用程序自动化部署方法,其特征在于,所述建立应用程序镜像库,包括:
确定镜像仓库管理软件;其中,所述镜像仓库管理软件至少包括了Docker Registry和Harbor;
安装和配置镜像仓库管理软件,根据需要进行安全设置、存储设置、访问控制等操作;
构建并推送镜像到镜像仓库中,具体使用Dockerfile进行构建,并将应用程序的源代码或二进制文件编译成可执行的镜像文件,并将其上传到镜像仓库;
从镜像仓库中拉取镜像到本地环境中,并对镜像仓库进行管理和维护。
3.根据权利要求1所述的应用程序自动化部署方法,其特征在于,采用容器编排工具,在集群中进行自动化部署、伸缩和管理,包括:
选择云服务提供商或自建集群,安装Kubernetes软件并配置网络、存储和安全设置,并创建Kubernetes对象来定义应用程序的运行状态和资源需求;
构建镜像并上传到Docker仓库,然后通过Kubernetes来运行容器;使用Kubernetes的Service对象提供稳定的网络地址和负载均衡功能,以便外部访问应用程序;
根据CPU利用率或其他指标自动调整Pod数量,实现自动化的伸缩;
使用Kubernetes的ConfigMap和Secret对象来管理应用程序的配置和敏感信息。
4.根据权利要求1所述的应用程序自动化部署方法,其特征在于,当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应,包括:
监控集群中各节点的CPU使用率、内存使用率、磁盘使用率等指标,判断是否需要添加新节点;
如果监控数据表明集群资源已经达到预设的阈值,则触发自动扩展功能;在自动扩展功能被触发后,集群管理器确定新节点并在上面部署容器,并将其加入到集群中;
新节点加入集群后,负载均衡器会自动检测到新的节点,并更新请求路由规则,监控新节点的资源使用情况。
5.根据权利要求1所述的应用程序自动化部署方法,其特征在于,容器通过存储卷读取文件、写入文件以及保存应用程序数据;并通过API网关统一入口点来提供对应用程序的访问。
6.根据权利要求1所述的应用程序自动化部署方法,其特征在于,所述方法还包括:
提供HTTP、TCP等多种协议的反向代理、负载均衡、请求路由等网络服务;以及提供身份认证、权限管理、访问控制等安全服务。
7.根据权利要求1所述的应用程序自动化部署方法,其特征在于,所述方法还包括:
提供分布式存储和共享存储等多种存储方式,以支持容器间文件及数据的持久化和共享;并收集和展示应用程序和底层基础设施的性能指标、告警信息和日志数据。
8.一种于云原生的应用程序自动化部署系统,其特征在于,所述系统包括:
镜像模块,用于建立应用程序镜像库,具体将应用程序组件进行容器化,并将容器镜像上传至镜像库中,以供容器编排工具调用;
编排模块,采用容器编排工具,在集群中进行自动化部署、伸缩和管理;
扩缩容模块,用于通过监听集群资源的使用状况,实现自动扩缩容;当集群资源不足时,自动添加新的节点,保证容器数量与负载相适应;
均衡模块,采用弹性负载均衡、服务发现等策略,实现动态负载均衡,保证请求能够被均匀分配到不同的容器实例中。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7任一所述的应用程序自动化部署方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一所述的应用程序自动化部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310592440.XA CN116755794A (zh) | 2023-05-24 | 2023-05-24 | 一种于云原生的应用程序自动化部署方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310592440.XA CN116755794A (zh) | 2023-05-24 | 2023-05-24 | 一种于云原生的应用程序自动化部署方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116755794A true CN116755794A (zh) | 2023-09-15 |
Family
ID=87948698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310592440.XA Pending CN116755794A (zh) | 2023-05-24 | 2023-05-24 | 一种于云原生的应用程序自动化部署方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755794A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117156649A (zh) * | 2023-11-01 | 2023-12-01 | 中节能晶和科技有限公司 | 一种支持自动扩缩容接入不同数量单灯控的系统和方法 |
CN117234721A (zh) * | 2023-09-18 | 2023-12-15 | 安徽继远软件有限公司 | 基于作业编排自适应技术的云原生系统自动化作业研究系统与应用 |
CN117519989A (zh) * | 2024-01-03 | 2024-02-06 | 上海燧原智能科技有限公司 | 一种分布式系统托管方法、装置、电子设备及存储介质 |
CN117785266A (zh) * | 2023-12-26 | 2024-03-29 | 无锡雪浪数制科技有限公司 | 应用程序的自动发布方法、调度服务器及低代码平台 |
-
2023
- 2023-05-24 CN CN202310592440.XA patent/CN116755794A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234721A (zh) * | 2023-09-18 | 2023-12-15 | 安徽继远软件有限公司 | 基于作业编排自适应技术的云原生系统自动化作业研究系统与应用 |
CN117156649A (zh) * | 2023-11-01 | 2023-12-01 | 中节能晶和科技有限公司 | 一种支持自动扩缩容接入不同数量单灯控的系统和方法 |
CN117156649B (zh) * | 2023-11-01 | 2024-03-01 | 中节能晶和科技有限公司 | 一种支持自动扩缩容接入不同数量单灯控的系统和方法 |
CN117785266A (zh) * | 2023-12-26 | 2024-03-29 | 无锡雪浪数制科技有限公司 | 应用程序的自动发布方法、调度服务器及低代码平台 |
CN117519989A (zh) * | 2024-01-03 | 2024-02-06 | 上海燧原智能科技有限公司 | 一种分布式系统托管方法、装置、电子设备及存储介质 |
CN117519989B (zh) * | 2024-01-03 | 2024-04-02 | 上海燧原智能科技有限公司 | 一种分布式系统托管方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116755794A (zh) | 一种于云原生的应用程序自动化部署方法及系统 | |
Xiong et al. | Extend cloud to edge with kubeedge | |
CN110462589B (zh) | 本地装置协调器中的按需代码执行 | |
CN111831569A (zh) | 基于故障注入的测试方法、装置、计算机设备和存储介质 | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
CN112035228A (zh) | 一种资源调度方法及装置 | |
CN111880936B (zh) | 资源调度方法、装置、容器集群、计算机设备和存储介质 | |
US11398989B2 (en) | Cloud service for cross-cloud operations | |
CN111045854B (zh) | 用于管理服务容器的方法、设备和计算机可读介质 | |
US10498817B1 (en) | Performance tuning in distributed computing systems | |
CN110245031B (zh) | 一种ai服务开放中台及方法 | |
KR102114339B1 (ko) | 액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법 | |
WO2017025203A1 (en) | Managing lifecycle of a software container | |
CN112714018B (zh) | 基于网关的ElasticSearch搜索服务方法、系统、介质及终端 | |
CN112882792A (zh) | 信息加载方法、计算机设备及存储介质 | |
Mohamed et al. | MidCloud: an agent‐based middleware for effective utilization of replicated Cloud services | |
US10466991B1 (en) | Computing instance software package installation | |
Eiermann et al. | On a fog computing platform built on ARM architectures by Docker container technology | |
Fazio et al. | Managing volunteer resources in the cloud | |
CN116755799A (zh) | 一种服务编排系统和方法 | |
Maule et al. | Performance and QoS in service-based systems | |
US10684840B1 (en) | Software package installation and monitoring | |
US10824476B1 (en) | Multi-homed computing instance processes | |
CN113873052B (zh) | Kubernetes集群的域名解析方法、装置及设备 | |
US8799926B1 (en) | Active node detection in a failover computing environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |