2019独角兽企业重金招聘Python工程师标准>>>

长久以来,软件测试团队等待着一个合适的测试版本已经是个老问题,开发环境、测试环境、生产环境之间的差异,总会导致生产版本有缺陷被遗漏。虚拟机的出现解决了这些问题,但是同时也带来了性能的下降,还有磁盘的大量浪费。这时候,Docker出场了,它是Linux下一款轻量且高性能的虚拟化工具。希云作为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技术文章,请大家保持关注!

转载于:https://my.oschina.net/kernalsky/blog/541308

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

  1. 将ubuntu配置为路由器_“名酒为王”时代来临但资源将尽,看泸州老窖如何进行“名酒资源再配置”丨深度观察...

    文丨酒业家主笔 彭伟 冲刺300亿,重回前三甲. 泸州老窖作为四大名酒之一,连续蝉联五届国家名酒,在全国范围的消费者中构建了极其深远的品牌影响力.因此,才会有泸州老窖股份有限公司党委书记.董事长刘淼在 ...

  2. 德勤2021技术趋势:繁琐、点状的匠人AI时代将终结,MLOps时代来临

    作者 | 宋慧 出品 | CSDN 头图 | 付费下载于视觉中国 德勤在近日发布<2021 年技术趋势>报告,这已经是德勤连续第十二年发布全球技术趋势报告.纵观今年的九大技术趋势,德勤给出 ...

  3. 【深度】大变局!标准化资产的在线理财时代来临

    疫情对财富管理市场的短期影响 金融是经济的血液,又同时受到经济活动的影响. 首先,从短期来看,我国经济增速毫无疑问会受到影响,我国第三产业占比60%左右.疫情使第三产业基本停滞.从非典时期的经验看,第 ...

  4. 刷脸时代来临,深度解析人脸识别技术市场

    刷脸时代来临,深度解析人脸识别技术市场 编者按:iPhone X带动更多智能手机集成3D人脸识别,公共场所日益增长的监控需求.刷脸时代来临,人脸识别技术巨大的市场需求与广阔的应用前景,盈利模式多变,消 ...

  5. 人脸识别入学注册 刷脸时代来临

    科技改变生活,从"现金还是刷卡"到"微信还是支付宝",到目前为止,我们几乎带脸出门就可以了,"没钱付账,和老板那么熟,刷个脸就行"从前的调侃 ...

  6. 响铃:互联网金融理财端寡头时代来临,到底谁该被剩下来?

    近日,互联网金融又遇大事,百度与中信银行成立直销银行:百信银行,这意味着BAT三大巨头均以不同形式拿到银行牌照.至此互联网金融"井喷式"发展过后,进入了新的排位赛,行业加速优胜劣汰 ...

  7. AI时代来临,如何把握住文档处理及数据分析的机遇

    AI时代来临,如何把握住文档处理及数据分析的机遇 前言 一.生成式人工智能与元宇宙 二.面向图像文档的复杂结构建模研究 三.大型语言模型的关键技术和实现 ChatGPT 介绍 ChatGPT的三个关键 ...

  8. 物联网时代来临 企业将面临哪些挑战?

    伴随万物互联时代的开启,物联网(IoT)已经成为引爆IT变革的新导火索.根据调研机构Gartner预测,2016年全球可连网设备将达到64亿件的规模,而到2020年更会上升到210亿件.同时,物联网的 ...

  9. ChatGPT 新应用时代来临!CSDN AIGC 与大模型技术应用峰会全日程公布

    我们正处在一个什么样的时代节点? 比尔·盖茨直指人工智能时代已经开启,并这样表示:在我有生之年,见证了两次革命性的技术展示.一次是 1980 年看到图形用户界面:一次就是 OpenAI 带来的 Cha ...

最新文章

  1. Arduino Yun快速入门教程(大学霸内部资料)
  2. java解析kafkaavro_如何使用Spring Kafka读取合并模式注册的AVRO消息?
  3. 微软发布Azure Cosmos DB产品以及新的物联网解决方案
  4. boost::coroutine模块实现不对称链的测试程序
  5. keyshot卡住了还能保存吗_相机希望你知道的13件事 keyshot相机切换事件
  6. Java list接口
  7. 清华人工智能研究院院长张钹:深度学习的钥匙丢在黑暗角落
  8. vs2008 调试js
  9. BZOJ 3897: Power
  10. java成员访问修饰符,如何使用java反射查找成员的访问修饰符
  11. 延时电路c语言程序,rc延时电路工作原理
  12. 如何像“二次元萌妹”小冰一样写诗创作和即兴编曲?
  13. Unity利用SMSSDK实现短信验证码(附源代码)
  14. npm link详解
  15. i++和++i为毛会不一样
  16. 星际争霸1-PvPGN战网架设参数
  17. 影响时尚界的十大可穿戴技术创业公司
  18. 英语,程序员永远的痛???//“不要倒在起跑线上”课程介绍
  19. VueCLi跑项目时卡在98% after emitting CopyPlugin无法运行
  20. pytohn 操作excel表格常用模块 xlwt xlsxwriter

热门文章

  1. HDU5002:Tree(LCT)
  2. ArcGIS10.2安装教程
  3. django 钉钉扫码登录
  4. 网站内容排版可用性分析
  5. 微信测试公众号-jssdk基本配置和使用-thinkphp
  6. 判断一组checkbox中是否有被选中的
  7. Hypothesis Testing
  8. Android,已知应用名称, 通过应用名称来启动应用
  9. ASP.NET MVC3 系列教程 - 目录
  10. 本来连学计算机的都不是,怎么却读了计算机研究生