首页 > 传媒 > 关键词 > Docker最新资讯 > 正文

为什么Ruby程序员应该了解和掌握Docker

2016-02-26 16:18 · 稿源:站长之家用户投稿

Docker技术在Ruby社区是有影响力的,我所知道的一些创业团队很早就在运用它来解决环境管理、持续集成以及部署的问题了。但是,也有一些同学尚未注意到这个技术,或者了解过后认为它不是很重要,所以我想讨论一下Docker对Ruby系技术的帮助。

有的人可能对Docker技术不太了解,不妨参考论坛里的这篇文章(https://ruby-china.org/topics/22004 )以及肖德时写的系列文章(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 30这样的实践。

其实微服务本身不是个教条,即使没有人教,我们也常常自发的去进行服务化改造,但是这个工作并不容易,主要是会受到一些问题的掣肘,比如运维复杂度和系统测试成本会大幅度上升等等。

处理这些困难,首先当然是看是否必要,一些简单场景我们也可以用单体架构直接搞定,但是我们很容易会注意到,这两年大家越来越多的提到了微服务或者服务化,这背后其实是有趋势的——各种业务形态都在朝着互联网级的用户规模推进,同时大家都在努力从每一个用户的各种维度上挖掘价值(这导致了大数据的需求),这些场景变得越来越常见,单体架构是难以支持的。

既然微服务或者服务化不可避免,那么就要有相应的对策,虽然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并提升用户体验的解决方案;同时提供多元化的创业服务-物理空间、孵化运营、创业投资等,为移动创业者提供全面保障。

网友热搜:

免责声明:“站长之家”的传媒资讯页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与我们联系删除或处理。稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性,更不对您的投资构成建议。我们不鼓励任何形式的投资行为、购买使用行为。

  • 相关推荐
  • 大家在看
  • 月入两万的程序员背着电脑送外卖:甲方提需求好随时改代码

    每个人对生活都有不同的理解,也有丰富多彩的选择。据国内媒体报道,来自安徽合肥的小张毕业于安徽师范大学计算机专业,95后,毕业后从事PHP程序员工作已经三年,收入2万元左右。不过,与众

  • 27岁程序员转职赏金猎人:一个漏洞10万美元,比工资香多了

    6 月 1 日,有报道称,印度开发者 Bhavuk Jain 向苹果安全团队报告了 Sign in with Apple(通过 Apple 登录)中存在一个零日漏洞,它允许攻击者远程劫持任意用户账户,影响严重。为此苹果向 Jain 支付了十万美元的巨额赏金。

  • 没有自家配送员,让Grubhub从外卖鼻祖到卖身求存

    2020 年 6 月 11 日,外媒报道欧洲最大外卖公司Just Eat Takeaway拟收购昔日美国外卖标杆GrubHub的100%股权,收购方式为股权置换、价值高达 73 亿美元,合并之后Grubhub首席执行官将加入Just Eat Takeaway的管理委员会,继续管理北美业务。

  • 字节跳动程序员期权价值过亿 28岁辞职享受人生引热议 当事人回应

    有人28岁刚刚硕士毕业,有人28岁已经实现财富自由并退休。近日,知乎一篇“如何看待年仅28岁的郭宇宣布从字节跳动退休?”引发网友热议。今年2月,郭宇在个人微博发文称:“

  • 独家专访28岁退休程序员郭宇:1600人加好友,问我“挣了多少钱”

    微信好友的“问候”排满了对话框,点开来都是雷同的标题——“ 28 岁退休的程序员xxxx”。在知乎上,“如何看待年仅 28 岁的郭宇宣布从字节跳动退休?”的问题,有近 1000 万人浏览阅读。

  • Aruba将通过ESP改变业务方式

    [TechWeb编译]惠普企业网络业务部门Aruba在其Atmosphere虚拟会议开幕日当天宣布推出Aruba ESP,这是一个新平台,该公司相信它将改变其开展业务的方式。ESP是Edge Services Platform的缩写,它完全基于云计算,并由Aruba现有的三种产品提供支持:Aruba Central,AIOps和Dynamic Segmentation,它们本身结合了几种访问管理技术。 它还汇集了Aruba最近三笔收购中的技术。 Niara,Cape Networks和Rasa Networks。该平台使用人工智能(

  • Aruba发布业界首款服务智能边缘的云原生平台Aruba ESP

    【TechWeb】6月18日消息,慧与公司旗下的Aruba今日推出业内首款 AI 驱动的云原生平台Aruba ESP( 边缘服务平台),该平台建立在 AIOps、零信任网络安全和统一架构基础上,提供跨网域数据的持续性分析、跟踪 SLA,识别异常情况并进行自动优化的平台,同时监控网络上的未知设备以确保设备安全。Aruba ESP旨在为网络边缘提供云体验,可作为云服务或本地服务使用,也可由Aruba合作伙伴提供托管服务,抑或通过HPE GreenLake获取相应服?

  • 瑞幸咖啡:Tianruo Pu辞去独立董事职位

    据彭博消息,今日,瑞幸咖啡发文称,Tianruo Pu辞去独立董事职位。

  • 抛弃Uber Grubhub宣布与欧洲外卖公司Just Ea合并

    据外媒消息,Grubhub与欧洲外卖公司Just Eat Takeaway.com宣布正式合并。官方称,这一交易将在2021年第一季度完成。Grubhub和Just Eat Takeaway在周三钟声敲响后宣布了合并条款。根据6月9日Just Eat外卖公司98.60欧元的收盘价,每股Grubhub股票的隐含价值为75.15美元,总股本价值达到73亿美元。盘后,Grubhub股价一度增长7%。不过,Just Eat外卖公司的股价在周三的消息公布后下跌了超过10%?

  • 选择Trust Wallet的10大理由!

    加密资产的使用和存放其实可以很简单! 2018 年,,使币安距离实现金钱自由流通这一目标更进一步。是币安的官方移动钱包。它为用户在币安平台以外存放资金提供了一个安全、便捷的选择,多种内置功能则进一步丰富了加密资产使用体验。如果你还没有Trust Wallet,,以下我们将为你介绍选择Trust Wallet的 10 大理由:1.免费使用的使用是完全免费的。下载App无需付费,App内也没有任何隐藏付费。当然,和任何区块链产品一样,用户还是

  • 重磅!「晓程序观察」独家:支付宝小程序最全运营宝典!

    ​随着 618 战火愈演愈烈, 2020 年即将正式驶过一半航程了。年初疫情足不出户时,你们闭门在家做的目标计划书,不知道已经实现得如何了?

  • 苹果小程序在哪里

    北京时间今天凌晨,在 WWDC 2020 全球开发者大会上,苹果发布了 iOS 14 系统,正式介绍了其最新版的 iPhone 软件。ios14当中的一个亮眼便是被称为「苹果小程序」的新功能。苹果在App Store新加入的「App Clip」功能,就类似于小程序。苹果表示App Clips包含应用的一小部分功能,而无需完整下载安装,使用起来十分地方便。同时苹果也在研发全新的QR二维码格式,该格式同时使用视觉二维码和NFC来快速访问App Clip。以下是关于ios版小

  • LOL云顶之弈10.12宇航员斗枪阵容搭配 斗枪宇航员上分阵容攻略

    英雄联盟云顶之弈10.12版本中宇航员这个火起来了,很多玩家还不清楚有什么比较好上分的阵容,今天就来为大家分享一下LOL云顶之弈10.12宇航员斗枪阵容搭配攻略。

  • 中兴通讯助力泰国True打造精品5G IPRAN网络

    【TechWeb】近日,泰国True 5G IPRAN项目结果公布,中兴通讯凭借POC测试中的优异表现成功中标,中兴通讯5G Flexhual方案将助力True打造超宽、智能、可持续演进的5G IPRAN网络,实现移动(2G/3G/4G/5G)、FTTx、WLAN接入和政企专线四大业务的统一承载,巩固True持续领先优势。据悉,True是泰国全牌照运营商,拥有300多万固网用户,在移动市场拥有30%份额,并保持每年30%的增速。2020年2月,Ture成功拍下泰国5G牌照,并宣布5G网络正

  • 北京确诊外卖员获房租减免,房东称不要自责

    近日北京一外卖员孔先生被确诊,他在接受采访时表示,自己目前压力很大,很担心因自己而影响食客与商家的健康。之后媒体还得知,孔先生的房东决定减免他在住院期间的房租。

  • 饿了么回应北京一外卖员确诊平均每天接50单

    6月21日北京一外卖小哥被确诊为新冠,这名外卖小哥为饿了么平台旗下,对此饿了么官方在今天表示正在对北京地区所有外卖骑手进行核酸检测,与阳性病例有密切接触的骑手,已第一时间暂停接单,目前已到指隔离点集中隔离。

  • 京东:将为全部在京快递员提供免费核酸检测

    今日,京东表示,将在政府部门的指导下,为全部在京快递员、货车司机和生鲜仓储人员提供免费核酸检测,目前已经有超过 2000 名员工完成了检测,其余员工也将在最短的时间内分批次完成检测。

  • 读懂隐含波动率,OKEx研究员的期权对冲策略

    据市场分析公司Skew最新数据,6月9日,比特币未平仓期权已达15亿美元,33天前未平仓头寸刚突破10亿美元,这表明一个多月的时间里涨幅达50%。 比特币期权市场火爆的同时,各家交易平台也在上线新的数字货币衍生品。6月4日,全球领先的加密资产交易平台OKEx正式上线ETHUSD期权合约,加上此前上线的BTC期权,OKEx目前已上线两款期权产品。 与许多刚接触期权的投资者过于关注期权价格不同,专业的交易员在进行期权交易时,都是通过观?

  • 享学课堂书写程序人生

    30 岁以后何去何从,是程序员职业生涯的分水岭。有的程序员会继续深造晋升,有的程序员会转投其他行业,也有一部分程序员选择创业,开启从 0 到 1 的新生涯。2018 年 3 月,三位踌躇满志的程序员走在一起,因为改变和梦想他们成立了享学课堂。Lison(李勋) 复旦大学工程硕士,曾就职于金蝶中间件、国防科大等知名企业,负责主持公司的日常各项经营管理工作,组建公司人才团队,制定公司发展战略,负责公司运营和销售管理工作;Jam

  • Trustdata:今日头条、趣头条更受银发族青睐

    DoNews 6月10日消息(记者 刘文轩)Trustdata发布了《中国移动互联网新闻资讯行业发展分析报告》,分析了2016年1月到2020年3月,中国移动互联网新闻资讯行业用户平台类新闻资讯产品的使用情况。报告显示,中国移动互联网新闻资讯行业历经高速发展,活跃用户已经上升到5亿规模,在2020年第一季度,受疫情影响,净增用户相比上一季度超5千万。行业品牌方面,中国目前已经形成今日头条、腾讯新闻、新浪新闻三强争霸的局面,新浪新闻、

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议