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

林仕鼎:架构设计与架构师

HTML文档下载 WORD文档下载 PDF文档下载
他自称“西二旗跨界架构师”,又戴上了百度基础体系首席架构师的封号,喜欢在微博和博客上讨论技术、诗歌和社会热点,他是林仕鼎。他在博客中分享了《系统架构领域的一些学习材料》,不断对架构师这份工作做着总结。

【CSDN综合】林仕鼎自称是个“喜欢厘清概念的人”,在他的博客、CSDN举行的TUP活动中以及QCon中一次一次进行了剖析。


林仕鼎在博客中写道,系统架构是一个工程和研究相结合的领域,既注重实践又依赖理论指导,入门容易但精通很难,有时候还要讲点悟性,很具有“伪科学”的特征。要在此领域进阶,除了要不断设计并搭建实际系统,也要注意方法论和设计理念的学习和提炼。对于工程师来说,到一定阶段后往往会遇到成长瓶颈。要突破此瓶颈,需要在所属技术领域更深入学习,了解本领域的问题本质、方法论与设计理念、发展历史等。


架构 (architecture) 这个概念确实不好定义。首先,它很虚,不像代码可以用源文件“自证”。其次,它很泛,好像跟什么都相关,开发、测试、部署甚至运营等各阶段都有其影子。然后,它好像还在变,在计算机发展的各个阶段(Mainframe/PC/Cloud)都感觉不太一样。而且,在不同的领域也都有不同的反映。

所以,一千个人心中有一千个哈姆雷特,一千个工程师眼里也能有一千种架构。以建筑为例,设计师想方案,建筑师出图纸,工人施工同时项目管理贯穿始终,那图纸就是架构。如果说到烤鸭,骨头和肉是代码,鸭架子就是架构,而过程管理将其变成烤鸭。

如果要更正式点定义,架构就是model和pattern,从而把code串成system。而其中最重要的就是design principles (设计原则),即为什么这个问题要用这个而非那个。更文艺点,再结合点美学,也可以叫作design philosophy (设计哲学或理念)。

然后我们来看什么是model和pattern,这两个具体的定义我还没想出来。先说一下比较,model偏宏观,而pattern偏微观;model重抽象描述,而pattern重具体实现。比如,你的系统有一个服务端和一个客户端,那么client/server就是model,而client与server之间的交互方式则是pattern,比如RPC/message、同步/异步,比如用滑动窗口来组织请求与应答等等。当然,这和系统的尺度有关。如果你zoom in到服务端,此时的model可能就是模块的组织关系,而pattern则是调用方式,比如用function call还是event等。


具体到领域上,我觉得主要有三类架构问题(不包括硬件):

  • 软件架构,其典型用例是企业级软件,通过合理的功能抽象,提取出公共组件和通用流程,进行最大化的功能复用 (reuse)。我称其为软件的可维护性问题。
  • 系统架构,其巅峰是OS,重点是解决资源的分配与复用 (multiplexing)。
  • 大规模分布式架构,主要应用在Cloud中,重点是大规模系统的资源整合、快速交付和运维问题。

那为什么架构会很泛又多变呢?这就牵扯到开发过程了。我们再引入一个方法论 (methodology) 的概念。传统软件工程那一套不必说了,互联网服务常用迭代式的开发方法 (现在又叫敏捷),这就是方法论。我个人的做法通常有三种:divide and conquer,modeling and iterate,back-of-envelop calculation and simulation,按问题的规模、难易程度、熟悉程度、项目的组织方式等等选择不同做法。

存储和分布式

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


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

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

服务架构和计算模型

在进行系统设计时,所有系统都会面临一个极限值,即在给定系统资源情况下,所能提供的最大请求数,这里需要做一个特别设计,以防请求数突破极限值。如果没有作特别设计,在极端情况下,吞吐量超过一个点,那整个系统将崩溃。


服务架构的目标包括系统的高吞吐能力和在极限压力下的稳定输出。要实现这两个目标离不开服务架构的两类模型:属于基本类型的threadpool + queue和属于复杂类型的event-driven。为了保证整个系统的稳定性,还需要注意:减小资源分配粒度并主动调度、Flow Control、负载反馈,Throttling和延迟截断这四个方面。

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

架构师的三板斧

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



架构师三板斧内容如下:

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

林仕鼎认为在Cloud时代,架构可归结为三点:软件架构和开发过程支持快速迭代,系统架构与分布式架构支持大规模用户和数据分析,然后由数据分析驱动迭代。

在第五届云计算大会上,林仕鼎将出席,欢迎到现场与他交流。(综合/ 包研 审校/仲浩)

全球开发者报告:程序媛崛起,企业应用更赚钱! 土豪经济 E人E本发布首款4G安全手机 内忧外患:Android版FuelBand应用来得太迟? MongoDB 2.6.2 发布,大大改进查询功能 清华毕军&华为马云:SDN是学术和产业都看好的领域 向三星和苹果发难:亚马逊FirePhone 3D手机强势来袭 支付宝移动端与NFC芯片商、手机商合作 推出近场支付产品 Go 1.3正式发布,改进正则表达式! API设计如龙生九子,Tunneling、Hypermedia等更受开发者青睐 NFV+SDN,博科打造开放式网络平台 亚马逊开放双SDK:摄像购物,追踪脸部玩游戏 解析淘宝Hadoop作业平台——宙斯Zeus 亚马逊的心思:要Android不要谷歌 Vuforia SDK全面更新:3.0版可实时生成虚拟场景和物体 Stream SDK:以手为“剪”,随时随地分享精彩内容 一周消息树:惠普研发基于Linux开源操作系统 打造全新计算机 我从谷歌学到的那些事:Toilet文化、代码实验室 对话大神Scott Shenker:从物理博士到SDN's Uncle 巨头们的又一战:健康数据服务平台 移动应用广告新竞争,Facebook不再一家独大 为什么Fire Phone手机价格不便宜? 老牌播放器暴风影音发力线下与自制内容 APP运营:“小数据”为合理化推送定位 TCL H5TV:回归电视本质,与开发者共赢 烽火星空徐国龙:依托平台,坚持开放与标准,企业移动化快速研发之道 首届bong线上黑客马拉松第一阶段达成! 12支团队晋级 APSys 2014,AMD将发表基于异构体系的DNN实现与评估 PagerDuty实战分析:将MySQL迁移至XtraDB并成功运行EC2 Molecule:自食其力的免费HTML5游戏框架 智能家居升级:Nest启动开发者计划,并开放API Docker,从这里做起! Tell me why! 为什么很多资料在介绍VC中的数据库编程时,大多用access的数据库作为例子,很少有VFP的,用在ACCESS上的程序代码同样实用与VFP上吗?他们 请问如何将chm格式的文件转换成pdf的 请问win/linux的qt哪有下载?还有WIN下的perl .net中如何创建Dll 80分讨论,关于DELPHI的SQL编程! 各位高手:请问如何在weblogic中使用证书撤销列表(SSL)? why? 谁能帮个忙? 请帮忙找找这个控件:含DBCtrlsEh cmos设置问题 如何使用createoleobject() 怎样在控件名字中运用变量 Access的中有类似于Oracle的Decode或者VB中的IIF那样的函数吗?在线等待! 网络中Access的问题. http://www.deckfloor.com/stants/hackgame/index.html 试试看!!!!!!!!!!! 简单问题但急,等回复! 如何利用shell函数,取得“我的电脑”下的驱动器列表?进而获得各磁盘下的目录? 呵呵,一个很菜的问题!关于weblogic ///////////////一个很简单的问题,只要有道理就有分。不够还可以再加!////////////////// CB6的project Manager 让人头疼! 关于截取字符串的问题 请大家帮我看一下这程序 这样的菜单效果怎么做啊!! SendMessage()的问题... 一个被挂起的进程(失去热点)还能收到键盘的消息吗? cb6 的 project Manager 让人头疼! 求助,Apache设置问题 高手请进!!分,不够再给!!是关于session的问题!! samsung550s显示器一问,在线等待…… RedHat 8.0 启动进不了XWindow视窗,怎么办呢???? 在C#中如何完成byte[]之间的拷贝,或者部分拷贝 请问Fuction(T("helpnet"),int i)中的T是和作用? 在客户服务器系统中如何向服务器中请求查询数据? 连接SQL——PLUS问题,用connect / as sysdba,抱错:服务句柄未初始化 关于安装程序的问题,来者有分 急,请高手赐教,在线 初学C++,我是不是需要详细的了解模板技术 游戏开始时的图形菜单和控件是怎么做的? 请诸位将已解决,但长期不结账的case贴在这里。 前几天搞了一个小东西 抱着试试看 在csdn上发布了 没想到今天一看 已经有十多个朋友捧场进行了下载 ######请问,不创建窗体,怎么读出窗体中的控件的属性? 答对给500分! 这个痛苦的程序已经到最后关头,请大家一定要帮我一把:) 100分求优秀MySQL技术网站。 位图菜单... 如何让自己的程序不在Window任务管理器里面出现? 关于DTS数据库导入的问题 网页设计 怎么出现了这么怪的问题?……大家进来看一下阿,来者有分!! 问大家一个语法问题;下面的句子是什么含义? 怎么样从文件里读出数据? He heard from his mother( yesterday)(对划线部分提问) 求高一英语作文 LIFE ON MARS 设想一下人类迁居到了火星上的生活会怎样?1.大房子是用特殊材料建造的,可以阻挡太阳的辐射2.水果蔬菜比地球上的大很多且富含营养3.火星上的新能源不会产生二 there is now considered to be no life on the Mars如何划句子成分 Jim ------------ a nice scarf for his mother on his mother‘s birthday. 以幸福为话题的作文600字.3Q 你想对今年给你压岁钱的长辈(爸爸、妈妈、爷爷、奶奶、外公、外婆等)说点什么?(选择一对象,注意说话的语气和语境) My mother gave me a birthday gift yesterday改同义句My mother ____ ____ ____ ____ ___ __ yesterday 有一种幸福叫XX 为题 的作文 帮我补充题目 想个好写的作文 3Q 写出怎么写 It is said that the workers in this factory are -----your people between the ages of twenty and twenty -five.A.most B.mostly C.almost 为什么? 看到奇异现象.很恐惧刚刚和男朋友去河边,一个非常大的黑影子从头顶飞过,非常进,本以为是车影子,等几辆车经过,没有任何影子,好象一辆车那么大的影子,而且感觉还有翅膀尾巴,真的很恐惧, 提前货期 英语 求教选择题:The workers in this factory are ( ) as in that one.谢谢!A. as twice many B. as many twice C. twice as many D. twice many as “狼疮”这个词给人很神秘与恐怖的感觉,狼疮细胞到底是什么细胞,这种细胞有什么病理特点?如何形成的? 爸爸今年的年龄是笑笑的4倍,而爷爷年龄是笑笑的8倍.爷爷今年的年龄是多少岁急爸爸今年的年龄是36岁,是笑笑的4倍,而爷爷年龄是笑笑的8倍.爷爷今年的年龄是多少岁 all the workers in this factory don't get full salary.句型转换All the workers in this factory don't get full salary.___ all the workers in this factory _____ full salary.填空 要求句意不变 孔子政治主张是什么还是要简练-0-也别复制 It's a little hot for me.(改写同义句)I't's ___ ___ ___ hot for me. 摘抄英语句子 There is a bar next door to the station.请帮忙分析该句的语法,我搞不清楚 next door to the station.之后是什么成分 it helps me to be just a little 它只帮助我一点 这种句型对吗 不对的话请讲理由 有关摘抄优美的英语句子有这样一个作业,RT我想抄刚看的《哈姆莱特》(中英文对照)中的句子.但是觉得那里面的原句子是不是语法与现在不同啊,是剧本而且那是400年前的英文,是不是和古 There is_a bar_next door to the station对画线部分提问 It's a little boring 的同义句 you need to finish your homework first,need 词性.need后为何用to 请问there's a bar next door to the station.的语法?next door to 是介词短语吗? 英语选择题和改错题.( ) 1.I want you ______ your homework first.选择.(10 分)( ) 1.I want you ______ your homework first.A.finish B.finishing C.to finish D.finished ( ) 2.Tell them _____ break the glass.A.to not B.not to C.to no D.no to( ) Jack usually writes letters to me.(改为同义句)Jack usually_______ ________ me. The man next door is from japan.对划线部分提问The man (next door) is from japan.对划线部分提问(括号中为划线部分)______ _______is from Japan? 孔子的政治主张 i want to ( ) a letter to my friends A send B writes C sends 4.The teachers next to the door are talking happily.(划线部分提问)next to the door画线 笑笑今年的岁数是父亲的1/4,父亲的岁数是爷爷的3/5,爷爷比父亲大32岁,笑笑今年几岁(用方程回答) Jenny usually writes to her friends (用now 改写句子) 有爱生活才快乐!如果幸福不在路上,那就在路的尽头是什么意思? 淘气今年岁数是父亲的1/4,父亲的岁数又是爷爷岁数的3/5,爷爷比父亲大32岁淘气今年几岁? His friend usually play football in the playground改成一般疑问句 (我在通往幸福的不归路上.)谁帮我解释下这句话? 三月中旬的英文怎么说 ? 谢了!如题 .急!上旬和下旬呢 ???呵呵,谢了 货期要求延长14天该怎么说好 keep/ prevent/ stop from doing sth的区别? please tell me why you are absent from school yesterday? 鲁滨逊漂流记 英文版短句摘抄必须带中文翻译 路上很开心,英语什么说 He was absent from school yesterday because he was ill.He was absent from school ____ of his____.保持句意不变 Compared with life on Earth,life on Mars will be better in many ways.这句话的结构是什么,为什么compared with 提前了?学霸感激不尽> 在成长路上幸福多作文600字 It's a little hot for me,--------?改成反意疑问句 i think life on Mars will be better than________in many waysAon Earth Bit on Earth Cthat on Earth Don Earth 全家英语怎么说 "完货期将在下周"英语怎么说?the finished date will be on next week"需要不需要加介词ON"? it's,hot,a,but,little,me,for连词组句 我们全家人都很忙 用英语怎么说 缩短货期至30周 英语怎么说 No one is absent from school yesterday,_____?A wasn't it B were they C weren't they D wasn't he 我们全家都喜欢它用英语怎么说? 詹天佑铜像的象征 it,is,hot,a,but,little,me,for连词成句 Yesterday was Ben's birthday . He _____(get) some presents form his father and mother. 詹天佑铜像的象征意义 NOVA IS THERE LIFE ON MARS怎么样
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘