Docker如何改变你的开发团队

Docker加速软件测试的能力应该使它成为任何开发团队无需动脑筋的东西。这是为什么。

码头工人
iStockphoto

等待正确的构建已经成为测试环境的一个历史问题,而开发、测试和生产之间的差异已经导致缺陷在生产环境中逃逸。虚拟机通过共享系统数据的副本来解决这些问题,但它们可能很慢,并且占用数gb的磁盘空间。

Docker是一种轻量级、快速的Linux虚拟化工具。

Docker带来的机遇

首先,技术人员中的任何人都可以在几秒钟内在本地机器上创建一个测试环境。新进程与现有的操作系统挂钩,因此它不需要“引导”。由于之前的版本存储在本地,Docker足够聪明,只加载两个版本之间的差异。

这种简单性在采用Docker的团队中很常见;如果架构扩展到登台和生产,那么登台和生产推也可以这么简单。

另一个巧妙的特性是为您的服务器群创建一个全新的虚拟基础设施的能力,该服务器群由十几台虚拟机组成,称为“绿色”构建。任何最终的回归测试都可以以绿色的形式进行,这是产品的完整副本。当测试完成后,部署脚本会翻转服务器,所以现在绿色正在服务于生产代码。前一个构建,即“蓝色”构建,可以保留下来——如果您需要回滚的话。这就叫做蓝色/绿色部署这可以通过几种不同的技术实现。

Docker只是让它变得简单。

为什么码头工人?

基于windows的软件编译为单个安装程序,基于web的软件则有不同的交付:在服务器上运行的构建。经典的发布管理对于网站来说,需要创建三到四个不同的层次:开发、测试、生产,有时还要创建登台环境。该策略包括每个层至少一个服务器,以及一组提升规则。当软件为下一次升级做好准备时,构建可以部署到下一个级别的服务器上。

虚拟机改变了这一切,允许服务器根据团队成员的数量创建不同的服务器。这使得每个分支都可以单独进行测试,然后合并到主线进行最终测试,而无需在新硬件上花费数万美元。每个虚拟机都有一个虚拟机,这样开发人员就可以在本地机器上调试产品问题,而测试人员则可以在另一台机器上重新测试产品补丁。一个测试人员检查即将发布的版本的回归,同时另外5个测试人员测试下一个版本的特性,5个开发人员在新分支中工作新特性。

[相关:顶级云基础设施即服务供应商

虚拟机的问题在于大小和速度。每个虚拟机包含一个完整的主机操作系统,创建虚拟机意味着分配千兆字节的空间,创建一个全新的操作系统,然后将“build”安装到该操作系统上。更糟糕的是,操作系统在您的计算机上的应用程序空间中运行——这实际上就像在主机操作系统中运行一个操作系统。虚拟机的引导/安装过程可能需要几分钟到一个小时,这足以中断流程。技术人员可能只能在一个桌面上运行一到两台虚拟机,而不会造成严重的速度损失;尝试在网络上按需创建虚拟机是一个完整的“私有云计算”项目。

Docker不是在应用程序空间中运行,而是在内核中运行。换句话说,它使自己成为操作系统的一部分。在操作系统中运行Docker不仅限制了Linux的现代内核,无论是主机还是容器,但它也大大简化了操作系统的任务切换过程。Docker在内核中消除了许多典型vm可能会有的冗余(它需要一个内核,而不是每个容器一个),这意味着Docker容器不会“启动”,因为它们已经启动了。

所有这些使Docker成为一种令人难以置信的快速创建机器的方法——基于磁盘映像的机器,而不是对现有服务器的补丁,是即将投入生产的机器的精确副本。

在损坏状态下停止和保存容器,然后再进行调试的能力使得在Docker下进行调试更加容易。如果调试破坏了环境条件,或者以某种方式“玷污”了环境,那么恢复到破坏的状态是很简单的。Docker也可以在任何Linux服务器上运行任何应用程序;容器的快速启动和一次性性质使得它非常适合于批处理。

[相关:为什么开放容器项目对cio来说是个好消息

有一些工具可以帮助您使用Docker容器配置甚至模拟整个基础设施,使团队的工作更加轻松。最流行的一个是码头工人组成。这可以将过去非常复杂的设置过程简化为一个命令。

码头工人在生产中

本地机器上的Docker和一对云服务器是一回事;让它投入生产则完全是另一回事。Docker早期的制作就像美国西部拓荒。经常出现的短语是“容器编排”,这是将Dockerized的应用和服务,并将它们调度到计算资源集群的实践。这意味着组织不关心容器在哪里运行,只关心它们在运行和服务正确的请求,无论是web流量、内部服务和数据库,还是消息传递队列。

今天管弦乐界的大玩家是AWS EC2容器服务码头工人群便。通常,编配服务可以很好地管理容器,但它们也可能附带其他一些附加功能,比如蓝/绿部署、容器修复、负载平衡、服务发现和容器间网络。

在为生产环境评估Docker时,肯定会遇到其他挑战,比如日志记录和环境变量配置。一个很好的开始,看看你是否准备好转向Docker,看看你离最佳状态有多近12个因子的应用

Don Taylor在CodeMash上关于Docker的教程带领观众在Linux机器上安装Docker,创建一个容器,并在该容器上执行命令。最重要的是,实验室在github上让你跟随。

因此,安装一个Linux虚拟机,将Docker放入其中,探索如何创建容器,并自行决定是否值得在您的组织中使用这种技术。

Jared Short对本文有贡献。

这篇题为“Docker如何改变你的开发团队”的文章最初是由首席信息官

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对最热门的话题发表评论。

版权所有©2015 IDG通信有限足球竞彩网下载公司

SD-WAN买家指南:问供应商(和你自己)的关键问题