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

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

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

岳雷:Windows Server 2012虚拟化性能提升巨大 陈健:Windows Server 2012让企业轻松管理IT 智能手机:革命已经波及到阴间 兄贵草泥马:重口味单机移动游戏为什么能火? 最炫HTML5框架Famo.us 将免费面向开发者 MySQL到NoSQL:数据的重思和查询方式的转换 程序员心髓:移动应用API设计10大技巧 Netflix公布个性化和推荐系统架构,3种类型作业通实时 从SendCloud到搜狐云 扎克伯格的败笔?Facebook Home可能无家可归 走进eico design,仰视设计师 乔布斯顾问承认苹果的命名糟透了 罗永浩:一百万年薪!招聘软件研发总监 开源的:helios移动应用后端服务框架 IE11将支持WebGL 或将OpenGL映射到DirectX 基于云端的3D渲染和协作平台Lagoa:仅需一个浏览器 大数据提速,IBM 推面向Hadoop的PureData大数据机 游戏开发者的盛宴:2013 CocoaChina春季开发者大会强势启动 开放还是关闭API?CIO做决策前应考虑的六个建议 Python 2.7.4发布,更快的IO模块 如何拒绝沦为服务的商品,并收回对数据的绝对掌控 最阴险的代码?尽在“邪恶”的Underhanded C Facebook Home出阴招:Social皮,Android心 国内最火的五款HTML5前端开发框架 TIOBE 2013年4月编程语言排行榜:Objective-C四年来排名首次下滑 MeeGo复活!Sailfish OS智能手机 SDK发布 10亿美金!传闻谷歌要收购WhatsApp 从打造国内最大的OpenStack公有云开始 展望HBase的未来 你的数据库安全吗?CryptDB数据库软件可查询加密的SQL数据库 收藏!斯坦福Andrew Ng教授“机器学习”26篇教程全译 CObject类是MFC类吗? 请问除了http://java.sun.com/j2se/1.4/download.html外,哪里还有jdk1.4下载? 有没有兄弟做过关于DSP与PC的并行通信? 请教接口查询的问题 如何清空表中的全部记录? 我是一个vb 的初学者,请大家介绍一两本好的关于数据库开发的书! 《Delphi淡手辑略 之 数据库篇》:数据安全保存(函数) DB2 store procedure Easy_Problem!!!关于对话框!!! weblogic下调用java bean出了点问题 (苯苯) 如何在两地用netmeeting通信,共享信息,两方为win98和win2000server,使用modem连接 tomcat 如何与 jboss 进行集成 Regular DLL中向导生成的winapp对象有什么用? 关于Install shield 的问题 一个高难度问题,特急! 从一个页的Button事件中如何获取在iframe中另一页中选种checkbox的值? 大家一起来帮帮我 我是个新手请教如何在98下安装和设置apache,尽是详细些,最好给介绍些资料 高手请教,有关类的链表指针 如何定义日期类型? 请教高手!如何执行带条件SQL语句? 大家一起来为c#加油阿 追女教训谈 如何用OUTLOOK作多用户使用???? 赐教 有谁知道ramdrive.sys在dos下的详细用法,敬请赐教,倍感感激!! 怎么用Delphi调用MySql(win) 关于frame的问题. 为什么显示不出来???? c#通过INTERNET远程访问数据库都有什么办法?(请高手指点) 有誰能把CDONTS.DLL(電子郵件)的源代碼貼出來嗎?有分送,THANK! 请教 NetColorWolf(NCW) pb7的工具条栏的文字字体! 为什么,我的子窗口调用另一个窗口时,总是新开一个被调用窗口,而且被调用窗口中的ADOTable的connected总是丢失。why 《Delphi淡手辑略 之 数据库篇》:数据安全删除(函数) 请教! 我用setfocus使一个控件聚焦,但我想隐藏光标,不想让它在界面上闪动,怎么办? 用delphi 编防火墙 有谁知道ramdrive.sys在dos下的详细用法,敬请赐教,倍感感激!! 关于Delphi线程构造函数: 简单问题 ADSL代理上网部分站点上不去解决一例. 消息中间件的功能?各位铜人帮忙! 如何改变对话框和窗体的背景色呢? 《Delphi淡手辑略 之 数据库篇》:打印DBGrid中的所有数据(过程) 有关Delphi指针的问题,请高手帮忙!!!!!!! 还是weblogic问题 麻烦帮我检查一下代码,实在想不通 请问大家我新买一台品牌机,再使用时经常死机是怎么回事? 哪里有介绍Active Directory 的中文资料? 怎样在ListView组件的详细显示模式下,让屏幕自动随输出数据滚屏和聚焦在输出的数据上面。 实现接口时出错,分数大大的有 《Delphi淡手辑略 之 数据库篇》:数据集解构成树(过程) 100分求教!!!文章“如何快速自动生成并定制报表”的问题!!! 八年级语文22课翻译人教版29课扩写 人教版 八年级的 辩论中能否以红色苹果是红色的方式论证 鱼我所欲也本心与舍生取义有什么关系有助于回答者给出准确的答案 形容形状的(2字)词语快如笔直 求驳论文详细介绍和它的一些论证方式最好加上鲁迅的的详细分析 大脑皮层,大脑中枢,大脑,神经中枢有什么区别 小米2s可以用移动卡么 论述:怎样法律实现正义的方式 晏子使楚翻译全部不带原文 主要的生物致癌因素有哪些? 鱼我所欲也此段句子中什么表明了什么 代表男性的符号是什么?有两个符号分别代表男女,它们是什么,怎么由来的呀! 有好评哦 用数学归纳法证明的步骤? 晏子使楚原文和译文有吗? 玩乐乐鱼聚会打BOSS有什么窍门吗? 证明方法及具体的步骤 此♀符号是不是代表男生? “圩”这个字怎么读? 作者介绍麋鹿传奇经历运用的说明方法是( )( ).麋鹿的经历充满传奇色彩.据科学家考证,早在3000多年前,我国黄河、长江中下游地区就有麋鹿 ,但汉朝以后就逐渐 减少,再后来竟然销声匿 上善若水 出自哪里 死党的含义是什么? 鱼我所欲也 性本善的句子是? 加速度公式中d^2v/dt^2中的2次方分别什麽意思? 哪句诗与鱼我所欲也的观点一样的快啊,我明天赶着要的啊 上善若水有什么深刻的含义?有多少人能达到这种境界? 晏子使楚 原文 翻译 翻译赤壁 交流方式有几种 表示 男 那个符号是啥 《赤壁》翻译 方程和等式存在着密切的关系,你能用图示的方法表示它们之间的联系和区别吗? 我想问下大家关于加速度公式里面的d是什么意思 《赤壁》的翻译 通过互联网可以收到很多的宣传信息,请简述你对对互联网传播的理解(可以从互联网传播特点以及方式方法来通过互联网你可以收到很多的宣传信息,请简述你对对互联网传播的理解(可以 ♀这个符号代表男的还是女的? 什么是推演法? 写一篇关于养成教育为话题的作文,字不少于600字 求加速度公式,初速度为0时的公式 以及 初速度不为0时的公式 ε-N论证法证明大家帮帮忙啊~~谢谢啦(*^__^*) 嘻嘻…… 以“我们需要怎样的教育”为话题,写一篇800字作文 下列诗句中不涉及化学变化的是?A 爆竹声中一岁除,春风送暖入屠苏B 只要功夫深,铁杵磨成针C 千锤百凿出深山,烈火焚烧若等闲D 野火烧不尽,春风吹又生 什么是换位法推理怎么样周延的,才能在换位推理后仍然有效 上善若水出自什么?是什么意思?有更深的含义么? 关于化学变化的诗句 怎么用推理论证法比较3^4与4^5的大小可如果是比3^4与4^3该怎么办 我需要国际私法法条国际私法内容 下列著名诗句,隐藏化学变化的是?rta.千里冰封,万里雪飘b.白玉为床,金作马.c.野火烧不尽,春风吹又生.d.夜来风雨声,花落知多少认为是c.是吗? 归结推理法证明问题A1 = (∃x)(P(x)∧(∀y)(R(x,y)→L(x,y)))A2 = (∀x)(P(x)→(∀y)(Q(y)→┐L(x,y)))B = ┐(∃x)(∀y)(R(y,x)∧Q(x))用归结推理法证明A1∧A2 => B请一定要用归结推理法 法学专业国际私法的问题.用系属公式解读一下法条.涉外民事关系法律适用法中第23条:结婚条件,适用当事人共同经常居所地法律;没有共同经常居所地的,适用共同国籍国法律;没有共同国 上善若水出自? 《鱼我所欲也》阐述了作者怎样的观点 1.准据法是否就是冲突规范中的系属?2.如何理解国际私法中的法律规避?谢谢~这是简答题,应该怎么回答? 上善若水出自什么地方如题 第八, 鱼我所欲也阐述了什么观点 准据法是不是国际私法规范?为什么? 致癌因子中生物因子包含乙型肝炎病毒吗? 《鱼我所欲也》阐述作者观点的句子? 论述国际私法的起源与发展
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘