基于Docker的开发测试云架构.docx

上传人:b****0 文档编号:17235660 上传时间:2023-07-23 格式:DOCX 页数:11 大小:648.59KB
下载 相关 举报
基于Docker的开发测试云架构.docx_第1页
第1页 / 共11页
基于Docker的开发测试云架构.docx_第2页
第2页 / 共11页
基于Docker的开发测试云架构.docx_第3页
第3页 / 共11页
基于Docker的开发测试云架构.docx_第4页
第4页 / 共11页
基于Docker的开发测试云架构.docx_第5页
第5页 / 共11页
基于Docker的开发测试云架构.docx_第6页
第6页 / 共11页
基于Docker的开发测试云架构.docx_第7页
第7页 / 共11页
基于Docker的开发测试云架构.docx_第8页
第8页 / 共11页
基于Docker的开发测试云架构.docx_第9页
第9页 / 共11页
基于Docker的开发测试云架构.docx_第10页
第10页 / 共11页
基于Docker的开发测试云架构.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Docker的开发测试云架构.docx

《基于Docker的开发测试云架构.docx》由会员分享,可在线阅读,更多相关《基于Docker的开发测试云架构.docx(11页珍藏版)》请在冰点文库上搜索。

基于Docker的开发测试云架构.docx

基于Docker的开发测试云架构

 

基于Docker的开发测试云架构

目录

一、概述3

二、Docker容器云计算技术3

2.1Docker核心技术3

2.2Docker解决的主要问题4

2.3Docker的主要部件5

三、基于Docker容器的云计算快速开发测试框架6

3.1现有开发测试环境及存在的问题6

3.2Docker容器的云计算快速开发测试框架8

3.3关键技术及过程9

四、总结创新点与成效14

1、概述

随着公司业务转型的深入和业务种类的多样化发展,迫切需要邮政IT部门的支撑和引领作用,特别是在当前业务发展迅速,各业务功能开发和上线频繁的情况下,对我们的系统开发能力提出了更高的要求,而现有的开发测试环境存在资源利用效率低,测试版本管理复杂,迁移成本高等诸多缺点。

以Docker为代表的容器云计算技术自去年起逐步成长起来,容器技术以它轻量,快速,隔离的优势,迅速在IT学术界和企业界引起了广泛的关注。

本文在概述Docker容器核心技术理念基础上,着重介绍了我们利用Docker容器云计算技术优化系统开发过程的思路,并搭建了一个以docker技术为基础的开发测试框架。

该框架有效整合了开发和测试环境,显著提高了我们开发测试的速度和质量,使我们能更好的服务于业务的发展。

2、Docker容器云计算技术

2.1Docker核心技术

Docker是以Linux的cgroup、namespace等容器技术为基础的开源容器引擎,目前已经获得包括微软,Google,红旗等主流IT厂商的支持。

Docker利用轻量级的虚拟化技术,有效的封装了操作系统底层的隔离,进程独立等功能,实现了各种依赖环境和应用的打包,方便了项目的开发测试和部署过程。

Docker与传统虚拟机技术的对比:

传统的虚拟化技术例如vmware公司的vsphere目标是建立一个从硬件到软件模拟化的虚拟机,具有整套的操作系统环境,而Docker技术则是基于操作系统的底层容器API,他没有模拟完整的操作系统环境,从进程上看,docker虚拟机里只有应用的进程而没有其他的操作系统进程,它将项目的源码,依赖和环境配置打包成一个隔离独立的运行环境,所以它具有快速轻量的特点。

2.2Docker解决的主要问题

2.2.1减轻虚拟化的成本

传统的虚拟机技术要安装操作系统后才能使用,而操作系统本身会占用大量的系统资源,是一种极大的浪费。

而Docker容器不需要操作系统安装也能运行,在提供了进程隔离的同时,为应用的运行提供了有效的运行环境。

2.2.2应用的快速运行和部署

Docker独有的镜像技术,使各种环境依赖和应用打包后形成镜像存储在Docker仓库中,当需要部署运行的时候,只要从仓库获取运行镜像即可得到相应的功能,docker将复杂的部署过程,简化为复制加运行,不需要中间多余的工作。

2.2.3资源的有效度量

Docker利用操作系统的容器API可以对cpu,网络,内存等各种资源进行有效的定制和度量,减少了单个应用死循环对其他应用的影响。

2.2.4复杂环境依赖的有效隔离

应用的运行环境需要多种第三方插件和运行中间件的支持,这给应用的开发测试带来了很大的复杂性,往往新环境的搭建要耗费大量的时间和精力。

Docker通过将多种依赖库和中间件打包成镜像的方法,有效减轻了环境搭建和移植的复杂性,同时Docker支持镜像的叠加,容器的网络等功能,从而进一步简化了环境构建的工作。

2.3Docker的主要部件

Docker主要部件包括Docker客户端,docker后台进程,docker镜像仓库和docker容器进程四个部分。

2.3.1Docker客户端

用户通过Docker客户端与docker后台守护进程进行通讯,通过Docker客户端命令行工具,发起对Docker各种功能的操作指令。

Docker通讯支持tcp,unixsocket等多种通讯方式。

2.3.2Docker后台守护进程

Docker后台守护进程包含两个模块,Docker服务和Docker引擎。

Docker服务接受来自Docker客户端发送的命令,并交由Docker引擎中相应的处理程序进行处理。

Docker引擎是实际完成工作的核心进程。

2.3.3Docker仓库

Docker仓库用于存放Docker镜像。

镜像类似虚拟机的快照概念,是Docker容器运行的代码基础。

Docker仓库可以使用公有仓库DockerHub,也可以搭建企业内部的私有仓库。

2.3.4DockerFile构建文件

DockerFile描述了一个完整的镜像的构建过程,包括依赖软件和中间件的安装,目录,环境变量,暴露端口,端口映射等。

3、基于Docker容器的云计算快速开发测试框架

3.1现有开发测试环境及存在的问题

下图是一个开发测试和部署的过程,

传统的开发测试过程存在如下几个问题:

1、资源利用效率低

2、单物理机多应用无法有效隔离(进程空间,cpu资源,磁盘)

3、运维部署不便

4、测试、版本管理复杂

5、迁移成本高

6、传统虚拟机,空间占用大,启动慢,管理复杂

一个IT系统应该包含如下几个层次:

应用程序

运行时平台(bin/framework/lib)

操作系统

硬件(基础设施)

 

开发人员的主要工作是应用程序的编码、构建、测试和发布,涉及应用程序和运行时平台这两层。

而运维人员的工作则涉及从硬件、操作系统到运行时平台的安装、配置、运行监控、升级和优化等工作。

docker提供了一种运行时环境,隔离了上层应用于下层操作系统和硬件的关联,使得术业有专攻。

3.2Docker容器的云计算快速开发测试框架

框架流程图如下:

如上图所示,通过创建镜像仓库群,开发用户从仓库获取标准镜像,进行开发测试,完成后将结果镜像保存在Docker镜像仓库中,测试机从仓库中获取开发完成的镜像,并进行验证测试,测试通过后,生产环境可以获取最新的镜像进行部署,同时对原有镜像进行备份处理。

3.2.1框架部署结构图

框架部署图如下所示:

我们通过vmware公司的vsphere软件建立虚拟化集群,在虚拟化集群服务中建立云端Docker仓库服务器,测试机和生产服务器,开发人员通过网络连接Docker镜像仓库,下载需要开发的环境镜像文件,同时可以根据生产备份和测试备份,直接获取生产版本或者测试版本,开发后在生产环境进行部署。

3.3关键技术及过程

1、容器创建

容器的创建过程类似于快照中创建虚拟机,可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序.容器是从镜像创建的运行实例。

它可以被启动、开始、停止、删除。

每个容器都是相互隔离的、保证安全的平台。

如上图所示,我们从#0号镜像创建了tomcat容器

2、端口映射

端口映射功能提供了一种容器之间通讯的一种手段,如下图所示:

 

容器myapp1将内部的80端口映射成8080端口对外提供服务

3、数据卷共享

数据卷是一个可供一个或多个容器使用的特殊目录,完成进程和数据的分离,实际保存在容器之外,从而允许你在不影响数据的情况下销毁、重建、修改、丢弃容器,可用于数据持久化.数据卷的使用,类似于Linux下对目录或文件进行mount。

数据卷的共享,可以在多个容器之间共享数据卷

上图中深绿色表示数据卷以及数据卷在各容器之间的共享

 

4、链接容器

容器的连接(linking)系统是除了端口映射外,另一种跟容器中应用交互的方式.在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息,Docker在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到宿主主机上。

从而避免了暴露关键系统(如数据库)端口到外部网络上.

如上图所示,web容器与myapp_db容器之间通过链接方式将数据库的端口开放给web应用。

5、仓库创建及注册

仓库是集中存放镜像文件的场所,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签,仓库分为公开仓库(Public)和私有仓库(Private)两种形式,可以push镜像到仓库或者从仓库pull下镜像。

 

4、总结创新点与成效

比较传统的开发测试流程和以docker为基础的开发测试框架,提出了三处创新:

1、简化了环境搭建的步骤

以往开发环境的搭建,需要自己安装操作系统,安装各种中间件软件和依赖库,采用docker容器后,我们需要的仅仅是复制运行,中间环节全部去除,并且保证了各个开发人员环境的一致性。

2、提高了资源利用效率

为了减少各个应用之间互相影响,业务测试都需要一台独立的物理主机或者虚拟机进行测试,,采用docker技术后,各个应用可以共用一台主机,由于进程,内存,cpu,网络等资源的隔离,应用之间的影响降为最低。

3、降低了迁移成本

旧开发模式下,完成的代码要上线到生产环境,需要在生产环境安装需要的依赖软件和库文件,采用docker技术后,我们只需要将开发完成的镜像文件放到生产环境中运行即可,因为镜像本身就带有自己的依赖文件和环境参数,不需要运维人员进行修改和调整。

基于Docker云计算的开发测试环境的应用成效:

采用该框架后,我们的开发测试工作中的环境搭建任务大为减轻,开发质量和交付速度显著提高,有效支撑了业务的发展

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2