容器将改变一切.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
容器将改变一切.doc

容器将改变一切   一旦将容器纳入工作流的构建过程中,那么我们多云的未来就将会尘埃落定。   现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起,以及该运动所产生的各种自动化工具。和以往只单纯编写代码不同,开发人员如今需要考虑采用哪些工具,以及如何将这些工具组合起来,以便将最初的设想转变成活生生的应用。   而容器便是这种新工作流程中最重要的新工具之一。像Docker这样的新技术可以让我们捕捉到关键的服务,并将它们从底层基础设施中抽象出来。利用这种方法,我们可以重新思考如何部署应用,如何更好地发挥云基础设施的作用。   满汉全席   亚马逊近日在伦敦举办了一场用户大会,一位AWS用户描述了他的团队处理应用更新的过程。他们不再只是简单地推送一段修改后的代码,而是将“完整的基础设施”的构建过程输出给自己的客户。   一旦基础设施部署并测试完毕后便可在DNS上做切换,使其成为一个活的系统。而在其他方面,这种方法还可在运营新系统的头几天中将旧的虚拟基础设施作成备份,然后再根据需要删除之。   这样一种输送完整的基础设施的想法最初看起来似乎很荒唐,但是当你要考虑云部署的经济性时,这种方法显然要比推送更新更节约成本。它意味着你正在部署的是一个已经就绪的状态,不仅更新的服务器和服务可能已经运行了一段时间,而且连操作系统或软件都已自动更新了。   这种办法无须投资硬件,对开发、测试和生产都使用同样的云平台,需要做的只是为每种环境分配不同的虚拟网络,再加上适当的访问控制即可。你甚至可以在开发中使用生产数据,在需要清理数据时简单地克隆存储即可。   包罗万象的容器   将应用集装在Docker中会更便于从基础设施中抽象出关键的应用元素。用这种方式处理软件,也能让DevOps充分发挥作用,更易于随着不断变化的需求对服务加以扩展。在容器中包装一个Node.js/Seneca微服务启用,便可在同一台主机或新的虚机上快速部署新的实例。   这种方法产生了一种有趣的DevOps模式,即等幂容器(idempotent container)。这种方法不是把一个应用或服务当成构建的终点,而是构建一个包含了应用、服务,以及所有相关联要素的容器。任何时候只要一做出改变,就可构建一个新的容器。测试和部署容器时将其视为一个整体,而不是其中的任何单独元素。这种方法非常有意义,因为它能免除掉一般开发流程的某些弊病。在传统的开发模式中,我们很容易走捷径,只测试变化部分,而不去考虑整体。   一个容器一旦构建并部署完毕,就不会发生变化,除非又有新的容器在部署。由于一个容器就是一个沙盒,因此要想与其中的内容进行交互,就得通过API或者容器自带的UI,这使得容器成了微服务的一个理想的抽象。该服务的API是唯一的接触点,最好是将API定义为各DevOps团队之间的一份合同。如此一来,在小型服务器实例,如CoreOS或微软新的Nano Server上运行的容器就会成为一种标准的基础设施构建模块。   跟着工作流走   综上所述,当我们看到Jenkins构建带有对Docker支持的管道工具时就不会吃惊了。Jenkins已经成了很多构建流程的标准构建工具,其定制化模块架构使其易于对特定的工作流进行调谐,易于和源代码控制工具及开发和测试平台进行集成。   作为Cloudbees的CTO和Jenkins项目的创始人,Kohsuke Kawaguchi在一次会议上说,给Jenkins增加对Docker的支持非常合理:“这样会促进业界对Jenkins的需求,将Docker视为一种可执行的打包格式。你可以编译并打包成一个二进制对象,然后运行,不再需要的时候直接处理掉就行。”   从Kawaguchi的说法中我们显然可以看出,Docker和其他的容器格式很符合Jenkins的Cloudbees版本,“你可将其用于测试或用于生产,测试通不过的话就重构一个容器。可将代码编译成一个模块,就像Ruby一样,然后放进容器中,发送给Puppet用于部署。”   此种做法作为整体DevOps战略的组成部分是有道理的,其中的一切,从基础设施往下都是代码。正如Kawaguchi所言,一切都是代码,“而Git和Jenkins就是砸代码钉子的锤子。”   虽然Docker的文件格式对于容器圈来说几乎已成了通用格式,但我们最好还是要观察一下Linux基金会所赞助的一个通用、开放的容器格式的进展。这一倡议把很多容器开发人员和厂商(包括微软等)聚拢到了一起。一旦一种通用格式获得业界的广泛支持,我们便能向多个云厂商(公有云和私有云)提供容器了。   通用容器格式不可能解决管理不同云基础设施定义而遇到的所有问题,但它肯定会让各厂商之间,如Azure和AWS之间,或者OpenSt

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档