Docker时代来临,你的团队准备好了吗?

长久以来,软件测试团队等待着一个合适的测试版本已是个老问题,开发环境、测试环境、生产环境之间的差别,总会致使生产版本有缺陷被遗漏。虚拟机的出现解决了这些问题,可是同时也带来了性能的降低,还有磁盘的大量浪费。这时候,Docker出场了,它是Linux下一款轻量且高性能的虚拟化工具。希云做为Docker领域专家,期待docker能给您的开发团队带来巨大价值。docker

>>>Docker带来的机会数据库

首先,技术团队中任何人均可以迅速在本地建立一个测试环境,只须要在已有的操做系统下启动新的进程,因此不须要系统的启动。若是基于一个旧版本的镜像建立,Docker能够只加载两个构建之间的差别。服务器

这种易用性让不少团队都采用了Docker方案,若是这种部署架构延伸到生产环境,那生产环境的部署也能变得这么简单。网络

另外一个高明的作法是这样,把一些纯净的虚拟化集群部署到数个虚拟机上,把部署的这个版本称为"green"构建,全部的回归测试都在这个"green"构建中实施,至关于生产环境的一个副本。当测试完成后,只需用一个脚本调整这些服务器,那这些"green"构建就变成了生产环境。前一个构建的版本,能够保留着,以备须要回滚操做。这种部署方式称为["blue/green"部署],能够用好几种技术实现。Docker使得这种方式更简单了。架构

>>>为何选Docker?负载均衡

基于Windows的软件能够被编译成一个单独的安装包,而基于Web的软件交付的方式彻底不一样:构建出的软件须运行在服务器上。网站的典型发布流程涉及起码三到四层:开发环境,测试环境,生产环境,有时还会有准生产环境,这种方式每层都至少包含一台服务器。而且每层的升级一般有固定的发布规则,一旦软件知足某种条件,就会被部署到下一层的环境中。工具

虚拟机使这种状况发生了变化,能让服务器的数量和开发团队的人数同样多。这样就可让每一个分支都独立测试,最后才合并到主版本以供集成测试,这种方案能够省下大量采购新三件的费用。使用虚拟机也能让开发人员在本地调试生产环境出现的问题,同时测试人员也能够在另外一台机器上从新测试一个补丁;一个测试人员回归测试着即将发布的版本,而另外五个测试人员测试着下一版本的特性,还能够有五个开发人员在开发着新的分支。性能

虚拟机的问题是容量和性能,每一个虚拟机都须要包含着整个操做系统,新建一个虚拟机意味要多分配数GB的硬盘空间,用以建立一个全新的操做系统,才能把构建的应用部署到这个操做系统中。更糟糕的是,这个操做系统须要运行在宿主系统的用户空间,这样至关于在一个操做系统上跑着另外一个操做系统。启动或者安装一个新的应用到虚拟机中,一般都须要数分钟甚至一小时,这样很容易打断原有的工做计划。技术人员的电脑上极可能只能装上一到两个虚拟机,这样才能避免严重的性能降低。后来出现的“私有云计算”,就是这种方案延伸到在网络上使用虚拟机。测试

Docker运行在主系统的内核空间,而不是用户空间,换言之,它自己是使用了操做系统自己的一部分,这样确实是会限制了,Docker只能在现代Linux内核中运行,但这也极大的简化了操做系统的进程切换。在内核中运行Docker避免了像虚拟机引发的资源浪费,并且Docker容器系统不须要“额外启动”,由于它原本就已经“启动”了。网站

这些特性使得Docker方案能以极快的速度建立服务器,能直接把整个磁盘镜像部署到生产环境,而不仅是给现有系统打补丁。
                                             
Docker还能够中止并保存容器的错误状态,让开发者稍后调试,这使得在Docker下调试更加方便,若是调试过程当中破坏了重现bug的环境,那么恢复到以前保存的错误状态就能够把bug重现。Docker能够在任意的Linux服务器上运行任意的应用,它的快速部署和快速销毁的特性让它也很适合用于批处理的任务。

开源社区上有一些工具,能够帮助配置甚至用Docker模拟整套服务器集群,最受欢迎的是Docker Compose,这工具能让复杂的搭建过程简化到一个命令。

>>>生产环境上的Docker

在本地或者云服务上的Docker服务是一回事,要使它能在生产环境上使用又彻底是另外一回事。在初期要在生产环境上以Docker部署仍是有点单薄,而如今最多见的术语是“容器编排”,这技术让Docker化的应用和服务能有组织地部署到服务器上,经过它,咱们能够不关心容器到底部署在哪台服务器上,只须要它们正在服务着,不管这些应用是流量监控、内部服务、数据库或者是消息队列,都能以这种方式部署。

目前最成熟的编排产品是AWS EC2 Container Service,Docker Swarm 和 Mesos。典型的编排技术核心是管理容器,但一般也有一些附带的功能,例如"blue/green"部署,容器修复,负载均衡,服务发现和容器网络配置等。

当要在生产环境上使用Docker时,还有其余一些地方要注意的,例如日志记录,环境变量配置等。

没尝试过Docker的读者能够安装一个Linux虚拟机,在上边安装好Docker,探索一下如何使用容器等技术,再决定这个技术是否合适您的团队吧。了解docker更多知识,请观看免费培训视频(http://csphere.cn/training)。希云,Docker私有云领导者!利用Docker提供更好的云计算产品和服务,欢迎访问官网首页:http://csphere.cn,期待您的合做!

感谢您阅读此文,希云将在本周四继续分享docker技术文章,请你们保持关注!

相关文章
相关标签/搜索