订阅软件研发RSS CSDN首页> 软件研发

架构实践专题论坛:一线技术专家的架构经验谈

发表于2013-09-05 10:33| 次阅读| 来源CSDN| 0 条评论| 作者杨爽

摘要:在架构实践分论坛上阿里技术保障部DBA负责人周宝方、Pinterest首位中国工程师陶涛、豌豆荚架构师周爱民、淘宝北京研发中心技术专家杨光辉和暴走漫画CTO曹力带来了精彩演讲,分享各自在一线工作中积累的经验和思考。

【CSDN报道】 2013中国软件开发者大会(以下简称SDCC)于8月30-31日在北京新云南皇冠假日酒店举办。作为CSDN和《程序员》杂志倾力打造、千人规模以上的顶级技术盛会,今年SDCC 2013以“软件定义未来”为主题,来自于国内外一线的技术精英,就大数据分析与BI、架构实践、研发管理、IT基础设施与运维、产品与设计、开放平台等专题和参会者进行了深入的分享和探讨。此外,32小时编程马拉松、CTO论道论坛等量身定制的特色环节也受到了参会者的强烈关注。

在架构实践分论坛上阿里技术保障部DBA负责人周宝方、Pinterest首位中国工程师陶涛、豌豆荚架构师周爱民、淘宝北京研发中心技术专家杨光辉和暴走漫画CTO曹力带来了精彩的演讲,分享各自在一线工作中积累的经验和思考。

周宝方:阿里“去IOE”核心技术剖析


阿里技术保障部DBA负责人周宝方

阿里技术保障部DBA负责人周宝方在演讲中强调,去IOE是一个战略性的系统工程,不是将系统从一个数据库迁到另一个数据库,这中间伴随非常深远技术思路的变化,需要技术工程师真正在架构与细节方面把控住IOE系统和应用系统。这件事情投入很大、风险也很大,但收益同样很大。因此,需要冷静看待,要有强有力的组织保障。如果公司不认同这个方向、不能大力推动这个技术战略的话,这件事就很难成功。

谈到收益也有很多,比如,真正的技术团队会为此成长起来,另外成本可以控制在很低。系统和应用的架构可以做得足够开放灵活,能应对足够大的挑战。这样,阿里的很多技术都能积累起来,整体的框架和技术更多是自主可控的,不需要被很多技术左右。同时,在安全层面也可以相对有所提高。

他指出,阿里的去IOE不是简单用MySQL替代甲骨文。阿里在去IOE有三个具体存储平台:MySQL、阿里自主研发的分布式数据库OceanBase 和阿里云平台RDS。

在分布式数据处理方面有数据流技术、大规模化运维和研发支持体系。这是阿里去IOE过程中缺一不可的。

自阿里去IOE以来,目前已逐渐形成了自己的一个MySQL分支,做了深度的虚拟化,已有近万台服务器,而且还在疯狂增长。目前多数核心数据存储在MySQL上,也一些核心的数据和应用正在往OceanBase迁移。这代表阿里基本具备不被任何商业技术绑架的能力。

阿里的业务具有多样性,比如,支付宝就是一个金融公司、淘宝是大型互联网购物公司、阿里金融就是一个大数据的公司,每个公司有不同的业务生态和类型。因此,阿里技术保障团队要支持阿里30多个BU,每个BU有自己的业务类型,这就要求工程师能深入了解这些应用,解决其中的一些痛处。例如,“秒杀”这样的场景,可能就对数据库有比较大的挑战。另外,阿里在主配延迟方面做了很多努力,如在远程数据高吞吐延迟方面,基于MySQL的稳定性做了很多工作。

阿里云数据库RDS,是去IOE过程中很重要的一个替换平台,它是完全由阿里自主研发的,并且后端是阿里数据库技术团队在做服务的对接。

阿里的OceanBase数据库,目前支持标准的Oracle,是典型的关系型数据库,基本上可以跟开源RDBMS兼容。OceanBase数据库的优势是:1. 在构建大型分布式的平台时,用MySQL需要分库分表,而用OceanBase则不需要分库分表,这对某些业务方面来说带来了方便性;2. OceanBase的持续性和稳定性在阿里也有非常好的口碑。

随后,周宝方又讲述了分布式处理技术、数据流技术、大规模化运维和研发支撑的体系等多方面的实践与体会,分析了其中的技术难点及攻克方法。同时,指出去IOE有一定的技术门槛,但是规模较大的公司或企业可以在这方面做考虑。

陶涛:Pinterest搜索和推荐实战


Pinterest首位中国工程师陶涛

在演讲中,Pinterest首位中国工程师陶涛先给出了Pinterest的架构图,在最底层的Pinterest数据库有两套系统,分别是Recommendation和Search,然后结合实例讲述了如何提供高价值的推荐。他指出,用户会帮助Pinterest整理信息,因为Pinterest主要以用户为中心,会将用户的很多爱好拼在一起,而用户又会将这些组合成不同的东西。当两个用户有共同爱好的时候,就会产生信息重叠,我们就可以把这两位用户建立起一些联系,并通过这些信息帮助其他用户发现他们想要的内容。同时介绍了Pinterest的搜索和推荐系统是如何其自身的业务特点进行构建的。

周爱民:寻找架构的来处——意图


豌豆荚架构师周爱民

周爱民在主题演讲中总结到,每个架构过程都有架构发起、架构构建和架构交付三个阶段。每个阶段有各自的知识,比如架构发起时会有架构思维、架构意图;架构构建有过程论;架构交付有交付对象问题。而架构意图是本次演讲的主要内容。

周爱民提到,他是在2007年左右画架构师能力模型时,才开始关注意图这个问题的。第一,需要发现问题关键,而非其外表。如果对问题或者问题的架构不能理解,最后看到这个架构图还不能理解的话,通常的原因在于对目标理解不同。第二,简单的设计是对的。但前提是全面的分析。然而这里要注意,尽可能与设计者讨论它的分析过程。如果看一张架构图,或者架构结果不一定是图,那么看一个架构结果或者设计,影尽量与设计者讨论设计过程而非讨论分析成果,分析成果画在纸上,表达结果。但是你要讨论分析过程,要从逻辑上看是不是有矛盾,或者是不是在这个场景可用,然后做好需求确认。第三,一个很主观的判断,你觉得这个设计好不好主观的判断。设计的过程结果如果不能体现设计师折中过程的痛苦,那一定不是好的设计。你判断这个东西好不好,你对它进行评估,不能体现设计师折中过程痛苦,这个设计一定不好。如果系统没有矛盾,那么谁都可以做出来。而如果系统有矛盾,那么必须找到一个折中方案,这个是架构师做的。如果不能体现这个,就不能体现设计本质,这是意图最初的出处。

杨光辉:从小至大,系统架构的一种演进方式


淘宝北京研发中心技术专家杨光辉

杨光辉说,在构架系统的早期可能不会更多地考虑架构,主要是在做技术选型,首先是编程语言的选择。对于编程语言选择,当前主流编程语言有很多,有面向对象语言、传统式语言等。做这个选择主要根据人员知识储备,包括对性能的需求、类似产品这种语言有没有应用,以及开源社区活跃度等几方面。通常采用一些框架辅助开发,但框架不等同于架构。因为架构是一个系统宏观层面各个角度的体现,它包括物理架构、运行架构、包括数据架构还有程序架构。而框架可能是一些架构思想,甚至一些编程模式在软件上的实现。然后分享了从小到大系统架构过程中,短平快架构、负载均衡、硬盘构造、DB拆分等方面的实战经验。  

曹力:如何一个人打造日PV百万的网站架构


暴走漫画CTO曹力

在演讲之初,曹力指出,用户想得到所需的服务,而并不关心产品用的哪种技术,所以在创业初期可以选择自己最熟悉的技术开发出用户需要的东西。此时,就必须深刻了解用户的需求及产品的应用场景。

因此,初始架构可以短平快、非常简单。而这种初始架构勉强让暴走漫画支持每日大概10万PV的请求然后不行了。而目标是达到每天一百万PV,该怎样攻克呢?难点在于使用的Ruby/Rails在大并发下,每个进程使用一个请求,我们每个页面要显示用户信息,每天导致页面难缓存。思考当时的应用场景之后,曹力采用异步载入解决了问题。首先最快速让用户看到他们最希望看到内容就是文章内容和图片。对于子请求来说一般是不需要模板渲染,减少了CPU时间。同时子请求仍然可以被缓存。大量请求可以被缓存,使得我们服务器压力大大减少。这样我们一百万PV就搞定了。

但此时老板又提出了每日一千万PV的要求。对于这个貌似难以完成的任务,曹力成功采纳了开源技术和云计算平台,完成了任务。他总结到:

  • 使用80/20原则进行缓存
  • 使用云服务减少开发量
  • Membase替换Memcache
  • 使用锁来防止Dog Pile Effect

更多精彩内容,请关注 @CSDN研发频道,“ 2013中国软件开发者大会图文直播”专题

0
0
  • CSDN官方微信
  • 扫描二维码,向CSDN吐槽
  • 微信号:CSDNnews
程序员移动端订阅下载

微博关注

相关热门文章