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

五步走战略——Avocado在最初几周内迅速扩大30倍

HTML文档下载 WORD文档下载 PDF文档下载
Avocado(鳄梨)是由前Google Reader的员工Chris Wetherell 和 Jenna Bilotta 开发的一款情侣应用,该应用在几周内扩大了30倍。这篇文章总结的就是通过Avocado这个例子,如何迅速扩大你的移动应用。


Avocado(鳄梨)是由前Google Reader的员工Chris Wetherell 和 Jenna Bilotta 开发的一款情侣应用,该应用能够让情侣们在工作和生活中更加亲密的同时,更好的管理自己的生活。

日前,Avocado首席工程师 Mike Maelzer发表了一篇文章,通过 Avocado的规模在几周内扩大了30倍这个例子,分享了如何演进架构来适应迅速扩大的移动应用。如果你的产品刚刚起步,那么这是一个很好的学习例子。

High Scalability的Todd Hoff对这篇文章进行了总结,他表示,Avocado通过五个步骤使移动应用实现了迅速扩大。

以下为文章全文:

他们最大的教训是一个很好的警示:

如果更早进行扩展操作,将是一个伟大的开始。由于时间压力,我们不得不做出妥协——减少我们四个媒体缩放工具盒。虽然投入更多的硬件,解决了一些规模问题,但还是不理想。

下面是我对文章的一些要点总结:

演化步骤之一——使其工作

刚开始的时候,你只是想把事情做好,几乎不管如何实现它。你知道如何修复需要的地方吗?Avacodo有针对性的测试他们的软件,寻找弱点,以更新、修复它们。这是一个非常明智的渐进过程。每一个大系统都是从一个较小的系统发展而来。

第一个问题:你真的需要进行扩展?Avocado需要扩展是因为他们预计将会有更多的访问量,而且他们不能让那些潜在的用户有一个糟糕的用户体验。所以,处理大流量峰值是一个必须考虑的因素。

他们初期使用一个很典型的设置,为每种功能都配备一台服务器:一个前端服务器(存储:API、Web相关、socket.io、HAProxy、安全通道/SSL加密);一个Redis服务器;一个MySQL服务器;一个批处理服务器(运行各种守护进程)。

副本测试设置用来运行常见的场景,如账户创建。

在测试环境中使用较小的EC2实例即省钱又能发现资源相关的错误。

测试脚本用jmeter建立,模拟每分钟数万的用户注册。

针对找到的薄弱点采用不同的方案进行测试,如添加第二台服务器,并使用服务器上所有的CPU。

数万用户同时注册导致性能下降:

  • 创建新的Python进程引起的发送邮件确认和调整个人资料图片造成CPU峰值
  • 这一些都发生在一个服务器里
  • 一些MySQL查询花费很长的时间
  • SSL是一个重大的CPU负载

演化步骤之二——测试驱动的变化

通过测试结果驱动它们:

添加了一些数据库索引以加快访问。在创建表时,你应该已经知道要添加哪些索引。让你的数据库告诉你什么是缓慢发展的产品,尤其在项目的初期。

使用node.js的异步功能重写邮件验证,而不是每次都分开一个单独的Python进程。吞吐量增长了3-5倍,为什么他们还要首先使用Python的方法?这似乎是一个明显的浪费。也许他们已有了代码,也许他们知道如何在Python上做到这一点?或许在更大的机器上这样做可能无关紧要。但这是一个明智的增量变化。虽说在它不工作时可以进行修复,但仍然有一个很大的隐患。如果其中一个进程死掉,那么用户的注册状态机也将会停止。

SSL被转移到它自己的服务器。同样,这个问题相当明显,一个更大的机器可以无视这个问题,但它在一个服务器上更容易开始。

促进四个新实例分配用于调整图像缩放。在促进后,移除这些实例。用一个好的策略来处理预期的流量高峰。

演化步骤之三——生产促进转变

随着我们的生产经验越来越丰富,我们可以看到很多问题正在变成那些奇怪的、难以预测的类型,似乎只能进行很糟的修复。

由于在升级监控警报过程中响应时间慢,所以添加了前端服务器。监控完成后,最终增加了15台服务器。

我们注意到在较大的EC2实例中,只有一个CPU被使用,node.js只是个单处理器解决方案,而每台主机上HAProxy也只被路由给一个实例。由于要读取一个新的配置,需花费几秒的时间重新启动HAProxy,所以他们创造了一个冗余的HAProxy服务器,用来减少停机时间。

ELB被用来将流量路由到两个HAProxy服务器以及处理SSL,这将减少代理服务器数量并节省资金。

这引起了多个服务器socket.io的问题,用户需要用一台服务器维护一个会话。所以他们转向粘性会话,这需要一些繁琐的变化。

有趣的发现:Websockets并不适用于所有的蜂窝网络。因为这是一个移动应用程序的关键。同时,ELB不支持websockets。所以他们使用XHR-polling。一个令人惊讶的命运转折。

看起来有很多socket服务器。为了减少被使用的数据库连接池的数量,最初每个socket.io服务器有一个数据库连接,排队到数据库的工作,通过socket.io,8个CPU每个要使用60%的性能。而在每个服务器实例中使用2到10个数据库连接池,可让CPU使用率下降3%,并显著改善相应时间。

为什么不从一开始就使用连接池?这是按标准来的。我很惊讶他们没有使用连接池,但会有各种各样的问题,关键并不是这问题,而是你发现并克服它们。

演化步骤之四——走向全球

世界各地都存在“移动情侣”,所以他们调整了在世界各地推出的服务器,通过延迟指导亚马逊路由。这是多么疯狂的一件事。在同一时间推出一个国际版本将是一个巨大的交易。现在,它只是你要做的另一件事。

移动性能是关键,但他们是否应该较早走向全球?这将是疯狂的举动,在你走向世界之前,你必须有运作系统的相关经验。

演化步骤之五——现在使其更好地工作

在处理初始推广负载后,要了解系统是如何运作的,以及如何解决问题,现在的时间去考虑自动化和自动部署策略。一开始就实施自动化是很复杂的事情,因为那时候你还不知道它应该如何工作。要有更完善的增量思维。 (王旭东/编译 仲浩/审校)

本文来自: High Scalability

“ 第五届中国云计算大会 ”将于2013年6月5-7日在北京国家会议中心隆重举行。猛击报名! 

相关活动已经火热启动:

2013中国云计算大调查,每周大奖等你拿! “ 

Innovation Cloud 2013云创新产品与应用项目征集,欢迎研发者、团队和创业企业参加! 

用Delphi编写打印程序的窍门 用Word做Delphi报表输出工具 在DELPHI 文 本 和 图 形 的 打 印 在Delphi中运用QuickReport实现多栏列印 在打印或打印预览前如何获取报表页数-Delphi资料 自定义快速报表的打印预览窗口-Delphi资料 Delphi 3 图形VCL中Bug修改方案 Delphi hint的字体和色彩如何改变 Delphi3.0中复活节彩蛋及实现 Delphi数据库应用程序开发中图像数据的存取技巧 DELPHI图形编辑技巧二则 DELPHI显示JPEG图像文件 Delphi中CANVAS使用三例 Delphi中的图形显示技巧 DELPHI中画布应用技巧 Delphi中控件深度投影及阴影效果的实现 DELPHI中利用对象的常用属性制作动画 Form生成时的事件次序-Delphi资料 LED数码管仿真显示程序-Delphi资料 TPaintBox与TImage的比较-Delphi资料 WINDOWS基于调色板的图像消隐-Delphi资料 改变图片效果-Delphi资料 改造HINT的输出方式-Delphi资料 基于Delphi的图像漫游 将BMP放入Paradox的BLOB的字段中-Delphi资料 界面色彩渐变效果的实现-Delphi资料 如何查阅可视窗口标题-Delphi资料 如何得到Timage控件的DC-Delphi资料 如何关闭一个MDI子窗口-Delphi资料 如何检测鼠标击了哪一个对象-Delphi资料 如何将鼠标锁定在固定范围内-Delphi资料 MVP是个什么概念???? linux启动不了,Bringup loopback interface时出错,请问是什么原因? 帮帮忙!! 我海军一艘潜艇失事 70名官兵不幸全部遇难!! 明天朋友结婚,征集整人的法子 是谁删除了我贴?? 而且没有跟我说一声!!! 白天工作,晚上溜狗,爽呀!比大暑天喝了冰镇雪碧还爽! 我的jsp服务器是iis+TOMCAT+win2000pro 不知怎的每次用不了多久就显示出 网页无法显示 目前访问该 Web 站点的用户过多,我只是自已用怎么 终于有星了,高兴,散分(第一次散分,请斑竹手下留情) 我的刚装的2000进入启动界面时,进度条读到2/3时就蓝屏了! 请问在运行时向ActiveX控件中添加ActiveX控件的方法是什么? 高手请进:如何在WinNT以上系统进行BIOS读取! 毕业设计的问题,请各位大哥帮小弟一个忙 备份与恢复 数据备份与恢复 我用win2k,下载了php4.3.1,extension_dir是c:\php\ext 可是里面没有php_gd.dll,怎么办,到哪里可以down一个补上? 帮我一下:解决中文问题 新手问题:怎么在用ATL COM WIZARD已生成的dll加入MFC 请问如何删除系统? warton给大家散分来了! 求助,请问哪儿提供的域名空间最好? 新手上路,VB中用ODBC连接ACCESS 关于ORACLE中(多)表的备份和恢复问题 MM``狂给分^*^ 找人一同研究JUnit对于数据库的测试架构 怎样在程序中动态生成数据库(内存库)?求救高手 请问,怎样用本机作web服务器? 这样的夜晚 想起一些故人.... 各位的jbuilder是用什么命令运行的 刚学者求问 python+CGI 如何获得客户端IP Win2000上, 对话框没能弹出到桌面顶层 在静态上下文中不能引用非静态变量? 有没有高手可以举例讲解一下self的各种用法? 一个很困惑的问题:文字处理软件中,字体大小改变时,字符的高度,宽度怎么变化? 移动硬盘在重装系统时忘记拔下来。结果给误删了,求助!没有格式化的! 怎样创建自己的 Cursor ? 请问一下 这个是什么意思 public Properties() { this(null)} 在SQL7中日志满了,如何清除日志. ?????????? 一个编程习惯上的问题 为中国争口气!投中国的长城和布达拉宫一票!!恳请置顶! 菜鸟问题4。。。。 网上现在有没有用ASP.NET做的实例 vc.net为什么没classwizard 有关CDC的一个问题,有代码,请指教! 要陪老婆,兄弟们,给我顶住,我先闪了,..... javascript 能否取得客户端的IP? 关于删除xp_cmdshell的问题 哪儿可以下载vc++.net? 那位兄台能否告诉我如何crack Together Edition for JBuilder !(本人纯属学习之用) Cypress EZ-USB 的问题 急! 求泰勒斯威夫特的新专辑red里面come back...be here,we are never ever getting back together还有还有sad beautiful tragic,以及以前的safe and sound和you belong with me,back to december的伴奏,各位有多少都发给我吧, 家里挂镜子好吗 世间安得双全法,不负如来不负卿? 指南车为何人所造? 除哪一种外都是由细胞构成的?A,狗 B,烟草花叶病毒 C,蕨 D,向日葵请说明选择理由哦! 楚王想取笑晏子,却被晏子取笑是什么谚语 7上历史题传说谁造指南车 构成向日葵的组织有 晏子的故事有哪些? 黄帝制造指南车反映出人们可能认识到什么现象? 如图所示,左侧是倾角为60°的斜面、右侧是 圆弧面的物体固定在水平地面上,圆弧面底端切线水平,一...如图所示,左侧是倾角为60°的斜面、右侧是圆弧面的物体固定在水平地面上,圆弧面底端 《我的伯父鲁迅先生》为什么说“四周围黑洞洞的,还不容易碰壁吗”? 余额宝里,在金额相同的情况下,为什么七日年化收益的利率越高,反而收益越少呢?比如说,金额相同的情况下,七日年化收益的利率是4.9940%的收益(2.35)比七日年化收益的利率是4.7960%(2.89)的 他们相爱两年了.They have___each other for 2 years, 四周黑洞洞的,还不容易碰壁忙?这句话怎么理解?(《我的伯父鲁迅先生》) 以余额宝的七日年化利率什么上涨什么下跌.a一定b可能c不可能,数学题 《我的伯父鲁迅先生》课后问题:“你想,四周黑洞洞的,还不容易碰壁吗?”找出类似的句子并解释 世间安得双全法,不负如来不负卿! 《我的伯父鲁迅先生 》四周黑洞洞比喻什么 help!math!已知abcd是正数,且满足a+b+c+d=4,用M表示a+b+c+d,c+d+a,d+a+b的最大值,则M的最小值是多少? correct副词 我的伯父鲁迅先生中“四周黑洞洞的,还不容易碰壁吗?”求理解 help!(5年纪math)有一个长方体铁盒,它的宽与高相等.如果长缩短15cm,就成为表面积是54cm^的长方体,这个长方体的宽是长的几分之几? 单给一个企业的利润表叫进行分析,主要对哪些指标分析呢?在这道题中还有上一年的利润表数据.我想应该是从盈利能力方面着手吧?能具体给几个指标么? I like this pink jacket改否定句;They like the school也改否定句并写出一般疑问句,作否定与肯定回答 MAth promble! help !Why is important to learn to communicate mathematics ? give a real-life exmple of communicating mathematics luck的动词形式,friend的动词形式、副词形式,skill的形容词、副词、动词形式及其反义词 able的名、动、副词形式,simple的名词、副词、动词、反义词 今天倒数第二次送分!先到先得!无条件限制! They like super robots(否定句)This pair of gloves is yellow(复数句)The are(horses)in English(提问 math help!)某水坝横截面是等腰梯形,坝顶宽6m,坝高10m,斜坡ΑB的坡度为1:2.现要加高2m,在坝顶宽度和斜坡坡度均不变的情况下,加固一条长50m的大坝,需要多少土方? there+was+a+small+house+many+year+ago.+变一般疑问句怎么变着急 我的伯父鲁迅先生++++++++++++++四周黑洞洞的比喻什么++++++碰壁比喻什么 《我的伯父鲁迅先生》中的“黑洞洞”是什么意思? 江西省新余市的邮政编码是多少呀 如图,如果直线L 的表达式为y=kx+b,那么关于x的不等式kx+b>0的解集是______________如果直线L 的表达式为y=kx+b,那么关于x的不等式kx+b>0的解集是______________,kx+b 参加一次聚会的每两人都握了一次手,所有 人共握了10次手,有多少人参加?这种列方程题目,为什么x-1,x-1是哪里来的?而且x-1为什么和x相乘?并且还除以2? 江西省新余市东山雅筑邮政编码 语文一道题;连( )带( )例;连(蹦)带(跳)英语题目;open your books(改为否定句,但意思不变哦 ) they know what each other is doing.为什么错误错在那里. bamboo的复数复制搜索说出为什么复制搜索 海带细胞中积累的碘的方式是什么? 《我的伯父鲁迅先生》问:四周黑洞洞是什么意思? 四周黑洞洞的,难道还不容易碰壁吗?《我的伯父鲁迅先生》 这句话用的是什么修辞手法 Open the gate.please 改为否定句,句意不变 Kitty is my sister 对画线提问 Kitty是画线的 5人见面,每两人握一次手,一共要握10次()判断 ------- 目前非美元与人民币汇率的波动幅度为中国人民银行公布的该货币当日交易中间价的多少?进行提问 “任意四边形都可以密铺”这句话对吗? 有个成语后面两个字是善诱,前面前是两个相同的字,是哪个成语? The dress,________ a flower on it,is very beautiful. 任意四边形都可以密铺吗 前面两个字重复的成语有哪些? 苹果含维生素C吗?或含那些维生素? 每2个参加宴会的人见面时握一次手,N个人握了几次 (翻译正确必采纳)I live,is to let people see me not pleasing to the eye of each should be! Mrs white (have)a beautiful dress 的水母、海带,陆地上的蜥蜴、小草等 生物细胞中含量最多的是 英语翻译for people to live anywhere near it.中的to是动词不定式吗不能住人,是不是应该是not to live,为什么这儿要用动词不定式呢 The beautiful dress cost her(100yuan)(把括号里的单词进行提问) 初中生物学里有哪些海洋下的食物?例:海带请说出这些的名字, 八条腿的蜘蛛和六条腿的蝉共8只,一共52条腿,蜘蛛多少只,蝉多少只? 默克尔遭美国监听 德议员称斯诺登愿协孟建柱会见乌兹别克斯坦总统并主持中乌铁腕普京突击检查俄军核战备以色列攻击叙利亚军事基地 目标是俄制斯诺登莫斯科生活照曝光:休闲打扮未戴联合国称叙利亚完成对化武生产设施功能叙利亚当局表明愿无条件参加叙问题国际留祥路本月起改叫石祥西路 路牌错了破男硕士年薪5万月花400 穿旧衣相亲男子为救假装落水儿童瘫痪 28年后获美国六大互联网巨头致信国会要求改革监自称21岁大学生 40岁男子男扮女装中央第八巡视组组长:着力发现选人用人杭州13岁姑娘失踪5天 在社会上结识快递哥邱师傅倒在送货路上 同行前去凭绍兴印染温州电镀两个“污染大户”转型温州双岙村遭垃圾围堵 焚烧垃圾引消防爱心的哥贵师傅往返江山衢州送尿毒症患思鑫坊曾是杭城近代建筑代表 如今成无空气污染致癌 波兰向碳排放开刀法缩短我公民办理赴法旅游签证时间信息太多,真的好吗?不怕人走茶凉,只怕心冷没人暖。马云:阿里的18个创始人基本上找不到数据不再无故被毁!MacBook固件大圣归来!萌萌哒大圣归来插画头像素材制造业倒闭潮来袭 “中国制造”面临空英国老人依靠黑科技仿生眼重获光明看看真正的军械力量,多图慎入苹果占7成智能表市场份额 事实还是吹微商崛起的大秘密:暴力刷屏+层层代理到底root成功了没?一键检测roo大神X7多场景感官样片实拍体验手记—手机QQ 5.8内测版泄漏:功能不变徐静蕾:我才是我自己的安全感联合国二次政府专家会议讨论3D打印枪那些年 领导们写过的情书智汇向前的力量 东风雪铁龙C4L试驾一个基金经理2014年的投资心路3D打印新奥迪A4主题系列礼服 幻化下周股市三大猜想:A股主战场在中小市天津出发!周边四小时自驾都可以去哪儿
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘