Page 40 - 网络电信2017年4月刊下
P. 40
解决方案
一种基于Docker的数据中心云平台实现方法及
系统
彭勇 谢剑 童遥 申光
为解决现有平台即服务(PaaS)
云平台的可用性和兼容性等问题,提
出了一种基于Docker的通用容器解决
方案,并进一步提出基于该容器的云
平台系统架构,详细描述了各个子系
统及其功能模块的设计实现。
一、应用服务部署现状 供不同的Image,并将各类不同的应用运行环境统一封装,对外
提供统一管理和操作接口,提高PaaS平台的可用性和灵活性。
随着信息化技术的深入发展,数据中心的应用服务数量急
剧增加,原有采用实体机和虚拟机部署应用服务的方式面临着 三、基于Docker的PaaS云平台设计
以下的问题:
基于Docker的数据中心云平台的系统架构如图1所示,下面
(1)数据中心资源利用率不高。 对该PaaS云平台涉及的主要实体和实体间的逻辑子模块进行描
(2)应用环境管理复杂,维护效率不高。 述。
(3)应用服务迁移困难。
(4)传统应用服务部署启动慢。 (1)云平台调度子系统。
云平台调度子系统是整个云平台的大脑,用于合理地分
二、现有PaaS云平台分析和Docker容器技 配系统资源,具体说来就是一个容器到底落地在哪些物理服务
术 器上。调度子系统可细分为两个部分:初次调度和动态调度。
初次调度是当用户第一次创建应用时进行的调度,包括资源的
1.现有PaaS云平台分析 创建、删除、修改等操作;而动态调度是指在系统运行过程中
平台即服务(PaaS)是云服务的一种,服务提供商不仅 的调度,主要是针对某些负载过高、过低的容器进行scaling
提供按需索取的硬件和操作系统服务,还提供了应用程序平台 out、scaling in的调度,实现资源的合理分配、整合。
和解决方案。通过PaaS平台,应用开发者可以很方便地把应用 (2)路由控制子系统。
和服务托管在平台之上,而不用关心它们底层的硬件配置和运 路由控制子系统在PaaS云平台中对所有进来的请求进行路
行环境。目前,业界已涌现出众多的PaaS云平台,但它们均存 由,该系统分为两层:第1层是从外部域名到内部临时域名的路
在很大的不足。首先就是应用的运行环境兼容性较差,单一化 由,第2层是从内部临时域名到容器的路由。提供内部临时域名
的运行托管环境会导致应用的兼容性降低,不利于PaaS平台的 是为了方便应用开发者在提交应用之后再次检查确认,路由控
快速扩张和通用性要求;其次,PaaS平台内置的基础能力也不 制子系统还提供负载均衡、健康检查、会话粘滞等高级功能。
足,无法满足应用提供者对于能力的多样化需求;另外,现有 (3)通用容器子系统。
的PaaS云平台一般仅提供针对特定编程语言的应用运行环境, 通用容器可抽象出两层,分别为适配层和容器层。适配
如Google应用程序工程(GAE)仅支持Python和Java运行环境, 层一方面可以作为驻留结点采集主机负载等信息,另一方面可
新浪应用程序工程(SAE)仅支持Java和PHP5运行环境,因此急 以适配底层的容器。容器层则是在Docker应用程序编程接口
需提升平台的可用性和扩展性。 (API)的基础上封装出不同的Web容器,比如Docker-Jetty、
2.Docker容器技术 Docker-Tomcat等。同时还引入了镜像服务器这个集中式镜像管
Docker是基于Linux的LXC(Linux容器)技术,把应用包装 理模块。
在容器里,使其具有移植性和独立性。具体来讲,Docker提供 (4)平台支撑子系统。
标准化的Image和Image共享等功能,能够很简便地在Docker内 平台支撑子系统是平台中的基础模块,提供基础能力的支
部嵌入一个Web服务器(如Jetty、Tomcat等),更重要的是, 持,比如:API服务器将系统的能力统一抽象出restful的HTTP
使用Docker可以运行非常多的容器进程,针对不同Web服务能提
62 网络电信 二零一七年四月