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

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

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时代,架构可归结为三点:软件架构和开发过程支持快速迭代,系统架构与分布式架构支持大规模用户和数据分析,然后由数据分析驱动迭代。

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

阿里巴巴集团CTO王坚确认出席第六届中国云计算大会 【走近讲师】青云甘泉:混合云的构建及其对企业的帮助 RadiumOne创始人兼CEO因家暴被公司解雇 3D打印狂潮:可检测皮肤疾病的低价手机显微镜 浅谈导航设计,开发者必备的十大实用技巧 【云先锋 41】上海越诚:基于云服务的建站类iService软件超市 董西成:Hadoop将在高速发展和完善中扩大优势! 【走近讲师】 华云数据郁珉:公有云市场八仙过海 价格不是唯一标准! Facebook、Twitter、Google移动广告之争 开发者的黄金时代=运维人员的恶梦? 研发团队平稳度过“从小到大”并非易事 诺基亚品牌手机不久将消失 Stephen Elop回应不是木马 看七家科技公司Logo的最初模样 移动UI框架Fries:私人定制最Sexy的用户界面 必须Mark!最佳HTML5应用开发工具推荐 百度技术开放日感悟:看百度如何获取大数据时代的“船票” 谷歌亚马逊微软的烧钱游戏 拉手网CTO官冲:团购网在大数据应用上的探索 究竟谁真正关心比特币,不妨看看基于大数据的百万条推特分析 Firefox 29正式版:高度自定义模式、全新菜单和Australis UI 冼茂源:HBase在垂直搜索业务以及数据存储中的应用! 阿里云计算北京布点 全球第三个云数据中心开放 【走近讲师】友友天宇CEO姚宏宇:与行业结合是私有云厂商的重要出路 万亿移动支付产业的难点和痛点 削减硬件运营成本?亚马逊或自主研发ARM架构芯片 开源框架eMobc:XML开发原生移动应用so easy iOS应用安全开发,你不知道的那些事 市场化API的十个捷径 MongoDB和Cloudera结盟,欲征服大数据市场 红帽收购Inktank,将统一Gluster与Ceph? 那些巨头公司Logo是这么演变来的…… 数据库里的一字段为空null怎么表示? .NET实在恶心,有了<%=Request.QueryString["clinic_code"]%>,就不能可视化了。 听来的两个恐怖故事,有空进来喝口茶吧^-^ 心情不好想要点安慰!!! ---------exchang 工作流问题----------- 用kdevelop编译完,总执行不了c++程序,不知何原因?? 用kdevelop编译完,总执行不了c++程序,不知何原因?? 有个项目数据大概有上亿条记录,大家看看是否一定需要数据仓库处理?用分布式分区行否? 各位大虾:请问能不能在sql语句中的 from 后用一个变量来表示表名。高分相送,不够再加! 数据库问题 在同一个页面中,如何让SessionId产生不同的值。 MDI问题:如何在已show的子窗体中点击按钮来show一个另外的子窗体? 问一下xdjm~~~ 我我哦窝窝窝窝窝窝窝 一个记录输出的问题。。急急,,help me!!!在线等待。。。。。。 如何从服务器端下载文件到客户端? 高分求解:如何利用win2000的活动目录技术进行统一登录 有没有在datalist下分页的好方法? 数据窗口中如何得到某个字段在修改之前的值? 服务器事件报错 我想知道在哪可以下载 Microsoft Visual Studio 的中文版 着急的问题 也许是个简单问题 帮忙? 要判断_variant_t类型和CString是否相等,怎么做类型转换? 紧急求助!!!! 女友被抢!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 看看这句代码,在线等待。 请问如何将SqlDataReader类型转变为SqlDataAdapter类型? 寻找开发调试器的网上资源 我想知道在哪可以下载 Microsoft Visual Studio 的中文版 ===有关Datagrid模板列:在里面添加Radio控件,如何设置和获取它们的值[紧急,一定给分]=== 有没有人用过dtl.lib(database template library)编写数据库程序? 就差一点了 谁能回答我关于 Junit 的问题 谁能告诉我,mysql的update语句是否可以用正则表达式呢 关于maxplus的一个问题。 招工信息 ulimit -f 执行不成功为什么? 如何显示时间?? 寻找开发调试器的网上资源! linux下有没有类似windows下struct _finddata_t查找结构体的东西 100分求解pl/sql developer v5.0.1 的注册码! 为什么我的.nsf签名签不上,可能有哪些原因呢?请各位帮帮忙!! 给个匿名FTP站点做中转站。 刚才用了CButtonST,举爽,散分了。。 寻找开发调试器的网上资源! 急:为什么用iframe插入网页只显示一部分? --------开发工作流----------- 大侠们急救,高分给!!! 在98控制面板中发现MS DTC这项,请问它是干什么用的? 用recordset打开数据库的问题 四六级估分 如图所示,AD是△ABC外角的平分线,AD与△ABC的外接圆交于点D,求证DB=DC 科技发展利大还是弊大50字左右作文 用长喜四六级分数换算器估分六级是427,准不准? 如图,AD是△ABC外角的平分线,AD与△ABC的外接圆交于点D,求证:DB=DC题目图如下.尽量的详细一点,定理和原因都在括号里写一下,初学圆,请见谅! 镜面反射和漫反射哪个亮度大why 四六级达人请进:大家说说看四易网的四级估分准吗?一般相差多少?本人在那估分在455分, 已知:如图,AD是∠EAC的平分线,AD与△ABC的外接圆交于点D.求证:DB=DCAD是∠EAC的平分线 变频器的频率调节电阻工作原理是什么?为什么调节电阻能改变频率? 四六级的基础是什么 帮忙证明一简单立体几何题目在正方体ABCD-A1B1C1D1中,E为DD1中点,则BD1和平面ACE的位置关系是什么,给出答案并证明 可调电阻 protel 电路原理图怎么表示 请问数学该不该建立错题本?我们现在复习一大半了,到直线与圆了.之前也做了很多练习,...请问数学该不该建立错题本?我们现在复习一大半了,到直线与圆了.之前也做了很多练习,试卷之类的. 假如光速和声速相同,我们的生活会有什么变化?假如光速和声速相同,我们的生活会有什么变化?越多越好! 在99SE中怎样将原理图2个可调电阻导入PCB当中只有一个 胶体有一个性质叫电泳现象,对此有一个解释“胶体粒子具有很大的 比表面积,什么是比表面积啊? 一道隐函数求导的题,急!y=1+xe^y 求dy/x=0=什么? 谁知道调音耳机上的可调电阻是多少Ω?还有我有一个5200毫安时,3.7V的电池,应用多少Ω的可调电阻?我的“5200毫安时,3.7V的电池”是当灯的电源,与耳机无关。电源是废旧手机的电池。我想用 电泳现象:胶体微粒带电荷,期中电场的作用下发生_____. 立体几何 第三题 咋做 12V供电,串联4个LED(3.3V),需要加电阻吗?要加的话得多少欧?我知道,但要加多少欧啊 好记星V5 程序升级好记星V5怎么程序升级呀? 26题怎么做 数学立体几何 已知函数y=x^2+(b-1)x+c(b,c为常数),这个函数的图像与x轴交于两个不同的点A(x1,0)和B(x2,0),若x1,x2满足x2-x1>1 (1)求证:b^2>2(b+2c);(2)若t 立体几何证明的问题直线m在面α内 和 属于面α 还有 ∈ ,⊆ ,放倒的U 分别什么时候用 数学立体几何 第1, 一个水平飞行的的轰炸机,在2000m高处以300m/s的速度飞行,追击一艘与飞机同向前进的速度为30m/s的汽艇,求飞机在什么地方投弹才能正好击中汽艇?(空气阻力不计,g=10m/s2) 立体几何证明时的问题直线m在面α内 和 属于面α 一样吗? 还有 ∈ ,⊆ ,放倒的U 分别什么时候用 求推荐一款外观大气功能强大的吸油烟机. 立体几何问题,急,天才进,1.直线L与平面a所成角为30°,L与平面a相交于点A,直线M属于平面a,则M与L所成角的取值范围是多少?2.在正三棱锥P-ABC中,AB=4,PA=8,过A作与PB,PC分别交于D和E的截面,则截面△ADE 我怎么感觉错题本没效果.错题很多累积在一起确实很麻烦啊.我想每个错题重做一遍,又怕少了.多做几遍,又没时间. 名气油烟机怎么样?听说过名气油烟机吗?是不是和老板的质量一样呢?有些人说名气质量不行,而且售后太差了,刚出的.网点太少.质量和老板完全不一样. 3.设随机变量X~B(10,0.2),则期望E(X)= 做匀速圆周运动的飞机,运动半径为3000m,线速度为150m/s,求飞机的周期和角速度. 在直角三角形ABCD中,AD平行BC,角ABC=90度,点E是DC中点,过点E作DC的垂线交AB于点P,交CB的延...在直角三角形ABCD中,AD平行BC,角ABC=90度,点E是DC中点,过点E作DC的垂线交AB于点P,交CB的延长线于点M,点F在线 一架在h=2000米的高空水平匀加速直线飞行的轰炸机一架在H=2000米的高空水平匀加速直线飞行的轰炸机,想用两枚炸弹分别炸山脚和山顶的目标A和B,且炸弹同时命中目标发生爆炸,一直山顶高h=128 想买试题调研,可是看书店里面很多什么1000例数学题,错题本,知识点,各种各样的书,不知道买哪一种好就是试题调研范围里面的,我数学和英语很差,准高二文科生 matlab中怎样设置非均匀的colorbar,让colorbar的下半部分为-1到0,上半部分为0到0.1,0在colorbar中间 求 科技发展利大还是弊大 作文350字左右 干干接触物理,不知道用什么练习册和辅导书好,请大家推荐一些,练习册最好能结合使用好的, Matlab怎么指定colorbar的所代表的坐标轴?假设有一个矩阵T(1,y),其中y=1:8,T(1,y)=1:8,用plot(T(1,y))后会有一条曲线,就是以y为横坐标,T(1,y)为纵坐标画图,我想以T(1,y)的大小给该曲线着色,colorbar中要怎 下列关于书写化学方程式的原则或步骤,叙述错误的是A.必须遵循质量守恒定律B.配平不能改动物质的化学式右下角的数字C.必须注明反应条件D.要注明生成物的颜色和状态唔O.OD肯定是不对的, 一道我儿子练习册里的物理题地震时震源的震动以横波和纵波两种形式向外传播,两种波在地壳中的传播速度并不一样,首先是纵波其次是横波,某次地震纵波在地壳的浅层中以6km/s的速度传播, matlab中如何使colorbar显示百分数如何使邮编的colorbar显示成百分数[X,Y]=meshgrid(hs,log(Ds)/log(10));surf(X,Y,Z)shading('flat')colormap('hot')colorbarview([0 0 1])set(gca,'ytick',[21 22 23 24 25]);set(gca,&# 已知圆内接四边形ABCD边长分别为AB=2,BC=6,AD=CD=4,求四边形ABCD面积?(请不用海伦公式,不用三角函数) Ma.B.P是什么 单位? matlab中insert colorbar是什么,可以表达出什么信息,有什么作用? 随着世界人口的增长,人类对粮食的需求量不断增大.俗话说,“庄稼一枝花,全靠肥当家.” 某农民根据种植的农作物生长的情况,准备配制一种复合肥60kg,该复合肥中含KCl、NH4H2PO4和(NH4)2SO4的 可以流动的物质都是液态吗?为什么? 我现在是高二的下半学期,想建立一个错题本,还来得及么?我是不是每科都得建立一 红外LED哪边正极哪边负极求助帮忙 为什么水或其它液体,从一个物体流下来之后会绕着这个物体底面图形流动 4-20ma压力电动气产生负压输出多少ma 根据伯努利定理,为什么机翼上方流速大?上方不是不平吗?平不就流速大了?为什么曲线流速大? 还有个D答案 胶体微粒具有相对较大的表面积,能吸附阳离子或阴离子且同种胶体微粒吸附同种电荷 制作冰糖葫芦的果实是否要先煮熟? 通俗的解释伯努利原理,为啥流体流速快,流体产生的压力就会变弱(机翼横截面)一定要通俗,我认为机翼上方由于凸起,空气被压缩,应该压强变大. 在一个温度可视为不变的池塘中,一个小气泡从池底缓慢地向上浮,则在气泡中为什么体积增大,压强减小?用到压强的 关于光的散射"朝霞不出门,晚霞行万里"怎么用光的散射来解释? 为什么不能超过光速根据爱因斯坦的相对论,物体在接近光速时,其质量会增加.当其无限接近光速时,其质量为无穷大,而推动无穷大质量继续加速就需要无穷大的力,而这显然是不可能的.所以, 纽约大学教授:放松众筹融资限制意义非网购成为中国消费新势力 规模跃居世界人大常委会询问财政科技资金:好钢要用万钢月内再提严惩科研腐败 强调四措并联合国中国籍高官徐浩良:国际公务员是浙江遂昌法院QQ视频四国连线 审理继浙江高速金华西出口货车自燃 300万浙江永康华溪再遭劫 “牛奶河”变“凉德国大众刷新全球建厂速度 宁波项目首中英裁缝竞PK宁波服装节 奢侈品不只随警六小时 记者体验城市“保护神”的塑料人崛起?乐高玩具人数量6年后或超五分之三美国人债务积累超储蓄塑料人崛起?乐高玩具人数量6年后或超《变形金刚4》香港取景遭勒索 恐吓掷杜青林对西班牙进行友好访问外交部:中印重申不将军事能力用于针对美国艺术家用鸽子从古巴走私雪茄埃及临时政府法律草案规定严打民众示威美农民发现两副恐龙骨架 望拍200万全球最适宜工作跨国公司排行 谷歌名列10个可爱招数 让老公爱你更胜从前黄玮当选陕西省人大常委会副主任 唐俊台版“叛谍狂花”:潜逃英国女中尉返台实验证明啤酒会损坏人类记忆 尤其是中国资委纪委、监察局传达学习十八届中央司法拍卖模式取舍大势排队3小时看病1分钟 代表委员议医患青少年足球联赛焕然一新 骨龄检测杜绝港媒:美先进武器包围中国 军事遏华战省政协委员李晓陵:根治“打车难”面对荔波万亩野生梅花盛开迎客美军12架F-22战机部署冲绳嘉手纳埃及南部发生严重车祸 卡车撞上巴士致国家统计局:中国城镇化率达到53.7省政协委员建议出台《全民健身站点管理2013年全国固定资产投资增长19.蓝营新人拟组连线 支持连胜文参选儿童福利院期盼更多爱心企业助孤儿就业曝央视马年春晚节目单 董卿与帅气魔术[两会专访]张志辽:法定假日增加4天于学斌:期待国企改革有进一步实施细则
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘