[TUP 第 19 期] 大数据系列研讨会之“从 12306 谈起”

  • CSDN

2012 年 2 月 21 日

话题:架构

2 月 18 日,CSDN 在北京举行了 TUP 第 19 期活动:大数据系列研讨会——从 12306 谈起。本次研讨会汇集了来自百度、豆瓣网、搜狗、淘宝、土豆、凡客诚品、新浪微博、IBM 等公司的众多业内技术高管,就大数据及海量并发用户网络的需求分析、架构设计、产品研发、系统运维等话题和与会者进行了深度探讨。与会者包括来自互联网 /IT 公司技术高管、研发精英、运维管理、对高并发网站解决方案有研究的技术人员,共计三百人参与了此次研讨会。本次研讨会分为上下午两部分,上午为高端讨论,下午为集中讲座。

在下午的讲座上,针对网站在突发高负载和高增长的情况下,如何承载巨大访问量,来自百度(移动·云)的首席架构师林仕鼎、来自淘宝产品技术交易平台部的双 11 技术保障负责人唐勇、来自美国卡内基梅隆计算机机器人专业博士——面向移动云计算创业人邓侃,三位业内技术精英分别阐述了自己的观点并带来了相应解决方案和技术讲解。

图:讲座在 CSDN&《程序员》总编刘江的主持下正式开始

图:现场人头攒动

百度林仕鼎:关于架构设计的思考

百度(移动·云)的首席架构师林仕鼎带来了名为《架构设计的一些思考》的精彩演讲。

图:百度(移动·云)首席架构师 林仕鼎

林仕鼎首先从存储、分布式、服务架构、计算模型的例子开始谈起。他认为程序组织非常重要,对于存储这部分来说,它需要考虑包括结构、数据特点、访问模式、接口性质四大方面的问题。林仕鼎对这四大方面的问题作了详细阐述,指出每一个问题都面临若干选择,比如结构问题就有:File、Object、Table 的选择,然后在同样一个结构中,还要面临是实时读写、批量写实时读之类的访问模式的选择,接下来不同访问模式对系统带来的影响,数据大小的分布、布局等。林仕鼎表示,正是因为有这么多因素的影响,导致开发者在设计系统时,必需要考虑很多方面。只有在全面掌握这些信息的情况下,才能设计出符合实际要求的系统。

存储带来的一些矛盾包括:延迟与吞吐、随机与顺序、规模与实时性。一般来说,系统的规模越大,实时性的保证难度也就越大。要化解矛盾,需要在包括 B+tree、Log-based 两类模型建设的基础上做到弱化需求、发掘局部性、组合模型。

图:为弱化存储带给系统的矛盾而采用的组合模型

在谈到分布式时,林仕鼎表示其实分布式的目标很简单,只有两个:扩容和容错。要实现这些目标需要采用 Partition 和 Replication 两种方法,而协议设计、调试是难点。

在进行系统设计时,所有系统都会面临一个极限值,即在给定系统资源情况下,所能提供的最大请求数,这里需要做一个特别设计,以防请求数突破极限值。如果没有作特别设计,在极端情况下,吞吐量超过一个点,那整个系统将崩溃。服务架构的目标包括系统的高吞吐能力和在极限压力下的稳定输出。要实现这两个目标离不开服务架构的两类模型:属于基本类型的 threadpool + queue 和属于复杂类型的 event-driven。为了保证整个系统的稳定性,还需要注意:减小资源分配粒度并主动调度、Flow Control、负载反馈,Throttling 和延迟截断这四个方面。

计算模型包含很多不同特点,一般来讲分为三类:数据密集型、计算密集型、通讯密集型(即传统 HPC)。林仕鼎表示,首先要分析系统的特点,找到适合的模型。

在很多情况下,在怎么做系统、服务、数据仓库等问题上,开发者面临的具体问题都千差万别。此时,需要建立一些模型,或者有比较好的实践原则。作为一个架构师,首先是要非常深入地了解自己的业务,再根据业务特点运用一些现行做法。林仁鼎总结了“架构师三板斧”,作为本次演讲总结与各位分享。架构师三板斧内容如下。

  • 看清需求:Tradeoff、无法满足所有需求、无须同等对待所有需求、发现根本需求、抽象、降维、了解需求随时间的变化、选择方法、把握节奏。
  • 选择方法:测算 -> 模拟 -> 实现、分解 vs 迭代、设计模式。
  • 把握节奏:目标与可达路径、定期产出。

淘宝唐勇:淘宝双 11 经验分享

淘宝产品技术交易平台部的双 11 技术保障负责人唐勇带来了名为《淘宝双 11 经验分享》的精彩演讲。

图:淘宝产品技术交易平台部双 11 技术保障负责人唐勇

在演讲开始前,唐勇首先为与会者展示了一组惊人的数据,这组数据来自 2011 年 11 月 11 日的淘宝商城。

  • 零点刚过的一分钟内,有 342 万用户涌进淘宝商城;
  • 11 月 11 日零点 8 分钟淘宝商城支付宝交易额突破 1 亿元;
  • 11 日 00 点 01 分,交易 6 万笔;
  • 最终数据:交易额 33.6 亿元、上千万笔成交记录。

唐勇分享了淘宝现在对双 11 的三条技术准备:整年技术优化的考试、系统极限压力的真实测试、对系统容灾降级措施的检验。每一条都是关于大数据处理的严峻考试。

针对大数据处理情况,唐勇列出了包括高数据安全、高可用性在内的高稳定性问题;包括高并发处理能力、高存储容量、低响应时间在内的高容量高性能问题;包括硬件、人力在内的低成本问题;以及水平扩容问题这四大方面的问题。

图:淘宝为应对双 11 而设计的大致架构

唐勇介绍了从技术历程、技术架构方面去处理上述问题的详细过程,并分享从中得出的经验:享受简单拥抱粗暴、避免过度设计、绝不为半年后做设计、先解决问题、容灾报警数据监控要在设计时考虑、魔鬼都在细节里、系统做的好就是:死的比别人晚、恢复比别人快、开源软件可掌控。

对于电商网站的大数据处理,唐勇给出的建议是:重视技术团队取胜、业务驱动、控制技术欲望,解决问题,保持简单、在没有准备好之前,不要触发热点、如果要触发热点,不要在钱上犯错。

最后,针对 12306 网站的数据,唐勇进行了详细分析并贡献出自己的解决方案建议。

图:淘宝唐勇为 12306 网站设计的解决方案

云计算创业人邓侃博士:企业私有云及其系统架构

美国卡内基梅隆计算机机器人专业博士、面向移动云计算创业人邓侃带来了名为《企业私有云及其系统架构》的精彩演讲。

图:美国卡内基梅隆计算机机器人专业博士、面向移动云计算创业人邓侃

邓侃首先指出了传统企业 IT 中存在的普遍问题,并从以下几方面解释企业为什么需要有私有云。

  • 在资源共享方面,由于部门之间的信息孤立,数据和硬件资源都难以共享。
  • 在资源耦合方面属紧耦合,导致维护困难,并且对于新手来说学习难度太大,也难以适应经常变换的业务需求。
  • 在应对日益增长的数据量方面,由于即需要可持续扩展的存储空间、又需要可持续增长的并行处理能力,因此传统企业难以应付日益增长的数据量。
  • 难以应对突发流量。由于打折促销等业务手段,常常造成销售、仓储和快递的流量洪峰,而此时硬件资源不足就可造成系统宕机而丧失商机。如果要预备充足的硬件资源,又会造成平时的资源浪费。

图:企业往往难以应付突发流量

企业的私有云系统架构,包括了模块 vs 服务,SOA 系统架构有三个特点:一是传统的工作流程,由程序实现,一段程序可以调用多个模块。单个模块发生变化,程序必须重新编译并部署。二是所谓服务,基本上就是把模块独立运行于专属进程或线程。服务与服务之间通过网络协议,相互调用,串连成工作流程。三是服务串连形成的工作流程,比程序实现的工作流程,更“松”耦合。

邓侃简单介绍了 IaaS、PaaS、SaaS 三个云计算分层结构、云计算与系统的三段论。他指出,通常 IT 系统分成三段:门户段 Presentation Tier,业务段 Business Logic Tier,数据段 Data Tier。 三段论是纵向分割,而云计算是横向分割。云计算软件企业提供 IaaS,PaaS 服务。系统集成商购买多种 PaaS 服务软件,根据企业业务逻辑串连起来,并配以相应 UI,形成完整的企业 IT 系统。

针对传统企业 IT 的弊端以及企业私有云系统架构的特点和现状,邓侃介绍了如何从传统 IT 系统向私有云迁移的方法,提出向云计算平台搬家的四大步骤:迁移应用、迁移数据、双轨运行、上线优化。他针对每个步骤一一作出详细阐述,并针对这些方法介绍了三种搬家模式:现有系统整体迁移、渐进式部分迁移、为应对洪峰,把企业 IT 系统的瓶颈环节,外延至公有云平台。

图:现有系统的整体搬家

在演讲过程中,与会者纷纷举手,针对自己遇到的详细问题,寻求技术指导与交流探讨。嘉宾分别作出了耐心的讲解与深入的探讨交流,现场气氛热烈而融洽。演讲结束后,技术探讨氛围意犹未尽,现场举行了圆桌论坛进行开放式交流,与会者与演讲嘉宾踊跃发言,针对本次讲座的主题与业界热点话题,纷纷发表见解并分享自己工作中的技术心得与结果经验。

架构