【五分快三规律】为什么Ruby程序员应该了解和掌握Docker

  • 时间:
  • 浏览:0
  • 来源:彩神app

Docker技术在Ruby社区是有影响力的,我所知道的因此 创业团队很早就在运用它来处里环境管理、持续集成以五分快三规律及部署的问题报告 报告 了。太大,全是因此 同学尚未注意到这名 技术,太大了解以前认为它全是很重要,太大帮我讨论一下Docker对Ruby系技术的帮助。

有的人太大对Docker技术不太了解,不妨参考论坛里的这篇文章(https://ruby-chin五分快三规律a.org/topics/2504 )以及肖德时写的系列文章(http://www.infoq.com/cn/articles/docker-core-technology-preview )。 Docker 与 Vagrant

我突然很喜欢Vagrant这名 工具,两三年前就用它来进行另一方项目的环境维护,那以前主太大做测试,太大Vagrant将操作系统环境进行了标准化,我很容易就能让另一方的应用系统以及相关的测试结果保持稳定。

Vagrant还有另另一还还有一个好处,Ruby社区比较偏爱Mac,太大线上的系统基本全是Linux,太大开发环境所做的测试是有问题报告 报告 的,很重是遇到因此 有so依赖的gem,这时另另一还还有一个和线上完正一样的环境就很重重要。

真是上端的表述不太准确,Vagrant全是各种provider,我所说的五分快三规律场景,基本上全是virtualbox的provider,太大哪此地方正确的说法是 vagrant/virtualbox。

和Docker相比,vagrant/virtualbox组合的成本还是很高的,无论是setup另另一还还有一个环境还是reset另另一还还有一个环境,都还要一段时间的在等待,Vagrant太大把virtualbox的操作DSL了而已,底层的做法那么变化。而Docker太大本质上太大另另一还还有一个多多系统进程 ,太大天生太大轻量级的。对于运行时间在分钟级别的自动化测试工作,Docker显然有很大的优势。

当然,全是人会认为Docker可以了模拟完正的操作系统,不过这恐怕是另另一还还有一个优点而全是缺点。我在以前的文章中太大说过了,这里概述一下主要观点——

Docker复杂性了操作系统这名 基础五分快三规律设施,让应用精简为其最核心的社会形态——携含高限资源的多多系统进程 ,在此基础上更能够架构上的最佳实践。

而对Ruby工程师而言,这名 “最佳实践”中肯定少不了的二根太大——微服务。

微服务

Ruby工程师含高太大太大Rails工程师,而Rails实际上更倾向于单体架构,太大就说 社区的工程师们才还要在实际工作中总结1 to 50曾经的实践。

真是微服务并与否全是个教条,即使没一帮人教,大伙儿也常常自发的去进行服务化改造,太大这名 工作无须容易,主太大会受到因此 问题报告 报告 的掣肘,比如运维复杂性度和系统测试成本会大幅度上升等等。

处里哪此困难,首先当然是看与否必要,因此 简单场景大伙儿不可以 用单体架构直接拿下,太大大伙儿很容易会注意到,这两年大伙儿太大的提到了微服务太大服务化,这肩上真是是有趋势的——各种业务社会形态全是朝着互联网级的用户规模推进,同時 大伙儿全是努力从每另另一还还有一个用户的各种维度上挖掘价值(这原因着了大数据的需求),哪此场景变得那么常见,单体架构是难以支持的。

既然微服务太大服务化不可处里,那么就要有相应的对策,真是Ruby社区全是太大人在不同问题报告 报告 点上针对微服务进行改进(比如完善异步化框架,以及对服务协议的探索等),太大在基础设施层面,Docker是最重要的武器,那么之一!

对Ruby工程师来说,Docker能做两件事:约束边界和建立通用基础服务。

约束服务边界

Ruby项目Docker化,并全是简单换个虚拟机那么简单,大伙儿会面对拆分的压力,相信太大人尝试用Dockerfile来描述另一方的项目的以前前会 真是束手束脚,但哪此地方真是是能够大伙儿想清楚——这名 应用到底要做哪此?它和外界是哪此关系?对于外界的变化它咋样响应?失败后咋样恢复?

类事的问题报告 报告 对系统架构非常重要。比如应用到底要做哪此,这是让工程师去思考系统的目标,无论是提供web服务,管理调度后台任务,还是提供实时节析,它们都应该有另另一还还有一个尽太大单一的目标,在这名 基础之上,大伙儿建立的服务才有也全是易测试、易扩展和易维护的。

其它问题报告 报告 也类事,哪此地方以前太大那么留意,很太大全是没问题报告 报告 ,太大没意识到,使用Docker能够大伙儿意识到哪此问题报告 报告 。

另外补充因此 ,太大Ruby项目可以了完正脱离动态库依赖(java大都可以 ),并与否的打包机制又那么自含高社会形态(gem+bundle不包括动态库,相比之下,Golang是静态联编的),在分布式环境中的交付和软件包架构设计 真是是有着先天不足的,Docker的Image恰好补上了这名 块,大伙说是睡觉以前一帮人送枕头了。 建立通用基础服务

当大伙儿将应用系统分裂为各种服务并明确其边界以前,就再次出显了“分久必合”的问题报告 报告 ,这很自然,服务化改造并全是各行其是,应用之间还是要企业企业合作,而对应用的运维——服务发现、水平扩展、容错等等——都还要基础设施的支持。

以前,对于这名 运维基础设施,各公司甚至同另另一还还有一个公司的各个团队的做法都千差万别,太大借助Docker以及附近的生态圈,大伙儿可以 很容易的得到通用的服务发现框架,享受自动的部署和弹性扩展。

更好的消息是,哪此基础服务是通用的——不但不关心是rails还是sinatra,甚至根本不关心是全是Ruby。

这也很好理解,Docker是对多多系统进程 这名 操作系统工作单元进行了复杂性约束,而多多系统进程 的概念曾经太大与语言和框架无关的。

这使得Ruby工程师以及Ruby项目可以 更为自由的确定合适的技术去扩展公司的产品线。

延伸技术框架

Ruby 刚出来的以前,有太大来自 Java 社区的工程师加入其中(我也与否其中之一吧),太大人最大的感受是——视野被打开了。曾经象口号一样的“all in java”变成了落后的标志,大伙儿意识到,一把钥匙开一把锁,用最合适的技术针对性的处里问题报告 报告 才是聪明的做法,单纯排斥并与否技术太大语言框架无须明智。

这名 道理在Ruby/RoR应用开发中太大例外,太大不少人在使用了几年Ruby以前前会 遇到另另一还还有一个问题报告 报告 ——“Ruby真是很适合开发Web,太大现在因此 问题报告 报告 还要使用XX技术,而大伙儿的系统严重依赖Ruby环境,这该为什么我么我么办呢?”

我认为问题报告 报告 就出在“系统严重依赖Ruby环境”上,研发的基础设施,比如配管、自动化测试、打包、部署,不应该仅满足并与否技术或是语言,它一开始就要考虑到通用性,太大大伙儿就可以了“手里拿着锤子,看谁都像钉子”。

Docker并与否和语言无关,它唯一的约束合适也无须运行在Linux上,这名 对互联网服务端系统来说也与否标准了,问题报告 报告 不大。太大,大伙儿应该以Docker为核心打造研发的基础设施,这将是未来的一笔重要投资。

当然,为未来画饼是危险的,不过还好,Docker领域的创业很活跃,有太大团队和公司太大做了相当多的基础工作,对于Ruby工程师和Ruby创业团队,去用现成的基础设施真是更方便。

关于阿里百川

阿里百川(baichuan.taobao.com)是阿里巴巴集团“云”+“端”的核心战略是阿里巴巴集团无线开放平台,基于世界级的后端服务和性心智心智性成熟期的句子的句子 图片 期期期期的商业组件,通过“技术、商业及大数据”的开放,为移动创业者提供可快速搭建App、商业化APP并提升用户体验的处里方案;同時 提供多元化的创业服务-物理空间、孵化运营、创业投资等,为移动创业者提供全面保障。

本文由站长之家用户投稿,未经站长之家同意,严禁转载。如广大用户大伙,发现稿件发生不实报道,欢迎读者反馈、纠正、举报问题报告 报告 (反馈入口)。

免责声明:本文为用户投稿的文章,站长之家发布此文仅为传递信息,不代表站长之家赞同其观点,不对对内容真实性负责,仅供用户参考之用,不构成任何投资、使用建议。请读者自行核实真实性,以及太大发生的风险,任何后果均由读者自行承担。

阿里百川(baichuan.taobao.com)是阿里巴巴集团的无线开放平台,通过“技术、商业及大数据”的开放,为移动创业者提供可快速搭建App、商业化App并提升用户体验的处里方案。