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

黑暗架构:以最少时间完成系统升级并获客户认可的开发之道

HTML文档下载 WORD文档下载 PDF文档下载
以短板部分的更新去大幅提升整个系统的效率,以小部分的工作量去应付可恨的交期,这就是黑暗架构法。满足业务的需求,博得用户的掌声,这才开发者需要做的。

Dyn的CTO Cory Von Wallenstein,主要负责公司IaaS平台技术的决策、创新和发展的方向的制定。近日他在Wired上撰文给大家描述省时省力的系统升级之路——黑暗架构(Dark Architecture)。以下为译文:


任何公司目标都是业务的增长,但是增长需要不断的衍化公司的每个部门,其中不只是你的技术基础设施。许多企业一直使用着非常原始的途径去完成这个衍化,虽然这里存在着极为简单的解决方案。

而公司升级其基础设施及系统架构一般出于以下3个原因:

  • 为了规模——以获得当下十倍或百倍的容量
  • 为了性能——视图移除一个系统瓶颈,让工作的执行更加快速
  • 为了解耦——为了获得更好的可靠性及可维护性,当然也为了将来的扩展做努力

早先的方法属于全盘否定类:首先制定一个3个月的计划,然后开发人员开始全力以赴的打造新系统,希望3个月后能顺利完成。事实上经常出现的情况就是3个月变成6个月(不可避免的比预期时间要长),而业务从老系统迁移至新系统也面临着非常高的风险。当新系统100%实现老系统所有功能后,遗留的旧系统便只能被废弃。

鉴于这六个月的开发时间里缺乏优先顺序及旧系统的其它改进,业务毫无疑问的丧失了灵活性。这种更新方式就像是“全部”或“一无所有”的命题,并且直到开发团队完成新系统的建设并且将所有业务转移到新系统,这段时间内对业务的提升基本为零。而面对来自客户的抱怨,技术团队的士气也一滑再滑。这种方法需要改进的地方主要归结于3个方面:

  • 立刻给客户带来价值——我们没必要一直等到整个新系统完工并投入使用再实现价值
  • 减少成品引进的风险——我们需要避免“全部”或“一无所有”的迁移计划
  • 保持业务提供灵活性——可以选择优先级,最少要保证核心价值的及时交付(如果可以选择的话,我们要做到最快的解决并交付相对重要的解决方案)

针对以上解决方案:黑暗架构的实现途径

黑暗架构(Dark Architecture)不仅是一种思想,同样还是个技术解决方案;用以解决规模、性能及耦合问题,黑暗架构不仅让硬件通向成功而且可以让员工有一个清晰的思维。可以通过以下途径实现:

  1. 优先提升系统中的工作流,而不是改变系统的组件
  2. 并行运行老系统及黑暗架构
  3. 给两个系统同时发送输入数据,收集输出数据,对比输出结果,然后抛弃一个

使用暗黑架构途径,运作方式将如下所示:

1. 在接触代码与系统之前,先按照以下顺序优化系统中的数据流:短板、机遇、业务价值或者其它经验证后对业务有意义的事情。

2. 于其着眼考虑组件相关(比如使用Cassandra替代原系统中的MySQL),不如考虑流系统(比如,为顾客X执行一次通配符查询类型图渲染大约需要40秒,而使用其它图渲染类型要快的多)。这个步骤能让你看到系统中的弊端所在,所以你可以首先聚焦这个瓶颈的解决方案,然后再考虑其它的问题。

3. 如果使用流优化优先(假设优化的功能占整个系统的2%),事实上下一步做的并不是直接建立功能。取而代之的是为这些功能建立相关支架,让系统可以同时使用两个不同的方式进行计算(为了对比输出结果,有差异时做记录)。

黑暗架构具体实践方案

从实际情况出发,这可能是复制一个网络服务调用(旧的和新的)或者是复制数据库交互调用(同样一新一旧),然后对比返回值,如果存在不同则将其记录到一个文件或者服务器又或者是消息总线中。

在输入/输出支架就绪后,你就可以着手功能的建立。实现系统中最短板的2%功能,就绪后,将其投入产品中的黑暗架构。它将会与旧系统一起接收产品的输入数据,虽然最后它的计算结果会被抛弃,但是在这个过程中我们可以与旧系统的输出值进行比较。如果输出的结果不同,记录并进行检查。这让你可以更熟悉你的新系统,并且在具体操作中获得一些实际经验。

一旦确定新的系统可以正常工作并且达到了渴望的性能或者是扩展性提升,将输出转换成新的系统。这样,实现的只是系统中2%最短板的功能,其它功能则沿用旧系统的遗留。如此等于改动2%的功能,花费了一小部分时间就交付了整个新系统的价值。

使用黑暗架构得到的收益:

  1. 士气高昂——有什么比技术人员看到自己成果很快被投入使用来的更振奋人心?
  2. 客户肯定——他们头痛的问题被解决了
  3. 降低风险——在项目重写的过程中,新系统已经得到实际验证

下面看一下有更多高优先级流需要优化的情况——占整个系统的20%,使用黑暗架构途径,业务将很快的发现自己的方向:

  • 持续更新流,直到系统100%都被迁移
  • 对剩下的80%功能与业务优先进行评估

如此可见黑暗架构的强大作用,在最短时间解决系统短板的前提下还拥有选择更高的灵活性,可以从容对业务优先进行处理。

原文链接: Dark Architecture: Upgrading Infrastructure With Agile Principles(编译/仲浩 审校/王旭东)

欢迎关注 @CSDN云计算微博,了解更多云信息。

英特尔:机器已扛不住亚洲的空气污染 IE11中全新增强的F12开发人员工具 TUP第31期报名已满 向主讲人《浪潮之巅》吴军提问征集 对话Spark核心作者Ion Stoica:我的编程之路从2KB内存开始 埃洛普出局?微软董事会称Mulally、Satya有望是下任CEO 百度开源平台上线,聚合百度开源项目 盘点TOP500:值得关注的超算,及当下趋势 【BDTC讲师】Tachyon作者:大数据存储以及处理框架经验分享 进一步称霸中国:低端设备让Android在中国每季获3%增长 低端设备撑起Windows Phone市场份额 研发周报:你的数据库准备好过冬了吗 JVM垃圾收集器使用调查:CMS最受欢迎 技术创业不能一味追求“骨感”,必要时丰富自己的5个途径 帷千动媒副总经理兰旭:整合现在,梳理未来! 11月份浏览器份额:IE继续上涨,Chrome仍不温不火 Windows 8令人担忧:8和8.1两版本份额目前仅有9.3% 一周消息树:微软还需更激进的手段——开放Windows Phone 【开源推荐】Genome.js:当DNA遇到开源 Go 1.2发布 着重语言特性的改进 微软资深IE专家邹颂兵:好产品才是竞争的关键 Web应用程序完全测试指南 Python正在取代R,成为数据科学界新宠 代号Threshold:微软将推Windows统一平台Threshold 日本任天堂掌机应用:《卢浮宫》革了谁的命? [TUP第31期]《浪潮之巅》吴军:硅谷3.0助力中国企业走向国际 SequoiaDB创始人:比MongoDB领先一到两年 打造企业级NoSQL数据库 [对话CTO]甲骨文熊光樑:全球研发模式开发出接地气产品 GitHub中国游记之长城——跨越那堵看不见的墙 IE11开发人员工具:UI响应工具详解 2013 Linux领域年终盘点 腾讯云俱乐部深圳站成功落幕 开创移动开发新篇章 如何用CSS控制INPUT的输入外观不是立体的,而看起来是平板的样子,只有一个边线? 用户注册的问题,密码总验证不对,能不能看看错在哪里? 如何使文本框只显示下面的边框? xsl求助~~~ 怎么将int转为CString 有的论坛采用从数据库得到帖子,有的使用shtml,有的使用xml,孰优???还有其他吗? 100分==在JSP中打开word文件的实例 紧急在线等一个很简单的问题 DTPicker 怎样和数据库绑定? 如何动态改变VB报表中Section中的一个与数据环境绑定的rptTextBox的颜色!(100分求教) datediff()这个函数怎么用哪位高手可否给小弟讲解一下急用在线等 和女友分手了,痛苦! 谁有支持中文的带身份验证和邮件群发的ASP.NET邮件组件? 关于多个表通过相同的字段级联的问题,进来看看,一定给分! windowd server 2003许可证问题 谁有支持中文的带身份验证和邮件群发的ASP.NET邮件组件? 求合作伙伴——推广抗非典病毒的消毒剂!!! 在表分区中,按某个varchar2的字段的值和范围如何分呢 我又來了,不僅你們煩,我更煩. 服务器端与客户端的问题 服务器端与客户端的问题 最后的问题,谢谢帮我看看 发现MS WINDOWS版的C标准库一个在BUG!!!!! 在用VFP操作EXCEL时出现无法用字段内容填充单元格问题,请各位帮忙看看. 算法 救命! 有没有rmi的好例程,一用就灵,急 fast report 和 qreport 到底应该用哪一个???(来者有分!!) 关于“数据结构书”的回应——版主莫删 如何进入另一个对话框 在一字符串中怎样取出某一个字符出现的次数. 急! infopower 2000、 3000、4000 Password?? 自定下载的问题,请教高手 如何屏蔽播放.wav文件但找不到相应.wav文件时发出的默认声音? 如何打开另一个对话框 政治因素对我国军事专家的困扰[ZT] if ((btime==null)&&(etime==null )) 请教 一位女同事辭職,一位男同事說跟我有關,鬱悶中... 请问如何在B/S模式下,在页面上实现,如word,excel中的编辑功能? 如何画一个二元函数的图象 急!高分求教:Epson TM U300微型打印机打印作业丢失问题!(100分) word中如何做浮动窗口或按钮等? 大于255个字符的SQL语句如何来写?在线等待 請大家不要煩這種貼子,我都更煩.我是沒有辦法了 兼职Java软件工程师 怎样去掉用户输入的字符串里的引号? 如何获得 表中定位的 消息? 在keil下的debug session下遇到的问题。 高分相送,不够另开贴相送 有没有类似数字里的sum函数对应的把文本连接起来的函数啊 在三角形ABC中,角C=90度,D是BC中点,且角ADC=45度,AD=2,求tanB的值有图的,但还不能传,大概描述下A在C的上面,B在 C的右边,其他的没什么了吧应该听得懂吧~ 已知△AOB的顶点坐标分别是A(4,0),B(0,3),O(0,0),求△AOB外接圆的方程. 孟子原文到底是 天降大任于是人也 还是天降大任于斯人也?我要证据 课本上的不算要尊重原文啊 虽然意思差不多 原文到底是啥. 在三角形abc中 角c 90度 点d是bc的中点 且角adc 60度 ac等于根3 求tanb的值 已知△AOB的顶点坐标分别是A(4,0),B(0,3),O(0,0),求△AOB外接圆方程. 孟子的“天降大任于斯人也”后面是什么? 求两个小孩的年龄两个小孩的年龄分别为X,Y,且X的平方加XY等于99,这两个小孩的年龄各是多少? 在△ABC中,∠C=90°,D是BC的中点,且∠ADC=50°,AD=2.求tanB的值 化简m-n+3(m-n)-5(m-n)的结果等于 有一群小孩,他们中任意5个孩子的年龄之和比50少,所有孩子的年龄之和是202,这群孩子至少有多少?选项里没有22!我也以为是22! 7分之3:6分之5的最简整数比 已知集合M={x-y,x+y,xy},P={x²+y²,x²-y²,0},且M=P,求实数x,y的值. 团结是胜利的根本是什么意思 6分之5比4分之3的最简整数比是多少 外偏旁口内一女字怎么读如题 文汇出版社的寒假生活(高一化学)哪里有卖!最好是徐汇 闵行的 或者上海书城现在是否有 子曰:人而不仁,如礼何,人而不仁,如乐何的意思 分光计的反射镜能不能随便放置 子曰:“人而不仁,如礼何!人而不仁,如乐何?"我要准备课前三分钟 有关于[子曰:“人而不仁,如礼何!人而不仁,如乐何!”] 的①翻译②重点词 特殊句式③感悟 或 延伸课外之类的没有重点词么重 在三角形ABC中,角C=90度,D是BC的中点,角ADC=60度,AC=根号3,求三角形ABD的周长 已知三角形AOB的顶点分别A(-1,5),B(5,5),O(6,-2),求此三角形的外接圆的方程 子曰:“人而不仁,如礼何?人而不仁,如乐何?” 在Rt三角形ABC中,角c=90度,D是BC的中点,角ADC=60度,AC=根号3,解这个三角形 家长用什么教育方法让孩子初步感知生活中数学的有用和有趣 丁博士,文汇出版社(封面是紫色无图的) 已知2/x+3+2/3-x+6x-6/x^2-9的值为整数,则整数x有若2x-18/x^2-9的值为整数,则整数x有,我化简下来就是2x-18/x^2-9,接下来不会算了 高一数学题在线求解 x可以是2吗 在第三步 为什么 :如图,AD是圆O的直径,过D的切线交BC于点P,连接PO并延长分别交Ac,AB于N,M.求证ON=OM 已知关于x的一元二次方程x²+(m+3)x+m+1=0.求证:无论m取何值,原方程总有两个不相等的实数根. 如何引导幼儿感知和体会生活中的数的有用 AD是△ABC的外接圆O的直径,过D作圆O的切线交BC于P,连接并延长PO分别交AB、AC于M、N,求证:OM=ON. 已知关于x的一元二次方程x²+(m+1)=0,求证:无论m取何值,原方程总有两个不相等实数根 孩子体验盲人生活后家长的感受 已知pa,pb是圆o的切线若po=26,ab=24,om<pm,求ap及圆o的半径长 m的2次方加m加1/4,分解因式 (m+3)的平方-4m大于等于零,可以化简为(m+3)的平方-4m大于等于零,可以化简为 已知集合A=(x^2-ax>=x-a),集合B=(2log2(x-3) 已知一元二次方程x²-2x+m-1=0 (1)说明当m取任何实数时,方程有两个不相等的实数根已知一元二次方程x²-2x+m-1=0 (1)说明当m取任何实数时,方程有两个不相等的实数根 (2)当m分别取-2.0. n的平方减去m的平方 分之 m的平方减去n的平方 化简 等于多少 求证:如专图——五角星 ∠A+∠B+∠C+∠D+∠E=180° 直线m平行于直线n,则此时角1角2角3角4之间有什么关系最好要过程 恻隐之心,仁之端也;差恶之心,义之端也,辞怀之心,礼之端也是非之心,智之端也,]这名言的意思是什么� 三角形ABC的三条外角平分线所在的直线相交构成三角形DEF,那么三角形DEF的最大角a的取值范围是? 邮编056200每个数字是什么意思 1道初四数学二次函数题在一个直角三角形的内部作一个矩形ABCD,其中AB和CD分别在两条直角边上.(点A就是直角A)1.设矩形的一边AB=x,那么边AD的长度表示为( )2.设矩形的面积为y,当x取何值时y 设事件A表示"体温高于标准体温",事件B表示"肺部感染"P(B)=0.005,P(A|B)=0.95,P(~A|~B)=0.95.求体温高于标准体温条件下,肺部感染的概率是多少? 邮编的每个数字有什么含义? 有没有高人能告诉我初四数学二次函数怎么学?哎天哪,英语,政治都是第一,数学考得很烂,最后虽然考了第一但是非常侥幸,冒了我一身虚汗,有人能告诉我这部分数学知识怎么学吗?听课听得很 .意思子曰:“人而不仁,如礼何?人而不仁,如乐何?” 如图所示 在三角形ABC中,角C=90度,AC=BC,角平分线AD=8cm,试求三角形ABC的面积. 实践调查作业的格式怎么写绿色环保实践作业与生活有关 已知x1+x2=m,x1x2=3,x2+x3=2,x2x3=m,求m 三个和尚为什么没水喝? 地理(大洋洲)位置:位于______ 与 ______ 之间,西临______ ,东临______ ,与 ______ 洲, ______ 洲隔海相望,既跨 ___半球,也跨___ 半球 2、范围:包括______ 大陆,______ 岛,______ 南、北岛,______ 岛 “若溶质为结晶水合物,溶于水后,其溶质的质量就不包括结晶水的质量了”为什么这么说? 效率高的复习方法 题目是我为祖国自豪,要写我的实践和体会,该怎么写呢? a的平方等于30,求a等于多少? 已知△AOB的顶点坐标分别是A(4,0)B(0,3)C(0,0)求AOB外接圆方程(两种方法)我要具体过程! 孟子的“天降大任”的含义是什么?对此你有什么看法? 意大利议员:美国监控如拖网捕鱼 一网摩洛哥少年网上称要杀死奥巴马 被判入美籍华人歌唱家吴沁将放歌国家大剧院养老金——全球性难题如何破解欧洲大部分国家27日结束夏时制泰国首都曼谷的房产经意大利议员:美国监控如拖网捕鱼 一网欧洲大部分国家27日结束夏时制多国外交官出席水文化论坛 看好中国瓶世界主要城市10月26日天气预报朝鲜通过板门店送还6名韩国人外交部就俄罗斯、印度、蒙古三国总理访欧盟为防美将设新“反监控法” 美企或民营医院在中国起步 公立国有民营趋势印东部洪灾致20万人受灾 逾5万人被欧盟主席谈隐私 被称暗示美国搞监视是世界旅游业看好中国客源市场 各国力推24架美军“鱼鹰”运输机落户冲绳 半摩洛哥少年网上称要杀死奥巴马 被判入中国将向安哥拉派遣第三批医疗队英国三季度经济环比增速创纪录导视(10月30日)点兵点将点阿sir扰民菜园将变身空中花园80后和80岁广西平南一警察酒后枪杀米粉店女店主 杜斐斐:细微之处彰显文明中国医师协会等四家单位强烈谴责温岭伤自觉担当社会责任带头维护社会稳定吾铸刀剑几星霜权力烟圈“第三只眼睛”看世界吉林努力提高党报党刊的影响力山西将不折不扣完成党报党刊发行鲁南制药集团新时代幼教中心投入使用美丽家园入画来“2013中国文化产业年度人物”推选《你是这样的人》新书首发2013国际基因组学大会召开光明日报:“医不过二代”反映行业低幸江山代有才人出从本质上融入信息化文明
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘