ArchSummit北京2015-《再造轮子之道》-袁泳

ArchSummit北京2015-《再造轮子之道》-袁泳

ID:8218711

大小:3.94 MB

页数:94页

时间:2018-03-10

ArchSummit北京2015-《再造轮子之道》-袁泳_第1页
ArchSummit北京2015-《再造轮子之道》-袁泳_第2页
ArchSummit北京2015-《再造轮子之道》-袁泳_第3页
ArchSummit北京2015-《再造轮子之道》-袁泳_第4页
ArchSummit北京2015-《再造轮子之道》-袁泳_第5页
资源描述:

《ArchSummit北京2015-《再造轮子之道》-袁泳》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、再造轮子之道袁泳@UBER不容忽视的两难选择反方意见:造轮子=战略错误It'simportanttorememberthatwhenyoustartfromscratchthereisabsolutelynoreasontobelievethatyouaregoingtodoabetterjobthanyoudidthefirsttime.—JoelSpolsky,2001NetscapeBorlandQuattroPro正方意见:再造轮子=学习+革新案例:重写LotusNotes公式引擎案例:重写LotusNotes公式引擎改写前•超过10年

2、的代码库•上百积压bugs•大量优化•资深工程师:“没人能动这套代码”•DamienKatz:多年UI经验,无C++经验改写后•全新C++代码库•0bug•提速300%•全新数据复制组件•CouchDB造轮子的唯一原因核心竞争力Google:基础架构Uber:DispatchNetflix:高质廉价的影视作品UndifferentiatedHeavyLifting无关紧要的重活常见工程师黑话•第三方设计太复杂•第三方代码太丑陋•第三方系统太不稳定都不是理由•降低基建开销200%•系统可用时间从3个9提升到4个9•没有系统能够支持公司的战略功能A

3、utoScalingAutoScalingvsPredictiveAutoScaling造轮子的正确姿势像科学研究一样遍历文献遍历文献=熟悉已知系统熟悉历史沿革熟悉历史沿革=了解技术发展中的取舍案例:Elasticsearch案例:Elasticsearch•自己的LeaderElection算法案例:Elasticsearch•自己的LeaderElection算法•自己的集群管理算法(zendiscovery)案例:Elasticsearch•自己的LeaderElection算法•自己的集群管理算法(zendiscover)•Call-m

4、e-maybeTest:>50%数据丢失案例:FacebookZeus应用场景-服务发现应用场景-服务发现-动态配置管理应用场景-服务发现-动态配置管理-自动分片(shard)管理应用场景-服务发现-动态配置管理-自动分片(shard)管理-分布式锁和分布协调需求-跨区集群.-西岸:两个数据中心。-东岸:三个数据中心需求-跨区集群.-西岸:两个数据中心。-东岸:三个数据中心-至少百万客户端需求-跨区集群.-西岸:两个数据中心。-东岸:三个数据中心-至少百万客户端-DoS保护:流畅处理大量客户端同时上线需求-跨区集群.-西岸:两个数据中心。-东岸

5、:三个数据中心-至少百万客户端-DoS保护:流畅处理大量客户端同时上线-100%上线-任何时候可读怎么入手?遍历文献=考察现有系统•GoogleChubby•ApacheZookeeperApacheZookeeperZookeeper远非完美Zookeeper远非完美•写入吞吐量太低Zookeeper远非完美•写入吞吐量太低•保证写入顺序导致写入延迟Zookeeper远非完美•写入吞吐量太低•保证写入顺序导致写入延迟•客户端短时大量接入导致服务器当掉Zookeeper远非完美•写入吞吐量太低•保证写入顺序导致写入延迟•客户端短时大量接入导致服

6、务器当掉•不能承受上亿监控节点Zookeeper远非完美•写入吞吐量太低•保证写入顺序导致写入延迟•客户端短时大量接入导致服务器当掉•不能承受上亿监控节点•Leader节点挂掉造成长时间服务中断解决方案•确认性能瓶颈-Leader节点的锁争用-Javawait-notify耗时太长解决方案•确认性能瓶颈-Leader节点的锁争用-Javawait-notify耗时太长•采纳精简数据结构-位图表示监控节点-250GBto300MB解决方案•确认性能瓶颈-Leader节点的锁争用-Javawait-notify耗时太长•采纳精简数据结构-位图表示监

7、控节点-250GBto300MB•常用优化手段-流水线-客户端缓存-适当放松协议限制从“小”开始从“小”开始=快速迭代从“小”开始=累进改动从“小”开始=最多考虑10倍增长案例:NetflixAtlasNetflixAtlas•Netflix的监控系统NetflixAtlas•Netflix的监控系统•第一版:Perl写的RRD系统NetflixAtlas•Netflix的监控系统•第一版:Perl写的RRD系统•经验:OLAP是杀手功能NetflixAtlas•Netflix的监控系统•第一版:Perl写的RRD系统•经验:OLAP是杀手功能

8、•经验:查询语言必须灵活完备NetflixAtlas•Netflix的监控系统•第一版:Perl写的RRD系统•经验:OLAP是杀手功能•经验:查询语

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。