CN109445802B - 基于容器的私有化Paas平台及其发布应用的方法 - Google Patents

基于容器的私有化Paas平台及其发布应用的方法 Download PDF

Info

Publication number
CN109445802B
CN109445802B CN201811128670.6A CN201811128670A CN109445802B CN 109445802 B CN109445802 B CN 109445802B CN 201811128670 A CN201811128670 A CN 201811128670A CN 109445802 B CN109445802 B CN 109445802B
Authority
CN
China
Prior art keywords
container
component
application
paas
privatized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811128670.6A
Other languages
English (en)
Other versions
CN109445802A (zh
Inventor
曾德强
游坤
庞延斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhongan Information Technology Service Co ltd
Original Assignee
Zhongan Information Technology Service Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongan Information Technology Service Co Ltd filed Critical Zhongan Information Technology Service Co Ltd
Priority to CN201811128670.6A priority Critical patent/CN109445802B/zh
Publication of CN109445802A publication Critical patent/CN109445802A/zh
Application granted granted Critical
Publication of CN109445802B publication Critical patent/CN109445802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Warehouses Or Storage Devices (AREA)

Abstract

本发明公开了一种基于容器的私有化Paas平台及其发布应用的方法,所述平台包括:容器组件,用于封装应用的运行环境、管理应用启动后产生的需要持久化的数据以及应用所在的网络,所述容器组件同时管理若干容器;容器调度组件,用于调度容器、维护容器整个生命周期的相关操作以及为同类容器在外部流量访问时添加负载均衡配置;发布组件,用于对不同开发语言进行运行环境的封装,将应用封装为镜像并推送至镜像仓库;Paas管理组件,用于控制所述平台相关业务的流程和交互,并为用户提供交互的界面。本发明可以支持应用版本的频繁迭代以及降低由于应用版本频繁迭代的导致的出错率、同时满足企业对服务的高可用性的需求、能够进行横向扩容等。

Description

基于容器的私有化Paas平台及其发布应用的方法
技术领域
本发明涉及通信技术领域,特别涉及一种基于容器的私有化Paas平台及其发布应用的方法。
背景技术
随着互联网风潮的盛行,各个行业都在转型互联网的背景下,如何利用互联网让企业提供更好的服务成为热点。而互联网企业拥有和传统企业相比截然不同的特点和要求:
互联网企业普遍接受DevOps文化,采用敏捷开发模式,而不再是传统的瀑布流模型或者螺旋模型。因为这些改变确实满足了互联网企业内生性的需求,比如:
1、互联网企业面对的客户数量、种类众多,需求旺盛,且需要尽快的应对新商机背后的新需求。所以要求企业对于服务进行更加频繁的版本迭代开发和部署,也就是说企业的核心服务需要拥有持续迭代、持续部署的能力。
2、持续迭代意味着差异性的持续产生,同时差异性也意味着出错概率的提升。而如果可以做到持续部署,就可以做到服务在每次部署之间包含的变化更少,进而减少每次部署时出现错误的可能性,使服务以一种更加平滑的方式进行迭代升级。
3、互联网企业需要自己服务的高可用性有着很高的需求,这其中不但包含服务本身的高可用性,还包含服务所在平台自身的高可用性。因为企业级服务,特别是核心级的服务无法忍受频繁的出错或中断。
4、互联网企业的访问量巨大,传统的单体应用性能瓶颈明显,且没有办法进行横向扩展,所以无法满足新的性能需求。同时,互联网企业所承受的访问量可能随着本身的成长而迅速增长,或者伴随双十一等大型促销活动而流量剧增,企业需要拥有灵活应对该问题的手段。
综上所述,互联网企业为了满足上述需求,不仅需要进行工作流程和文化的转型,更需要一套和互联网企业特性适配的工具来应对上述需求和挑战。
容器技术与虚拟机技术相比,虚拟机技术是对操作系统的虚拟化,容器技术只是对于进程的虚拟化。首先,容器技术作为新一代的虚拟化技术,不仅也实现了进程以及进程相关资源的隔离,而且相比虚拟机技术只占用更少的系统资源。其次,一般来说虚拟机的镜像大小普遍都是GB级别,而容器的镜像大小普遍都是MB级别,这也是容器技术相对于虚拟机技术的一大优势。也正是因为上述容器技术的轻量化,启动一个容器的时间最快可以到秒级,而虚拟机启动时间通常都是分钟级。最后,使用容器技术可以将应用所依赖的运行环境打包,解决了在多个环境切换时,应用因为环境的不同而无法正常运行的常见问题。所以综上所述,在现代互联网企业业务访问量剧烈变动且要求快速响应的背景中,容器技术相对于虚拟机技术以及传统的直接使用物理机的优势不言而喻。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于容器的私有化Paas平台及其发布应用的方法,以克服现有技术不能支持应用的版本快速迭代以及频繁迭代时出错率高、不能满足企业对服务的高可用性的需求、不能进行横向扩容等问题。
为解决上述技术问题,本发明采用的技术方案是:
一方面,提供了一种基于容器的私有化Paas平台,所述平台包括:
容器组件,用于封装应用的运行环境、管理应用启动后产生的需要持久化的数据以及应用所在的网络,所述容器组件同时管理若干容器;
容器调度组件,用于调度容器、维护容器整个生命周期的相关操作以及为同类容器在外部流量访问时添加负载均衡配置;
发布组件,用于对不同开发语言进行运行环境的封装,将应用封装为镜像并推送至镜像仓库;
Paas管理组件,用于控制所述平台相关业务的流程和交互,并为用户提供交互的界面。
进一步的,所述容器调度组件包括:
主节点,用于接受外部请求,调度容器;
工作节点,用于维护容器整个生命周期的相关业务。
进一步的,所述主节点包括:
API网关,用于接受外部请求;
负载均衡器,用于将外部流量分流到多个API网关;
调度器,用于调度容器至工作节点。
进一步的,所述主节点还包括:
控制器,用于控制容器的状态
进一步的,所述工作节点包括:
Kubelet,用于维护容器整个生命周期的相关操作;
cAdvisor,用于提供容器的监控数据;
kube-proxy,用于提供工作节点上相关网络规则。
进一步的,所述发布组件包括:
代码仓库,用于存储应用对应的代码;
构建模块,用于获取应用对应的代码,并且进行持续集成生成对应应用的镜像,并将所述镜像推送至镜像仓库;
镜像仓库,用于存储对应应用的镜像。
进一步的,所述Paas管理组件包括:
发布中心管理模块,用于与所述发布组件交互,向发布组件发送执行应用发布任务的请求;
应用管理模块,用于与所述容器调度组件交互,调用所述容器调度组件将所述应用调度至工作节点上。
进一步的,所述Paas管理组件还包括:
基础资源管理模块,用于管理所述平台的基础信息。
进一步的,所述平台还包括:
监控组件,用于采集、过滤、存储监控数据以及配置告警规则。
进一步的,所述监控组件采集监控数据的过程包括:
以整个集群为维度,采集可以体现整个集群整体状态的监控数据;和/或
以集群中的各个节点为维度,收集以主机为中心的各种常见运维指标的监控数据;和/或
以容器为维度,采集以容器为中心的各种常见运维指标的监控数据。
进一步的,所述平台还包括:
告警组件,用于通过去重后进行告警信息的分发通知,触发告警。
另一方面,提供了一种基于容器的私有化Paas平台发布应用的方法,所述方法包括如下步骤:
S1:Paas管理组件向发布组件发送请求,执行应用发布任务;
S2:发布组件接收到所述请求后,通过代码仓库获取代码,进行持续集成生成对应应用的镜像并推送至镜像仓库;
S3:镜像仓库镜像同步完成后,通知所述发布组件,所述发布组件通知所述Paas管理组件任务执行完毕;
S4:所述Paas管理组件调用容器调度组件,所述容器调度组件对所述应用进行调度;
S5:所述容器调度组件从所述镜像仓库获取对应应用的镜像后启动所述应用以及相应的容器;
S6:所述容器调度组件通知所述Paas管理组件任务完成。
进一步的,所述方法还包括:
S7:所述容器启动后,所述Paas管理组件调用监控组件以及告警组件,获取对应的应用的监控数据。
进一步的,所述方法还包括:
S8:所述监控组件将所述监控数据返回给所述Paas管理组件,所述Paas管理组件在前端界面中进行渲染,以图表形式展现对应应用的监控数据。
本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,通过将轻量级的容器技术、多功能的容器调度组件和便捷的发布组件结合在一起,从根本上解决了企业在发布自己的服务时,结合devops文化和敏捷开发的理念之后,可以很方便的达到持续部署的目标,享受持续部署带来的好处,真正实现应用应用版本升级的高正确率。
2、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,通过将所述私有化Paas平台上的关键组件,通过高可用方案进行搭建,消除单点故障的做法,从底层可以保证平台的高可用性;其次,容器调度系统拥有应用的就绪检查与健康检查,如果一个应用正常启动后发生异常,将会被平台重启并正确处理流量的导流以保证应用持续处于正常工作状态;最后,辅助监控组件和告警组件分别对企业Paas平台的基础设施和其上运行的应用进行监控和报警,从而进一步保证整个Paas平台的高可用性。综合上述三个维度,对于Paas平台上应用的可用性进行全方位的保证。
3、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,通过将传统的单体应用根据功能等,高度解耦后分拆为多个不同的应用模块,最终形成多个应用相互配合工作的分布式应用架构。此时,当某个模块性能成为瓶颈时,只需要简单的将该模块进行横向扩容即可满足性能的需求。该Paas平台就提供了完整的扩缩容机制,并且支持手动扩缩容和通过资源状态的自动扩缩容功能两种功能。
4、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,企业的应用容器会在一定策略下自动平衡的调度到集群中的所有可用Node节点上,并且可以做到各个应用之间CPU、内存的限制和超售,将集群整体资源的使用率提高。另外,由于容器技术的轻量级特性,也使得启动应用容器本身的资源消耗很小,和虚拟机技术或传统的物理机管理模式相比,为企业显著的减少了基础设施的购买和维护成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于容器的私有化Paas平台的结构示意图;
图2是本发明实施例提供的基于容器的私有化Paas平台中容器调度组件的结构示意图;
图3是本发明实施例提供的基于容器的私有化Paas平台中容器调度组件的主节点的架构图;
图4是本发明实施例提供的基于容器的私有化Paas平台中容器调度组件的工作节点的架构图;
图5是本发明其中一个实施例提供的基于容器的私有化Paas平台发布应用的方法的流程图;
图6是本发明另一个实施例提供的的基于容器的私有化Paas平台发布应用的方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的基于容器的私有化Paas平台的结构示意图,参照图1所示,该平台包括:
容器组件,用于封装应用的运行环境、管理应用启动后产生的需要持久化的数据,以及应用所在的网络,所述容器组件同时管理若干容器。其中,产生的需要持久化的数据,因应用类型不同而不同,例如:启动一个数据库类型的应用,产生的需要持久化数据就是记录数据库库表信息的相关文件。
具体的,本发明实施例提供的基于容器的私有化Paas平台中,使用成熟且已经大量商用的Docker作为容器技术的runtime,实现容器技术的细节。
本发明实施例提供的基于容器的私有化Paas平台中,容器组件处于整个架构的底层,使用Docker作为容器的运行时,是整个Paas平台最基础的组件。它在这个架构中主要负责应用运行环境的封装、应用启动后产生的需要持久化的数据的管理以及应用所在网络的管理。通过容器组件,将各个应用以容器为最小调度粒度重新组织。由于使用容器技术可以将应用所依赖的运行环境打包,因此可以解决在多个环境切换时,应用因为环境的不同而无法正常运行的常见问题。
容器调度组件,用于调度容器、维护容器整个生命周期的相关操作以及为同类容器在外部流量访问时添加负载均衡配置。
具体的,容器调度组件是整个Paas平台的底层最核心的功能,主要包括:
容器的调度策略:当容器需要启动时,需要结合当前集群中每个节点的资源使用情况、结合当前容器与资源池中各个节点的亲和性情况、结合当前容器与各个节点的排斥性情况等诸多条件去综合调度。
维护容器整个生命周期的相关操作:容器的生命周期是指创建、查询、扩缩容、删除等几个阶段,例如:容器从拉取镜像、正常创建并启动容器;容器正常运行后对于容器进行就绪检查与健康检查;容器在使用过程中,随着负载上升或下降后,可以灵活快速的扩容或者缩容容器数量来应对业务访问量的变更;容器不再需要时,容器的停止与删除。
为同类容器在外部流量访问时添加负载均衡配置。容器启动在不同的节点上之后,每个容器都有一个属于自己的服务地址。外部流量访问同类型的多个容器服务地址时,同类型的多个容器之前需要添加软件负载均衡器,然后通过负载均衡器去访问,而不是直接通过服务地址去直接访问容器。
本发明实施例提供的基于容器的私有化Paas平台中,使用Kubernetes作为容器的调度实现。Kubernetes是谷歌生产环境中十几年来大规模容器集群管理系统Brog的开源版本,采用在语言层面具有很多异步原语支持的GoLang语言开发,已经成为当今开源社区中最活跃的几个项目之一,同时也成为了当今容器调度的事实标准。
图2是本发明实施例提供的基于容器的私有化Paas平台中容器调度组件的结构示意图,参照图2所示,容器调度组件在整个架构中处于容器组件之上,是组成基于容器的私有化Paas平台底层最核心功能的组件。底层使用Kubernetes作为整个调度器的实现,其中,容器调度组件包括:
主节点(Master),用于接受外部请求,调度容器;
工作节点(Node),用于维护容器整个生命周期的相关业务。
具体的,所述主节点(Master)包括:
API网关(apiserver),用于接受外部请求;
负载均衡器,用于将外部流量分流到多个API网关;
调度器(scheduler),用于调度容器至工作节点,即决定容器调度到哪个工作节点上;
控制器(controller-manager,以下简称controller),通过调用docker相关api的方式,控制容器的各种状态:例如容器的启动、停止;同类型容器同时需要保证启动的数量等;
数据库(etcd),作为容器调度组建的数据库,用于存储调度组件中的所有数据。例如调度组件中服务(service)相关的元信息,比如服务名称、标签、开启的端口号等信息;又例如服务组件中所有部署(deployment)相关的元信息,比如部署的名称,标签,期望数量等。
所述工作节点(Node)包括:
Kubelet,用于维护容器整个生命周期的相关操作;
cAdvisor,用于提供容器的监控数据;
kube-proxy,用于提供工作节点上相关网络规则。
图3是本发明实施例提供的基于容器的私有化Paas平台中容器调度组件的主节点的架构图,参照图3所示,主节点中所有重要的组件都采用高可用方案进行部署,从根本上保证了所述基于容器的私有化Paas平台的高可用性以及其上应用的高可用性,其中:
apiserver的高可用模式:外部的请求流量通过负载均衡器,将流量分流到多个多活的apiserver。在提高了并发处理能力和性能的同时,负载均衡器通过对多个apiserver进行健康检查,保证负载均衡器之后服务的可用性。当某个具体的apiserver后端服务异常时,负载均衡器会将其自动移除,从而实现了apiserver整体服务的高可用性。
scheduler可controller的高可用模式:scheduler和controller这两个服务都是通过互斥锁实现的主备模式来实现各自的高可用性。当服务正常启动时会尝试获取一个互斥锁,能够获取到互斥锁的服务正常提供服务,而没有获取到互斥锁的服务则被阻塞,并将不断持续的尝试获取该互斥锁。一旦之前获取到锁的服务发生异常时,互斥锁就会被释放,其他之前被阻塞的服务,在下一次尝试获取锁时就可以成功获取到该互斥锁,并开始提供服务。
etcd服务的高可用模式。etcd底层基于RAFT算法,保证集群化之后每个节点数据的一致性,从而实现了服务的高可用性。例如,当N为集群中总结点数量,处于正常工作状态的节点数大于等于ceil((N+1)/2),其中ceil代表括号中的结果向上取整,N为正整数。在满足上述条件的前提下,集群存在一定程度的容错性,提供了服务的高可用性。
通过上述所有组件的有机结合,构成了主节点(Master)服务整体的高可用性架构。
图4是本发明实施例提供的基于容器的私有化Paas平台中容器调度组件的主节点的架构图,参照图4所示,其中apiserver均衡负载并不直接属于Node节点,但是被Node节点的Kubelet服务所依赖,所以用虚线标出,互联网(Internet)和防火墙(firwall)也不属于工作节点。其中的Kubelet服务持续观察(watch)apiserver容器资源的配置和状态,当配置或状态发生变化时,Kubelet就会对其Node节点上的容器进行配置的变更或进行生命周期的管理。kube-proxy的作用就是抽象企业不同的应用,将同类的应用置于同一个流量入口,其作用就是一个软件实现的负载均衡器,当外部流量到达时,将流量按照对应的策略分配到对应的后端应用上。cAdvisor的作用是收集容器的监控信息。
发布组件,用于对不同开发语言进行运行环境的封装,将应用封装为镜像并推送至镜像仓库。
进一步的,所述发布组件包括:
代码仓库,用于存储应用对应的代码;
构建模块,用于获取应用对应的代码,并且进行持续集成生成对应应用的镜像,并将所述镜像推送至镜像仓库;
镜像仓库,用于存储对应应用的镜像。
具体的,发布组件在整个架构中相对独立,在本发明实施例提供的基于容器的私有化Paas平台中,底层采用Jenkins实现,并且主要使用了Jenkins中的pipeline功能。根据企业内部特有的业务场景,自定义相关业务的实现步骤,最终通过pipeline进行串联,实现了基于git和svn中代码的管理功能以及对不同开发语言进行运行环境的封装,最终将各个单独的应用封装为镜像推入镜像仓库以待使用。
Paas管理组件,用于控制所述平台相关业务的流程和交互,并为用户提供交互的界面。
具体的,Paas管理组件在整个系统的业务流程上处于中心地位,起到控制整个平台相关业务流程和交互的作用。因为Paas管理组件与除了容器组件之外的所有组件直接交互,将整体进行串联,并且通过网页的形式为企业用户提供交互的界面。另外,Paas管理组件还实现了用户体系、基于角色的用户访问控制体系以及部门等级别的命名空间组织体系,实现完整可靠、以权限最小化为原则的鉴权系统。除此之外还有操作审计功能,可以完整的追踪到所有用户详细的操做记录。
进一步的,所述Paas管理组件包括:
发布中心管理模块,用于与所述发布组件交互,向发布组件发送执行应用发布任务的请求;
应用管理模块,用于与所述容器调度组件交互,调用所述容器调度组件将所述应用调度至工作节点上;
基础资源管理模块,用于管理所述平台的基础信息,其中基础信息包括用户信息、部门信息、权限信息、主机信息等一系列基础资源础信息。
具体的,Paas管理组件可以有机的将所述的基于容器的私有化Paas平台的所有组件整合在一起。应用管理模块与容器调度组件交互,完成以容器组件和容器调度组件为依托的应用管理;发布中心管理模块与发布组件交互,完成以发布组件为依托的发布中心管理;基础资源管理模块完成用户管理、部门管理、权限管理、主机管理等一系列基础资源的管理。通过有机的配合与协作,打通串联整个私有化Paas平台的业务逻辑并提供友好的界面以供企业用户进行操作。
进一步参照图1所示,,所述基于容器的私有化Paas平台还包括:
监控组件,用于采集、过滤、存储监控数据以及配置告警规则。
告警组件,用于通过去重后进行告警信息的分发通知,触发告警。
具体的,监控组件和告警组件与Paas管理组件交互,完成以监控组件、告警组件为依托的监控管理、告警管理。
进一步的,所述监控组件采集监控数据的过程包括:
以整个集群为维度,采集可以体现整个集群整体状态的监控数据;和/或
以集群中的各个节点为维度,收集以主机为中心的各种常见运维指标的监控数据;和/或
以容器为维度,采集以容器为中心的各种常见运维指标的监控数据。
通过以上收集到的基础数据,监控组件还支持很多高级查询功能以便再次以不同的维度进行监控数据的聚合和处理。另外,监控组件中配置相关告警规则,对于收集到的数据进行判断后,就可以通知告警组件,让告警组件触发告警,告警组件通过去重后以多种方式进行告警信息的分发通知。
具体的,监控和告警组件在整个架构中与容器调度组件紧密相关,在本发明实施例提供的基于容器的私有化Paas平台中,监控组件底层采用Prometheus,告警组件采用alert-manager。告警组件Prometheus与容器调度组件中的apiserver进行通信,获取整个集群的节点拓扑,最终分别从集群中各个节点的cAdvisor中收集并存储相关的监控信息。如果定义了告警规则,则会触发告警,prometheus将告警信息推送给alert-manager,alert-manager进行去重过滤、告警级别合并等一系列复杂处理后,执行最后的告警通知动作,如发送邮件等。
对于上述实施例中的基于容器的私有化Paas平台,本发明实施例还提供一种基于上述实施例的平台的发布应用的方法。
图5是根据一示例性实施例示出的一种基于容器的私有化Paas平台发布应用的方法的流程图,如图5所示,该方法包括如下步骤:
S1:Paas管理组件向发布组件发送请求,执行应用发布任务。
S2:发布组件接收到所述请求后,通过代码仓库获取代码,进行持续集成生成对应应用的镜像并推送至镜像仓库,以供后续使用。
S3:镜像仓库镜像同步完成后,通知所述发布组件,所述发布组件通知所述Paas管理组件任务执行完毕。
S4:所述Paas管理组件调用容器调度组件,所述容器调度组件对所述应用进行调度;具体的,所述容器调度组件将所述应用调度到某个工作节点上。
S5:所述容器调度组件从所述镜像仓库获取对应应用的镜像后启动所述应用以及相应的容器;具体的,步骤S4中提到的的工作节点从所述镜像仓库获取对应应用的镜像后启动所述应用以及相应的容器。
S6:所述容器调度组件通知所述Paas管理组件任务完成。
具体的,在所述基于容器的私有化Paas平台上发布应用时,可以在平台上进行待发布应用的配置编排,在应用列表中选择需要发布的应用,设置该应用在不同环境中不同的参数,然后将应用发布到对应的环境。应用发布完成后,可以在平台的前端界面上查看相关信息,包括应用的名称、实例数、发布的目标集群名称、该应用在当前平台的IP地址、该应用所在工作节点的IP等信息。
图6是根据另一示例性实施例示出的一种基于容器的私有化Paas平台发布应用的方法的流程图,如图6所示,该方法除了包括上述方法中的步骤以外,还包括以下步骤:
S7:所述容器启动后,所述Paas管理组件调用监控组件以及告警组件,获取对应的应用的监控数据。
S8:所述监控组件将所述监控数据返回给所述Paas管理组件,所述Paas管理组件在前端界面中进行渲染,以图表形式展现对应应用的监控数据。
具体的,在所述基于容器的私有化Paas平台上发布应用后,还可以点击实时监控的标签页,查看该应用相关容器在CPU、内存、网络和文件读写相关的监控信息。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,通过将轻量级的容器技术、多功能的容器调度组件和便捷的发布组件结合在一起,从根本上解决了企业在发布自己的服务时,结合devops文化和敏捷开发的理念之后,可以很方便的达到持续部署的目标,享受持续部署带来的好处,真正实现应用应用版本升级的高正确率。
2、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,通过将所述私有化Paas平台上的关键组件,通过高可用方案进行搭建,消除单点故障的做法,从底层可以保证平台的高可用性;其次,容器调度系统拥有应用的就绪检查与健康检查,如果一个应用正常启动后发生异常,将会被平台重启并正确处理流量的导流以保证应用持续处于正常工作状态;最后,辅助监控组件和告警组件分别对企业Paas平台的基础设施和其上运行的应用进行监控和报警,从而进一步保证整个Paas平台的高可用性。综合上述三个维度,对于Paas平台上应用的可用性进行全方位的保证。
3、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,通过将传统的单体应用根据功能等,高度解耦后分拆为多个不同的应用模块,最终形成多个应用相互配合工作的分布式应用架构。此时,当某个模块性能成为瓶颈时,只需要简单的将该模块进行横向扩容即可满足性能的需求。该Paas平台就提供了完整的扩缩容机制,并且支持手动扩缩容和通过资源状态的自动扩缩容功能两种功能。
4、本发明实施例提供的基于容器的私有化Paas平台及其发布应用的方法,企业的应用容器会在一定策略下自动平衡的调度到集群中的所有可用Node节点上,并且可以做到各个应用之间CPU、内存的限制和超售,将集群整体资源的使用率提高。另外,由于容器技术的轻量级特性,也使得启动应用容器本身的资源消耗很小,和虚拟机技术或传统的物理机管理模式相比,为企业显著的减少了基础设施的购买和维护成本。
需要说明的是:上述实施例提供的基于容器的私有化Paas平台在发布应用时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将平台的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于容器的私有化Paas平台与基于容器的私有化Paas平台发布应用的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管已描述了本发明实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1.一种基于容器的私有化Paas平台,其特征在于,所述平台包括:
容器组件,用于封装应用的运行环境、管理应用启动后产生的需要持久化的数据以及应用所在的网络,所述容器组件同时管理若干容器;
容器调度组件,用于调度容器、维护容器整个生命周期的相关操作以及为同类容器在外部流量访问时添加负载均衡配置,还用于对应用进行就绪检查和健康检查;
发布组件,用于对不同开发语言进行运行环境的封装,将应用封装为镜像并推送至镜像仓库;
Paas管理组件,用于控制所述平台相关业务的流程和交互,并为用户提供交互的界面;
其中,所述容器调度组件基于容器的调度策略进行调度容器,所述容器的调度策略包括:当容器需要启动时,结合当前集群中每个节点的资源使用情况、结合当前容器与资源池中各个节点的亲和性情况、结合当前容器与各个节点的排斥情况进行综合调度。
2.根据权利要求1所述的基于容器的私有化Paas平台,其特征在于,所述容器调度组件包括:
主节点,用于接受外部请求,调度容器;
工作节点,用于维护容器整个生命周期的相关业务。
3.根据权利要求2所述的基于容器的私有化Paas平台,其特征在于,所述主节点包括:
API网关,用于接受外部请求;
负载均衡器,用于将外部流量分流到多个API网关;
调度器,用于调度容器至工作节点。
4.根据权利要求2所述的基于容器的私有化Paas平台,其特征在于,所述主节点还包括:
控制器,用于控制容器的状态。
5.根据权利要求2所述的基于容器的私有化Paas平台,其特征在于,所述工作节点包括:
Kubelet,用于维护容器整个生命周期的相关操作;
cAdvisor,用于提供容器的监控数据;
kube-proxy,用于提供工作节点上相关网络规则。
6.根据权利要求1至5任意一项所述的基于容器的私有化Paas平台,其特征在于,所述发布组件包括:
代码仓库,用于存储应用对应的代码;
构建模块,用于获取应用对应的代码,并且进行持续集成生成对应应用的镜像,并将所述镜像推送至镜像仓库;
镜像仓库,用于存储对应应用的镜像。
7.根据权利要求1至5任意一项所述的基于容器的私有化Paas平台,其特征在于,所述Paas管理组件包括:
发布中心管理模块,用于与所述发布组件交互,向发布组件发送执行应用发布任务的请求;
应用管理模块,用于与所述容器调度组件交互,调用所述容器调度组件将所述应用调度至工作节点上。
8.根据权利要求1至5任意一项所述的基于容器的私有化Paas平台,其特征在于,所述Paas管理组件还包括:
基础资源管理模块,用于管理所述平台的基础信息。
9.根据权利要求1至5任意一项所述的基于容器的私有化Paas平台,其特征在于,所述平台还包括:
监控组件,用于采集、过滤、存储监控数据以及配置告警规则。
10.根据权利要求9所述的基于容器的私有化Paas平台,其特征在于,所述监控组件采集监控数据的过程包括:
以整个集群为维度,采集可以体现整个集群整体状态的监控数据;和/或
以集群中的各个节点为维度,收集以主机为中心的各种常见运维指标的监控数据;和/或
以容器为维度,采集以容器为中心的各种常见运维指标的监控数据。
11.根据权利要求1至5任意一项所述的基于容器的私有化Paas平台,其特征在于,所述平台还包括:
告警组件,用于通过去重后进行告警信息的分发通知,触发告警。
12.一种基于权利要求1-11任意一项所述的基于容器的私有化Paas平台发布应用的方法,其特征在于,所述方法包括如下步骤:
S1:Paas管理组件向发布组件发送请求,执行应用发布任务;
S2:发布组件接收到所述请求后,通过代码仓库获取代码,进行持续集成生成对应应用的镜像并推送至镜像仓库;
S3:镜像仓库镜像同步完成后,通知所述发布组件,所述发布组件通知所述Paas管理组件任务执行完毕;
S4:所述Paas管理组件调用容器调度组件,所述容器调度组件对所述应用进行调度;
S5:所述容器调度组件从所述镜像仓库获取对应应用的镜像后启动所述应用以及相应的容器;
S6:所述容器调度组件通知所述Paas管理组件任务完成。
13.根据权利要求12所述的基于容器的私有化Paas平台发布应用的方法,其特征在于,所述方法还包括:
S7:所述容器启动后,所述Paas管理组件调用监控组件以及告警组件,获取对应的应用的监控数据。
14.根据权利要求13所述的基于容器的私有化Paas平台发布应用的方法,其特征在于,所述方法还包括:
S8:所述监控组件将所述监控数据返回给所述Paas管理组件,所述Paas管理组件在前端界面中进行渲染,以图表形式展现对应应用的监控数据。
CN201811128670.6A 2018-09-25 2018-09-25 基于容器的私有化Paas平台及其发布应用的方法 Active CN109445802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811128670.6A CN109445802B (zh) 2018-09-25 2018-09-25 基于容器的私有化Paas平台及其发布应用的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811128670.6A CN109445802B (zh) 2018-09-25 2018-09-25 基于容器的私有化Paas平台及其发布应用的方法

Publications (2)

Publication Number Publication Date
CN109445802A CN109445802A (zh) 2019-03-08
CN109445802B true CN109445802B (zh) 2022-08-26

Family

ID=65544534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811128670.6A Active CN109445802B (zh) 2018-09-25 2018-09-25 基于容器的私有化Paas平台及其发布应用的方法

Country Status (1)

Country Link
CN (1) CN109445802B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110109686B (zh) * 2019-04-25 2023-03-24 中电科嘉兴新型智慧城市科技发展有限公司 一种基于容器管理引擎的应用运维方法和系统
CN110290189B (zh) * 2019-06-17 2023-04-18 深圳前海微众银行股份有限公司 一种容器集群管理方法、装置及系统
CN110598439A (zh) * 2019-08-08 2019-12-20 罗海瑞 一种智能互动控制系统
CN110928642B (zh) * 2019-11-06 2022-04-05 北京云思畅想科技有限公司 用于对资源统一抽象管理的方法以及系统
CN112860427A (zh) * 2019-11-27 2021-05-28 北京金山云网络技术有限公司 容器集群的负载均衡方法、装置与容器集群
CN111209109B (zh) * 2019-12-30 2022-07-08 江苏艾佳家居用品有限公司 一种基于docker的家装行业云渲染集群调度系统及调度方法
CN111277460B (zh) * 2020-01-17 2022-02-25 江苏满运软件科技有限公司 一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备
CN111338784B (zh) * 2020-05-25 2020-12-22 南栖仙策(南京)科技有限公司 一种实现代码仓库与计算服务整合的方法及系统
CN111897641B (zh) * 2020-08-03 2023-07-28 海信电子科技(武汉)有限公司 微服务监控调度方法及显示设备
WO2022037612A1 (zh) * 2020-08-20 2022-02-24 第四范式(北京)技术有限公司 提供应用构建服务的方法及应用构建平台、应用部署方法和系统
CN112148462B (zh) * 2020-10-20 2023-03-28 上海新炬网络信息技术股份有限公司 基于Jenkins的CICD流程的处理方法
CN112698917B (zh) * 2020-12-31 2022-06-21 武汉达梦数据技术有限公司 一种基于容器化的PaaS平台网络架构及其实现方法
CN114385191A (zh) * 2021-12-11 2022-04-22 埃夫特智能装备股份有限公司 一种基于git的知识资产交易管理系统
CN116775665B (zh) * 2023-08-24 2023-10-27 云南省交通投资建设集团有限公司 一种基于高速公路日常运维管理的全自动任务发布系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN108052333A (zh) * 2017-12-11 2018-05-18 北京紫优能源科技有限公司 一种电力调度集控系统标准化自动化部署方法及架构

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102571948B (zh) * 2011-12-29 2014-07-02 国云科技股份有限公司 基于云计算的PaaS平台系统及其实现方法
CN105577779A (zh) * 2015-12-21 2016-05-11 用友网络科技股份有限公司 一种容器化部署大企业私有云的方法和系统
CN106230987B (zh) * 2016-09-21 2019-09-13 南方电网科学研究院有限责任公司 一种基于电力PaaS云平台的信息集成系统及方法
CN106843945B (zh) * 2017-01-04 2020-12-01 厦门亿力吉奥信息科技有限公司 基于PaaS的GIS应用部署方法及系统
CN107256178B (zh) * 2017-04-27 2019-12-17 北京数人科技有限公司 一种容器管理平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN108052333A (zh) * 2017-12-11 2018-05-18 北京紫优能源科技有限公司 一种电力调度集控系统标准化自动化部署方法及架构

Also Published As

Publication number Publication date
CN109445802A (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
CN109445802B (zh) 基于容器的私有化Paas平台及其发布应用的方法
CN106888254B (zh) 一种基于Kubernetes的容器云架构及其各模块之间的交互方法
CN110321152B (zh) 一种软件开发平台
CN102103518B (zh) 一种在虚拟化环境中管理资源的系统及其实现方法
US7779298B2 (en) Distributed job manager recovery
CN102246152B (zh) 保存程序执行状态
CN110704164A (zh) 一种基于Kubernetes技术的云原生应用平台构建方法
Wang et al. Cloud computing and its key techniques
CN100594498C (zh) 海量数据实时处理架构及用于该架构的实时随需处理平台
CN108243012B (zh) 在线计费系统ocs中计费应用处理系统、方法及装置
CN107329799A (zh) 一种融合Docker容器与KVM虚拟化技术的系统
Fu et al. Real-time data infrastructure at uber
CN111061788A (zh) 一种基于云架构的多源异构数据转换整合系统及其实现方法
CN104160381A (zh) 多租户环境中租户特定数据集的管理
CN102681899A (zh) 云计算服务平台的虚拟计算资源动态管理系统
US8745637B2 (en) Middleware for extracting aggregation statistics to enable light-weight management planners
CN103930875A (zh) 用于加速业务数据处理的软件虚拟机
CN101710281B (zh) 基于Agent的动态集成开发平台系统和方法
US9959157B1 (en) Computing instance migration
CN110309108A (zh) 数据采集及储存方法、装置、电子设备、存储介质
Bermbach et al. On the future of cloud engineering
CN101727496A (zh) 一种实现microsoft sql server数据库负载均衡集群的方法
CN103109293A (zh) 一种用户行为处理系统及方法
US10534640B2 (en) System and method for providing a native job control language execution engine in a rehosting platform
CN105100180A (zh) 集群节点动态加载的方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240306

Address after: Room 1179, W Zone, 11th Floor, Building 1, No. 158 Shuanglian Road, Qingpu District, Shanghai, 201702

Patentee after: Shanghai Zhongan Information Technology Service Co.,Ltd.

Country or region after: China

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: ZHONGAN INFORMATION TECHNOLOGY SERVICE Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240415

Address after: Room 1179, W Zone, 11th Floor, Building 1, No. 158 Shuanglian Road, Qingpu District, Shanghai, 201702

Patentee after: Shanghai Zhongan Information Technology Service Co.,Ltd.

Country or region after: China

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: ZHONGAN INFORMATION TECHNOLOGY SERVICE Co.,Ltd.

Country or region before: China