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

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

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云计算微博,了解更多云信息。

又一次跨越:著名3D游戏引擎Unity版本更新 Feedly团队:自研后端平台或将开源 StackMob的诱惑:16小时,山寨一款移动App “云”筹帷幄 开发者必知的5大SaaS在线服务工具 超350个政府项目托管在GitHub 政府开源会成主流? Kinect for Windows SDK 1.7正式发布,支持3D建模 SafeNet与风河系统联手推出VxWorks嵌入式系统软件货币化方案 Windows Server 2012中的动态负载均衡 Google等互联网公司将成为创新中心? 在Hadoop的战争中 MapR获新一轮3000万美元融资 初创公司DNNresearch:谷歌科技帝国的新“基石” 创业了,我们该如何起名? 乐视网联手富士康推新盒子C1S “0+290元”新浪微博发售 吸引开发者:只要开发新应用 微软便奖100美元 PaintCode - 将矢量图转化为Objective-C代码的开发神器 苹果发布iOS 6.1.3 封杀evasi0n越狱所用漏洞 [API快讯] Google开放实时协作API 58同城开源轻量级Java Web框架 Argo 初创公司AppNeta:4轮融资,4780万美元 MongoDB释放2.4版本:692更新及8大得意之作 十年6亿美元!Amazon云计算喜获CIA大单! 国人当自强:HTML5+联盟首次筹备会成功举行 开源框架TAAE发布 快速打造iOS音频应用 如何学会600多种编程语言 “第五届中国云计算大会”将于2013年6月5-7日在京召开 Ridiculous Fishing:游戏遭遇山寨如何一雪前耻 老游戏的今天:Doodle Jump每周进账2万美元 剑指Evernote 谷歌正式推出Google Keep 开源的JS MVC框架 Backbone.js 1.0发布 前Facebook资深员工王淮给技术创业团队的十点建议 微软发布Windows Embedded 8系列操作系统 请问何处有下载《晚娘》? 不是我不想给分,是CSDN的服务器太慢了,想给都给不了 delphi中怎样引用一个数据集? 如何用java实现word文档(含图片和表格等)转换成html文件 vb中能不能再过程中定义全局的数组 当在TREEVIEW里CLICK某项时,想让LISTVIEW里的相应ITEM变成SELECTED(变为兰色选中)。 windows2000 professional 怎么屏蔽CTR+ALT+DEL 或任务管理器 成都的java程序员,请大家联系起来! 师傅出门了,还望哪位大侠能够指点一二..300分酬谢谢//小新的徒弟敬. 怎样创建一个弹出式子窗口在显示时父窗口同时为激活状态(标题栏为蓝色)? 急!请问如何在java的GUI界面上,点击一按钮,来运行一批处理文件?? 一个小问题!(不好意思问!) Dim cReg As New cRegistry 该引用哪个库(库的全名) 学习遇到的难题 特殊按钮 我想开发一个三层结构的进销存软件问题? 怦怦运气,看看有没有人知道,近来看看 请问有那个网站有关于ORACLE的入门书籍下载. 非常不错的delphi网站 我有一个问题想问问大家!!!有分送哟。 高价收购! 谁可以给我TSR完整的例程...(要有注释喔) 现在用的控件都是D版的,以后怎么注册软件啊? 请过了网络设计师的兄弟帮帮忙! 在C中,找一个字符或字符串在另外一个长字符串(64K)最后出现的位置,怎么实现最高效呢? 用 DHCP 分配了二个网段的IP地址。 “斑竹”在吗?象是只有你能够解决了!!!(附程序及错误代码!!!) 请问哪位仁兄知道SYGATE4.2 build 803的注册码? 如何在表单中阻止双引号??? 大虾们,帮我看看,这个错误和警告是什么原因造成的? 帮帮我吧 关于B/S报表? 怎样设置msflexgrid某一列的颜色? 用 DHCP 分配了二个网段的IP。 怎么能抓到密码? 在运行时想改变一个label的字体怎么改变,有没有做过的,label的属性在设计时是可以改的 fatal error C1010 找一个和VB的属性区一样的代码,控件或类库均可 如何调用在不同的窗体里自定义的过程 一个技术探讨问题,我想知道象在WORD等软件中插入图形或图象后,还能把它选择,并移动是怎样实现的? 请问:在另一个.asp文件中如何调用相同的变量? WEB初级应用问题 DIALOGBAR问题 请想报考明年的网络设计师的朋友进来聊聊 Oracle面向对象特征讨论,请进! 我学会VISUAL C++ 到底要多少时间 线程调试问题 大家一起进来讨论oracle和sql server的日志哦 请指教如果设置服务器端COM组件的权限,使终端可以访问到?分数好说啦,急,高手快帮忙! 如何把程序嵌入到widows Expolore 中? 今天心情特好!散分 奇函数加奇函数是什么函数?奇函数+奇函数=?偶函数+偶函数=? 圆形的面积公式怎么算,谢谢 某服装公司用公式C=10+12n计算成本费.C表示成本费,n表示做一件服装所需的时间.试根据公式填写下来n(时) 2 3.5 4.2C(元) () () () 奇函数加奇函数等不等于偶函数? 环形面积公式怎么算. 服装成本如何计算?哪位大虾知道... 奇函数加奇函数 偶函数加偶函数 奇函数乘奇函数 偶函数乘偶函数 都是什么函数 跪地急求小学数学五年级上下册网络版教科书或者关于数的整除,像:约数,倍数,质数,合数一类的.以及概念 如何计算服装的成本? 奇数与偶数一定互素( )判断题两个连续的正整数一定互素( )9的素因数只有3( ) 判断题:所有的质数中,只有2是偶数,其它都是奇数.( )急…… 有关自然数质数的.有自然数1,2,3,4……,去掉其中三个数,剩下的数的平均数是19又9分之8,已知去掉的数有两个质数,问这两个质数的最大的和是多少?(最好有解题过程), 如果a是偶数,那么a-1一定是奇数(判断题)如果a是0(0也是偶数),那么a-1就不是奇数,可标准答案说这是对的.希望你们帮我分析一下! 自然数中,任何一个奇数相邻的两个数都是( );除0以外与任何一个偶数相邻的两个数都是() 自然数C是最小的质数,且a,C的和也是质数,数字a最小是多少? 判断题1.行驶中的汽车车轮,既有平移现象也有旋转现象吗.( ) 2.奇数的因数一定比偶数的因数少.( )3.在100以内,能同时被3和5整除的最大奇数是95.( )4.棱长之和相等的两个正方体,它们的 13.6%去掉百分号,这个数就( ) 1;扩大10倍 2;扩大100倍 4;缩小100倍 若x的平方+x-2=0,则x的三次方+2x的平方-x+2007= “在一个整数后面加上百分号,这个数就缩小了100倍.”对否? 二分之根号二等于二的几次幂? 若x的平方+x-1=0,则x的立方+2x的平方+2008=? 判断 在40后面添上百分号,原数就缩小100倍.( ) 2的a次幂等于根号2/2,求a 100块的东西,我要达到30%的利润,要卖多少钱,求公式,谢谢! 关于圆弧计算公式已知圆弧弦AC长7.6米,拱BO高4.6米,求弧度、弧长、圆心角、圆半径.求详细计算公式 若(1+根号2)的四次幂=a+b根号二,则a+b等于 百分之30去掉百分号后,原数就缩小100倍.这句话对吗? 圆弧长公式已知AB为1cm,BC为2cm.AB垂直BC,求AC的弧长 由 平行四边形 而推导出 圆的公式也就是说 剪拼成平行四边形 看到平行四边形而推出 圆面积和周长的公式{只推出面积或周长其中一个的话】我也给分 大哥大姐们快点 吧我要睡觉~ 服装店有一套衣服,第一件按原价出售,没人来买,第二天大八五折,仍没人来买;第三天再降价200元,终于售出.已知售出的价格恰好是原价的60%,问原价是多少? 圆弧的弧长怎么计算?求计算公式 圆的周长公式是怎么推导出来的? 请问“一个数,如果只有1和它本身两个因数,这样的数叫质数”一句中的只有1和它本身两个因数是什么意思还有还有 “一个数,如果除了1和它本身还有别的因数,这样的数叫做合数.”除了1和它 一个数零除外,添上百分号,这个数就缩小到了原来的一百分之一.这种说法对吗? 两个奇数的和是偶数,积是奇数 这是判断题 把1.5%扩大100倍后是() 把85%的百分号去掉,结果() A不变 B 缩小到原来的100分之1 C 150一本书看了40%,表示()占()的40%一件毛衣中,羊毛占91.3%,羊绒8.7%,91.3%表示()占总含量的91 那位朋友知道圆弧长计算公式,我一时忘记了.在此先感谢了 两个偶数的和或差一定是奇数.判断题、是对是错? 在38的后面添加百分号,结果()A不变 B扩大100倍 C缩小100倍 已知有理数abc满足|a-1|+|b+3|+|3c-1|=0求(a*b*c)^2003/(a^9*b^3*c^2) 列方程并求出解.一件衣服现价182元,降价X元,原价268元.列算式 数的整除小学六年级的竞赛题 一个非零的自然数在后面加上百分号,就缩小100倍 ( ) x的平方-x-1=0 求 x的立方-2x的平方+3的值 在50%后面去掉百分号,这个数就()A扩大100倍 B缩小100倍 C大小不变 一个非零的自然数在后面加上百分号,就缩小100倍( )对还是错 x的平方+x+1=0,求x的立方+2x的平方+3的值 把17.5%的百分号去掉,这个数就扩大到原来的100倍是对的吗 数的整除(二)求能被11整除的最大的,没有重复数字的五位数(要有算式) 已知x的平方+x+1=0,则x的立方+2x的平方+2x+3的值是 把15%的百分号去掉,这个数就扩大100倍这道题是对还是错.错的并说明理由. 10的6次幂÷4×10的4次幂等于多少? 把百分号去掉,是缩小了还是扩大了 把3.8%的百分号去掉,这个数比原数( )A扩大2倍 B扩大6倍 C扩大100倍 D大小不变怎么解 根号10的负4次幂等于多少 求服装制版基础计算公式我刚学的,想求原型板的如:袖窿深、肩宽、袖肥、上围(袖窿深)、背长(腰节)、领围…等等的公式. 15.5 %去掉百分号,这个数就是A扩大100倍B缩小100倍C扩10大倍 在3的后面添上一个百分号,这个数就缩小了100倍 我觉得是错.缩小到原来的100分之1吧 三次根号6/三次根号2*六次根号3 用幂的形式 服装T恤单耗计算公式丝光棉面料的我想把 我计算单耗的方式向您请教下.175码的后中长为73厘米,胸围为55厘米,袖长(短袖)24厘米,1/2袖口17.5厘米,夹围(袖笼)为23.6.门幅为130,克重为155克/平
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn