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

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

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

防止打开同个VB应用多个实例 分割图像的原理 -VB资料 封面的设计 -VB资料 改变 Win95 的 Shell -VB资料 改变墙纸 -VB资料 格式化磁盘 -VB资料 跟我学用ActiveBar-VB资料 VB获得IE的版本号 VB获得Windows启动方式 VB获得打印机驱动程序的设定 VB获得当前计算机上的区域设置 VB获得当前用户名 VB获得分区信息并判断是否有CD VB获得某个文件夹下的所有子目录 VB获得驱动器的卷标 VB获得系统中的所有字体列表 VB获得系统中鼠标的键数 获取驱动器信息-VB资料 文章主题: 获取桌面图象 -VB资料 计算两个日期间的工作日-VB资料 监视外部程序的运行情况-VB资料 检测文件是否存在 -VB资料 检测系统驱动器-VB资料 检查电子邮件地址输入的有效性 -VB资料 检查硬盘空间 -VB资料 将数据转换为内存二进制形式字符串(模拟CV?和MK?$两组函数) -VB资料 禁用 Alt-Tab 或 Ctrl-Alt-Del -VB资料 禁止使用 Alt+F4 关闭窗口-VB资料 绝非玩笑:VB7将完全面向对象 拷贝磁盘 -VB资料 控制Ctrl+Del+Alt键-VB资料 请看看这个函数... 如何确定线程运行消耗的资源量? 文件系统的树形列表怎么做啊,不要ocx的 为何我使用javascript中location'****.jsp'跳到某一页面,jsp页面不重新编译执行 VC6.0没有声音怎么办 循环20000000次所需要时间(急) 如何使按钮象工具栏上的按钮一样当鼠标移到按钮上时出现文字说明? 关于使用GDI+转换文件格式的问题. 各位能不能介绍点比较经典的算法的书籍,大家分享一下 如何恢复或新建临时表空间????在线等候!!!马上给分! Gis 请教一个数据库的问题,欢迎发言提出解决方案 ??怎样用asp程序把一段html代码转换成纯文本格式? 下拉数据窗口不能下拉是什么原因啊? 有关用VB做数据库的简单问题、ComboBox控件问题! 大家帮我看看这段程序为什么值为0 oracle8.1.7的数据库备份文件怎样恢复到oracle8i上 ? 怎样屏蔽flash的右键菜单,弹出自己的菜单? 我想问一下有没有不写入数据库用ASP代码可以查看当天的浏览访问量 灌水区的水越来越没质量了,你觉得呢? 按钮消息响应的问题,详细请看进去再看 异常详细信息: System.Data.OleDb.OleDbException: 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。 求助,网页制作0=={=========>(在线等,送分) 谁能告诉我《C++Builder 5编程实例与技巧》这本书在哪儿可以下载到完整的电子版!高分感谢! 请教如何将一张图片旋转? 关于流媒体和vc++的结合,高人请进!! 关于DataOutputStream和DataInputStream求教 会DirectX的一起来讨论! 4444 菜鸟求助~~~ help me 刚才发现www2.google.com www3.google.com也不能访问了,见鬼:( 我想停止window2000[域控制器]的389端口,但我不知服务是不是LDAP,因为我想占用端口389 各位!帮个忙! 帮忙啊!因为很着急,只有在技术论坛发了,大家原谅 电子地图 上海的程序员都在哪里"混"? 如何最小化所有窗口? 你们有谁读大学一学年要交近1000元书籍费? 帮忙啊!因为很着急,只有在技术论坛发了,大家原谅 asp中如何使用ADO实现对sql数据库操作 求助,网页制作0=={=========>(在线等,送分) 我在用mcisendcommond()函数时,总提示设备类型出错,是什摸原因? 紧急求教高分相送100分。 怎么判断女孩喜欢你? CSDN的首页能登录吗? C 与 C++ 到底有什么不同?? 偶然发现的mysql排序问题 是否有专业PL/SQL编辑器(能够提供类似VC的类成员或方法提示、格式自动排版等功能)可以下载 ?? 关于条码编程 非常急,请各位帮忙想想办法 大和油墨的镜面银怎么样? 地理小知识:台湾省的素有美称及其含义想到一条算一条,积少成多嘛! 橡胶止水带破损后如何处理呢 如图,三角形ABC中,角ABC=30°,以BC,AC为边作等边△BCD和等边△ACE,联结BE.求证;AB平方+BC平方=BE平方 台湾岛素有”森林宝库”,”东方甜岛”等美称,含义是什么呢?他们的含义是什么呢?有什么特殊意义?台湾岛还有什么美称呢?(地理用滴:P) 有谁知道投影仪的成像原理 以△ABC的AB,AC为边向三角形外作等边△ABD,△ACE,连结CD,BE相交于点O.①求证:OA平分∠DOE.②点F在DO上,若DF=BO,连AF,求证:△AOF是等边三角形.③求证:OA+OC=OE (1)分析长江中下游地区发展农业的有利条件和不利条件(2)分析新疆发展农业的有利条件及限制性因素 超声波在空气中的传播速度 已知函数f(x)+sin(2x+∏/3)求函数最小生周期T,以及用5点法作图 从气候和地形方面,分析新疆发展农业的有利因素和不利因素结合图一、图二 从气候和地形方面指出A地附近地区发展农业的有利因素和不利因素图一是我国年降水量分布图图二是坎儿井 谁知道硅铁冶炼焦炭加入量与哪些因素有关 地震来了要怎么办 限制四川盆地地区农业发展的最主要因素是什么? 焦炭能融化铁吗? 为什么会地震 高中地理 制约新疆地区农业发展的限制性因素为什么是水源不是水分啊1.制约新疆地区农业发展的为什么是水源不是水分啊?2.什么是水源什么水分?3.新疆不是气候干旱吗?那降水不就少吗?这 超声波在空气中的传播速度约为多少?其指向性是什么? 白酒有酸味是怎么回事?我自己在家里酿制白酒,可是这几次的都带有一点酸味.这是什么原因产生的?每次都采用相同的方法,可是只有这一次的酸, 茶镜磨砂以后玻璃是什么颜色的?是茶色还是白色? 植物怎么产生花青素 如图,在等边三角形ABC中,点D是AB边上的一点,将三角形BCD绕着点C顺时针旋转后与三角形ACE重合,说明AE∥BC VR中玻璃是什么材质.各种玻璃的参数是多少 花青素的植物来源? 为什么打来白酒或醋,可以闻到酒香或酸味? 影响新疆绿洲农业的主要因素是: 照相机和投影仪是运用了凸透镜能( )原理制成的? 淋巴因子与神经递质是否处于内环境 我们只是要做回自己,英文 哪些植物有花青素 淋巴因子是内环境成分吗 现在你必须要做回自己用英语怎么翻译 请问:含有“花青素”的植物有哪些?比如说“旱菜” T细胞可以产生淋巴因子么 效应T细胞呢?抗体由哪个细胞产生 吞噬细胞呢 总是分不清 T细胞可以产生淋巴因子么 效应T细胞呢?抗体由哪个细胞产生 吞噬细胞呢 总是分不清 希望详细回答 英语翻译"做回自己"帮我翻译下能不能是第一人称的前面再加个Just有什么区别呢 投影仪是根据凸透镜成放大实像原理制成,当物理离凸透镜__时成放大实像.当物理离凸透镜__时成放大虚像,当物体离凸透镜____时成缩小的实像 淋巴因子作用于抗原发生于内环境这句话是错的, 做回自己用英文怎么说 什么植物花青素最高请问什么植物花青素含量最高.请问什么植物提取的花青素最有价值.请问什么植物的花青素最好提取. 用一根84厘米的木做一个正方体框架,每根短木条多少厘米 对新疆维吾尔自治区农业生产产生不利影响的自然条件主要有________. 变形虫对食物的摄取与体内线粒体有关对么 哪里错了 什么是镜面银油墨 请大家帮帮忙,解释一下蚂蚁为什么怕酸味?谢谢了,很急很急! 下列关于内环境稳态调节的描述中正确的是A 所有的调节都有反射弧参与B 所有的稳态都是相对的C 所有的稳态的形成都有许多系统参与D 所有稳态的调节中枢都在大脑C为什么不对? 浓度为30克/升 含量在3%左右的硫酸可以用什么材质的管道输送 如图,以三角形ABC的边BC,AC为一边作等边三角形BCD和等边三角形ACE,连接DE.试猜想DE和AB的数量关系并证明. 不能正确描述人体调节内环境稳态的有A.ph的调节与血液中存在缓冲物质有关B.水和无机盐平衡的调节是有一定联系的C.胰岛素是血糖调节中唯一降血糖的激素D.维持体温恒定主要是通过体液调 用到镜面银油墨的有哪些产品 如图,三角形abc为等腰三角形,ac=bc,三角形bcd和三角形ace分别为等边三角形,求证g是ab中点.求两种方法 中国古代木结构建筑的抗震智慧是如何以柔克刚的 发烟硫酸用什么材质的泵和管道输送呢?说明选择的原因 免疫系统的功能是什么? 分析一下初中物理直流电动机和交流电动机构造及原理最好用途来说明,从构造和原理详细说一下, 使用镜面银油墨的注意事项? 变形虫摄取食物的时候,它的细胞发生什么变化~ 防盗门上的“猫眼”的构造是何原理, 镜面银油墨哪家好? 太阳能电池单体和太阳能电池片一样吗 新疆知名农业企业有那些?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘