说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

【舌尖上的CTO】兄弟肉夹馍的开发运维一体化

HTML文档下载 WORD文档下载 PDF文档下载
本文作者为DaoCloud联合创始人陈齐彦,通过通俗的语言讲解移动互联网时代,开发流程的演变。该系列文章内容集中在移动互联网软件研发在持续集成、持续迭代、持续交付领域的方法论和工具箱。

【导读】本文作者为DaoCloud联合创始人陈齐彦,作为中国最早的开源云计算布道者和实践者,过去几年一直致力于将先进的互联网技术与积淀的企业文化融会贯通,帮助企业实现从传统向互联网业务+技术的双跨越。

该系列文章通过通俗的语言讲解移动互联网时代,开发流程的演变,解释清楚企业掌握持续交付能力的重要性。文章内容集中在移动互联网软件研发在持续集成、持续迭代、持续交付领域的方法论和工具箱。文章题材皆来自DaoCloud孵化器内的实际企业案例,并试图用贴近生活的短文将互联网+的应用开发和交付秘诀与读者分享。

本文为该系列第三篇,系列文章第一篇“小杨生煎的持续交付”,借由对上海生煎包品牌小杨生煎的观察,同比阐述在软件开发领域持续交付过程中也需要端好开发、测试、生产这“三口锅”。第二篇“砂锅馄饨的交付件”,阐述砂锅馄饨的神奇在于它创造性地将食物的交付方式与炊具合二为一,互联网技术的熟练运用体现在其中。


前言

民以食为天,食以农为本,农以码为源。饮食文化在中国的渊源历史,浸润了我们这个民族对于自然,人性和哲学的思考。伴随着互联网从工具技术向商业模式转换的浪潮,我们这个文明古国迎来了一次跃进式发展契机。在这一历史机遇面前,我们除了借鉴海外的成功经验,也迫切需要接地气的方法论和发展观。

兄弟肉夹馍的开发运维一体化

上回说到学校后门的黑暗料理,立马开始收到各路私信推荐,且精确提供,如“第四根电线杆”这样的地理位置信息,“面向憨厚的胖大娘”的人脸识别技术,和“排队最长的那家”此类的强社交属性信息。今天的主角,兄弟肉夹馍的故事,就是这么来的。

开发运维,齐力断金。

肉夹馍,属于走三层混合架构的典型代表,同类型的还有驴肉火烧,煎饼果子,大饼卷肉。这个架构因其独特的分层设计原则,带来了极大的开发便利性。这一架构在全球各地都有变种,如汉堡包,三明治,帕尼尼,Spring MVC,Ruby on Rails等。但共性都是一样的,核心风味的食材作为模型,外部通过包裹预制的面粉类框架控制形态,最后封装一层包装交付给用户享用。这一架构被广泛使用好处是食物组件框架化,方便批量生产。缺点就是一旦规模化制造,势必和定制化矛盾,最后就是风味同质化,难登大雅之堂。

所以按图索骥摸到复旦大学北区宿舍的夜市时,除了排队的长龙,并看不透各中神奇之处。直到将近到了队伍前头,得以细看老板的手艺方才一探究竟。这个摊子不大,一人见长,半人见宽。兄弟二人分列两头,左为案板,右为炉火。摊前一溜摆着各色辅菜。于众不同之处在于,食客入队需自报数量,口味和忌口。排在我前面是个金发碧眼的洋妞,一入队便切口一般冲着老板报出“两个薄脆少肥微辣无香菜”。兄弟二人耳闻指令,几不抬头。掌炉火之人合上炉灶掷一块新鲜面团按需揉捏后置入炉火烘烤,掌案板之人勺出相宜之熟肉手起刀落。待得洋妞走到跟前,自助添加辅菜到案板,而案板之人毫无停歇持续加工。恰在此时,掌炉火之人于火中探物,抄起热肉馍飞至案板。案上之人飞刀之处,置馅料与馍中,交于洋妞。一气呵成,叹为观止。待得我走到面前,两兄弟突然移形换位,互换角色。看得我目瞪口呆,忍不住问这是炫技吗?兄弟一人冲我甩甩手说“手切累了,轮换。”。恍然大悟,这便是兄弟制造肉夹馍的秘密。

在传统的业务开发体系里,我们已经习惯了按照既有的框架来将业务转化为业务实现。框架带来的便利同时也间接导致了开发的流程被人为的割裂,这一割裂造成的最普遍现象就是快速变化的业务需求,与不堪重负的运维压力之间的矛盾。于是乎在产品经理,开发团队,和运维团队之间慢慢铸起了高墙,仇恨在这些高墙的间隙见弥漫生长。产品半夜催运维,运维半夜骂研发这样的故事无数遍的重复上演。这个局,怎么破,今天的兄弟二人给了我们很好的启示,也就是传说中的开发运维一体化。

所谓开发运维一体化,即DevOps。追根溯源,来自于Google的内部实践。在Google,一个工程师除了需要开发产品功能,还要向两头延展自己的角色范围,一方面要懂的利用数据来量化自己产品的用户反馈,另一方面每一个人需要能够管理和部署自己的产品。这是一项前期投入大,但是见效长久的工程。借助于Google自身强大的技术实力和卓越的工程师文化,这一理念最终落地申根,成就了未来发展的基石。

工程师文化,是工匠精神在人类文明的新表现形式。对一个工匠来说,其内心最大的满足感在于自己的作品“跑起来,有人用”。这一前一后两个环节,是激发其创造性和能动性的原力。但是因为历史发展的局限性,我们提供的开发工具和管理方法,将开发人员装进了两扇高墙之间,丧失了持续获取原力的渠道。所以好的厨子会偷偷冒充侍者给客人点菜,躲在墙角偷偷看客人的表情,谦虚的询问有什么意见建议。这就是DevOps的精髓。肉夹馍的兄弟二人,谁为开发谁为运维已很难界定,既是掌勺的开发,也是切菜的运维。且互通技能,融为一体。结果就是高速流转的业务,和持续改进的客户体验,并对定制化需求的快速响应。

我们做互联网业务的,遇到的情况肯定比兄弟二人错综复杂。还有很多历史遗留问题也或多或少局限了我们迈开步子的决心。好在是类似容器技术这样的东西适时的出现,大大的降低了开发人员向运维技术栈延展的门槛。当年Google天时地利人和才能做成的事情,现在几乎唾手可得。

原来干运维的听到这急眼了,这是要抢饭碗麽?有道是:开发运维化,运维工具化,工具云端化。运维这工作实际上迎来了更广阔的发展机遇,既然从机械简单劳动解放出来,世界那么大,那还不想去看看?

至此,开发阶段的三道料理尝的也差不多了。但CTO的美食之旅还要继续,正如此季开篇所述,每一个吃货心里都住着个厨子,各位看官难免有些技痒。那下一季我就带大家做做我们DaoCloud厨房的三道招牌Docker料理,也欢迎各位向DaoCloud写信,推荐您的独门料理菜谱。

本文作者为DaoCloud的联合创始人陈齐彦,曾任EMC中国研究院负责人。

欢迎大家投稿,分享更多团队发展与行业思考,投稿至CTO俱乐部邮箱:ctoclub@csdn.net


还不是CTO俱乐部成员的各公司技术负责人,欢迎立即加入俱乐部:cto.csdn.net 。

更多俱乐部动态,欢迎扫码关注微信号:

专访4秒源码商城CTO陈杰:扎根互联网的“不安的心” iOS UIView动画实践(一):揭开Animation的神秘面纱 【前端人生】Teambition前端工程师陈涌:非计算机专业,依托社区不断成长壮大 iOS UIView动画实践(二):Spring Animation与人机交互 基因组与数据整合:DNA应用开发正在临近 2015 PHP框架调查结果出炉,Laravel最受欢迎! 【CTO会员专访】KEEN创始人兼CEO王琦:在GeekPwn,遇见一极棒的安全人才 创业公司都在使用的3款Python库 深入理解Objective-C的Runtime机制 你不知的Docker 创办人兼CTO游走美法的浪漫狂放 《近匠》环信CEO刘俊彦:移动客服的未来化场景 iOS UIView动画实践(三):Transition Animation 【CTO讲堂】无社交,不App!——为App加载强大的通讯社交引擎 【探秘ES6】系列专栏(七):箭头函数 【前端框架】Backbone.js在大型单页面应用中的应用实践 【探秘ES6】系列专栏(六):解构赋值 《近匠》TestBird,专注的手游自动化云测试平台 【探秘ES6】系列专栏(八):JS的第七种基本类型Symbols 专访李林锋:我与Netty那些不得不说的事 手把手教学:巧用Core Data和RubyMotion开发iOS应用 《近匠》琥珀天气,精细化打磨征服Google Play 【CTO讲堂】人工智能到底能为我们带来什么? Linksys再度回归中国市场,主推智能路由 Windows 10:全平台战舰与移动化破冰——微软(中国)操作系统工程院院长谢育涛专访 专访友盟CEO叶谦:深挖海量终端用户数据的价值 七牛资深前端工程师马逸清:前端测试探索实践 实战iOS 9:开发者必须掌握的三种搜索API 腾讯Bugly干货分享:浅谈Swift在实际项目中的应用 【前端人生】ThoughtWorks黄峰达:利用横向扩展方式,快速学习前端新框架 这是前端最好的时代——论前端的“三化”建设 游戏引擎网络开发者的64做与不做(一):客户端方面 谁有DELPHI的有关网络编程方面的资料?给我一份可以吗? 关于stringgrid的问题????? 痛苦啊,难道要放弃BCB吗? 大家认为在开发过程中是否不能用全局变量? 如何让LINUX支持我显卡 高手,谁来帮我一下~! 取字符 在SDK中,如何获得客户区的宽度和高度呢??(哪两个函数呢?) 哪里有ATL的电子书下载?最好是中文的! 高手谁能帮帮我呀~~~~~~~! 请教:如何在statusbar的panel中显示一个图标呢? VC++中如何使用OLE对象? 初来乍到,发现这儿JJMM还挺多的。。。 请高人指教~! CSDN中碰到这种问题,该如何解决呢? 如何学习director 你能帮我一下吗?~ 企业商务管理软件,开放全部的源代码及开发文档! 企业管理软件,全套源码及开发文档!!!! 哪里有支持任何波特率的通讯控件下载? net_lover(孟子E章)请进~! 一个有关CWebBrowser的问题,急急急!!! 这样的语句为什么不可以实现一次删除多条记录 plmm是什么意思? 各位大侠,知道哪儿有直接可用的上传文件的控件吗? 多谢了!!! 论坛的题目是不是太没意思了 一个sqlserver7统计的问题?? varchar类型不是可以输入255个字符吗,为什么我输了160个就出现'item XXX doesn't pass validation test ' 唉 ~~~~~ 奈何 ~~~~~ 突然想到个荒唐的问题: 事件和过程有什么不同? 奇怪的事前,高手请进来 我的问题还没有解决~! 这里的高手呢,人听多,会的人不多 申奥倒计时,如果你在线,请进来验证这以历史性时刻,谢谢 我有一个用hook截获鼠标移动的dll,但是没有效果,请问怎么调试? 请教,怎样在java中把Button的背景改做一个图片 对delphi5一个自带例题的疑问。 爆炒MM之水园MM ID一览 窗体和控件的自适应问题? 求《unix》环境高级编程的源程序下载。 在MIS或WEB中有大量的对数据操作的工作,是否所有的insert,update,delete工作都需lock and unlock??? 紧急求助:那里有pb7的最新版本下载(mark200106@sina.com) 感谢stanely :) 哪里有《unix环境高级编程》所带的源程序下载? 关于quickrep得统计问题,为什么我只能把所有的数据累加而不能累加一个grouphead和groupfoot之间的数据 关于ATL做ActiveX控件的问题 关于jc文件的问题 请问:在用ADO执行查询操作时,如出现“超时”错误,应该有哪些解决办法? 帮忙算一下JB5的激活代码,呵呵 模板问题 软件发布:捉图王 已知角α的终边上有一点的坐标是P(3a,4a),其中a≠0,求α的三角函数值 当a=-2时,a+2a+3a+4a+.+100a= -化简求值2/3a-{1/3-[(3a²-5a+1)]},其中a=3 已知角a的中终边上有一点坐标p(3a,4a) a不等于0 求sina cosa tana 的三角函数如题 考试中 a= 2,a+2a+3a+4a+...+100A=? 化简求值2/3a-{1/3-[(3a²-5a+1)-1/3a-5]} 设a<0,角阿尔法的终边经过点P(-3a,4a),那么sin阿尔法+2cos阿尔法的值等于 5(3a方b-ab方)-4(-3ab方+2a方b),其中A等于-2,B等于3化简求值 化简求值2(3a-1)-3(2-5a+3a²),其中a=负三分之一,其结果为多少? 已知角α的终边经过点P(4a,-3a)(a≠0),求2sinα+cosα的值? 化简 3a²×根号下2/a 化简求值:(-5-a²+3a)+(-a²-5a+4)其中a=-1/2 设角α的终边上有一点P(-4a,3a)(a≠0),则2sinα+cosα的值是( ) 怎么求? 求解过程,急!给悬赏!先化简,后计算:81-a²/a²+6a+9÷9-a/2a+6×1/a+9,其中a=根号3-3 5a²+[a²+(5a²-2a)-2(a²-3a)]其中a=-1/2 先化简再求值1/2(x²-y²)-4(2x²-3y²)其中x=-3y=2 已知角a的终边上有一点P(3a,4a) (a 已知根号2a-3+b=4,化简根号a²-2a+1-根号b²-8b+16 先化简,后求值:(5a²-3b²)+(a²+b²)-(5a²+3b²),其中a=-1,b=1. 设α角终边过点p(3a,4a)(a≠0)求sinα,cosα,tanα? 已知b 先化简,在求值 5a²+3b²+2(a²-b²)-(5a²-3b²),其中a=-1,b=1/2 已知sina+sin^2a=1,求3cos^2a+cos^4a-2sina+1 设α角终边过点p(3a,4a)(a≠0)求sinα,cosα,tanα? 已知:a<0,化简:根号下4-(a+a分之一)²-根号下4-(a-a分之一)² 若cosA+cos^2a=1,则sin^2A+sin^6A+sin^8A等于多少若cosA+cos^2A=1,则sin^2A+sin^6A+sin^8A等于多少 上面那个题打错字母了 已知角B的终边过点P(-4a,3a)Simb.cos b.tan b谁知道怎么整啊 已知a=1-根号2,先化简,再求(a²-1)/(a²+a)+根号( a²-2a+1)/(a²-a)值老师讲的答案和我算的不一样,求过程 已知cosa+cos^2=1,则sin^2a+sin^6a+sin^8a=多少请给出详解,谢谢! sin²a+cosˇ4a+sin²acos²a 化简 若a²-3a=9,则2a²-6a+3的值是-----------------. 已知sina+cosa=m 求sina*cosa 和 sin^4a+cos^4a的值 2.证明:sin²²a+cos²²a=1-2sin²acos²a 22是4噢2.证明:sin²²a+cos²²a=1-2sin²acos²a 22是4噢 打不出这个符号 a-²b-³·﹙-3a﹣¹b﹣²﹚÷6a﹣⁴b﹣²的结果是?请带上过程.(-²这个是负二次方,其余的也是这样) 若sin^4a+cos^4a=1,则sina+cosa= 求证[1]1-2sin acos a/cos²a -sin²a =1-tan a/1+tan a.[2]1-cos 2θ/1+cos 2θ=tan²θ 若√a²-3a+1 +b²+2b+1=0,求3a²-6a+1/a²-(-b)²的值.若√a²-3a+1 +b²+2b+1=0,求3a²-6a+1/a²-(-b)²的值。 已知sina+cosa=1/3,求sin^a+cos^4a sin∨4a-cos∨4a=sin²a-cos²a 求证 下列各式计算正确的是A(-3a²b)(-2ab²)=6a³b²B(﹣2×10)²×(6×10³)=1.2×10的5次方C﹣2a²(2分之1ab-b²)=﹣a³b-2a²b² D(﹣ab²)³=﹣a³b的6次方,若ab²= cosa=1/2,cos^4a+sin^4a=?cos2a=1/2 证明:sinα^2+sinβ^2-sinα^2sinβ^2+cosα^2cosβ^2=1 已知a²+b²-6a+8b+25=0,求3a+4b的值. 已知sina·cosa=1/2,求sin^4a=cos^4a的值打错了求sin^4a+cos^4a 证明:1-2sinα cosα/cos^2α -sin^2α=1-tanα/1+tanα 因式分解:(3a+2b)²-(3a-2b)²和9x²-4y² 已知sina+cosa=p,求(1)sina*cosa(2)sin^2a-cos^2a(3)sin^3a+-cos^3a(4)sin^4a+-ctg^3a 证明[2-2sin(α+3π/4)cos(α+π/4)]/(cos^4α-sin^4α)=(1+tanα)/(1-tanα) 6a²-9ab+3a 因式分解 三角函数sin、cos、tan各等于什么边比什么边? 证明sin^4α-cos^4α=2sinα²-1 因式分解3a²-5ab+2b²加上:若多项式f(x)=x的四次方-x的三次方+ax²+bx+c能被(x-1)的三次方整除,求a,b,c的值设abc是三角形的三条边,则a的四次方+b的四次方+c的四次方-2a²b²-2b²c² 我要sin.cos.tan三角函数表,只要30°45°60°.是要根号的,不要有小数点的 证明(1-2sinθcosθ)/(cos^2θ-sin^2θ)=(cos^2θ-sin^2θ)/(1-2sinθcosθ) 化简5a^2-[a^2+(5a^2-2a)-2(a^2-3a)] 三角函数问题 sin与cos和tan怎么转换比如sin150度,为什么等于sin30度,cos150度为什么等于-cos30度 当a=-2时,a+2a+3a+4a.+100a等于多少 5a²+[a²+(5a²-2a)-2(a2-3a)],a=-二分之一 先化简再求值 已知角阿尔法的终边上有一点p的坐标是(3a,4A),其中a不等于0,求三角函数值.这道题为什么先求半径 不是求函数值都是按单位圆半径为1算的吗? a=-2时,a+2a+3a+4a+.+100a等于多少 化简求值:5a^2+[2a^2+(5a^2-2a)-2(a^2-3a)],其中a=-1/2
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn