August 2009 Archives

在刚刚举行的系统架构师大会上,支付宝首席架构师程立分享了《面向生产环境的SOA系统设计》这个技术话题。现在把 PPT 第一时间和大家分享一下。

程立在 SOA 功底深厚。上次在 InfoQ QCon 会议上程立的话题也是有关 SOA。本次演讲内容侧重与上次侧重点不同。只是因为会议时间有限,所以有几页没有完全展开来讲,稍稍有点遗憾。

感谢程立。大家针对该 PPT 有任何问题的话,请留言或者发邮件给我,我将第一时间转给他。

关于 PPT 作者

程立是支付宝公司的首席架构师。他从2004年起参与支付宝与淘宝网的建设,2005年正式成为支付宝人,随着支付宝的业务与技术的成长,从开发工程师、架构师到首席架构师一路走来,全身心投入并见证了支付宝业务与系统发展的完整过程。



支付宝一直在招聘软件架构师,我们是 Java 开发环境。如果您对支付宝感兴趣,并且想让自己做的东西服务于两亿多的用户,不妨联系我们或者直接发简历到: [email protected]

--EOF--

参加系统架构师大会

| 9 Comments

下午的飞机去北京,去参加这个 2009 系统架构师大会。颇为感慨的是,现在技术会议的名字都越起越大了。

这次会议是偏向系统层面的,面向开发人员的内容比较少。支付宝首席架构师程立的《电子支付系统的分布式服务架构与开放架构研究》是关注电子商务技术人员应该听的一个课程。PPT 我已经提前看到了,很是精彩。上次在 InfoQ 上的 PPT 有些用力过猛,这次的更加实惠一些。

我个人感兴趣的几个话题是淘宝网陈吉平的《高可用分布式数据库系统架构实践》,PPT 已经看到了,期待;还有章文嵩博士讲《LVS架设的网络服务,解决百万访问瓶颈难点》,当然,百万现在不是什么大数量,应该用"亿次"更吸引眼球;51.com 的徐景春的《MySQL 数据库在线存储灾备实践分析》应该值得一听,MySQL 灾备的话题以前毕竟不多。腾讯、百度也会有人出席或作技术演讲,不过越是大公司在这种会议上越是不说干货(倒不是演讲人不愿意说,而是一些政策限制),隔空搔痒,怕不过瘾。

最后一天要匆忙上阵,给存储架构设计专场做次主持人。主办方免费提供的机票住宿总算要给个交代。要不我都不打算参加了--出差还是非常折腾人的,消磨时间消耗精力。

参会的朋友,北京见!

--EOF--

HadoopDB

| 7 Comments

首先思考一个问题:针对弱关系型数据的数据仓库解决方案会是怎样的?

耶鲁大学的这个 HadoopDB 研究项目挺有意思。这是个并行 DBMS(PostgreSQL) 技术和 MapReduce 的结合的产物。

HadoopDB_Arch.jpg
(上图来源)

上图中的 SMS 是 "SQL to MapReduce to SQL" 的缩写。这是 HadoopDB 的一个设计难点。经过了两层转换,对于 SQL 执行的效率多少会是个问题。

也可以对比一下 Facebook 的 Hive :

HiveDB.jpg

说起 DBMS 和 MapReduce 结合,自然要提起 GreenPlum, 原来是 Hadoop 的间接竞争对手,现在变成直接的了。相比来说,GreenPlum 要更成熟一些。HadoopDB 毕竟是学院派的东西。

GreenPlum_GPDB_Arch.jpg

二者都是典型的 Share-Nothing 结构。类似 Oracle 集群的 Share-Storage 的模式现在已经有点过时了。更多混搭出来的技术解决方案让人喜忧参半,喜的是有很多东西可以选择,忧的是你不知道哪个项目生命期更长久。

--EOF--

近视眼戴眼镜

| 26 Comments
That out of hell,leads up to light(一出地狱即见光明)
--弥尔顿《失乐园》

前几天公司出游,在海边玩的时候眼镜被海浪冲走,不折不扣的当了两天盲人,直到回到杭州才算重见光明,深深体会了一下近视的苦处。周云蓬有首歌叫《如果你突然瞎了怎么办》,如果问我自己,一时真的给不出答案。

我自己从小就喜欢躺着看书,被父亲语重心长的劝诫过多次,但是只当作耳旁风。如果不是小学的时候骑自行车有一次碰了一下眼睛,可能这辈子都未必遇到视力问题。即使是这样,大学前两眼视力也都正常。大学宿舍等灯光昏暗,视力倒是有点下降。话说直到我大学毕业的时候,还是不怎么戴眼镜的,毕业时候两只眼睛虽说已经有点近视,但也就是 100 多度而已,只有去看电影的时候才戴眼镜。

正式参加工作后因为大量时间面对电脑,加上糟糕的 CRT 显示器,第一年视力就急剧下降。到了杭州之后,因为处理数据的敏感性,领导看我眼睛都快贴到屏幕上,跟我说了几次,"要带眼镜啦",于是乎,正式配了副常戴的眼镜。总体下来,记得价格是 500 多,在杭州的宝岛眼镜店,2005 年。

这幅眼镜带了不到三年,中间换了一次镜片。直到去年,觉得视力又有所下降,验光下来,两只眼睛已经接近平均 500 度了。这时候才感觉有点担忧起来。这样下去,谁知道会不会继续严重呢? 有些事情就是发生了之后才会引起你的重视,而之前别人怎么说都是惘然不觉的。去年那次选择镜架的时候,在店员的极力劝说下,换了一副新的镜架,加上镜片下来,总体两千左右,事后查询了一下眼镜的相关成本,发现自己不折不扣的再当了一回冤大头。也了解到眼镜行业乃是不折不扣的暴利行业,一度荣登十大"暴利行业",并非虚言。

因为度数的增加,刚开始的几天非常不适应,看东西(比如电脑屏幕)感觉有所缩小,这让我非常疑惑,究竟我原来看的东西是真实的还是也是虚幻的? 到底这个屏幕实际有多大,可能我自己永远无法通过感官获知了。

公司现在每年也都有体检,不过检查视力的时候相对还是很简略的。即使到医院单独做视力方面的检查,也是比较粗线条的操作。有朋友说,到医院检查一下视力,然后再去眼镜店配眼镜,我个人觉得可能最后都差不多,比较准确的视力结果要在不同情况下,多次检查取个平均值可能更好。

这次在海边被冲走的这副眼镜,戴起来其实也没那么舒服,最主要的一点还是镜架比较沉--尽管已经是比较轻的材质,但眼镜这东西每天在鼻子上搭着,怎么说也要越轻越好。奇怪的是,我没看到一个眼镜店可以给眼镜称重的。对每个镜架的重量也都是完全凭感觉。看起来这个行业也还是没有多么深耕细作。即使是这次去的这家号称平价的菲狐,也没有体现出什么特别的地方,当然价格的确是比对面的宝岛眼镜低了不少。

时至今日,身边的同事或是朋友几乎都带着眼镜,偶有不带的其实也是出于美观而用隐形眼镜的。有了眼镜,似乎有了理由可以对眼睛的爱护少一些。这次没了眼镜之后偶尔抢同事的眼镜用一下,发现多半人的镜片都十分模糊。这样下去无疑会更加加重眼睛的负担。"目前问题",值得重视起来。

简单估量一下,中国至少有几亿人配戴眼镜,眼镜业是个不折不扣的大产业了。不管信不信,镜架和镜片的成本都是相当低的,不难理解杭州出现第一家平价眼镜店后,同行雇佣打手上门打砸的原因。考虑到材质本身没有太大区别,所以相对经济一点的办法是到网络上直接采购镜架,然后到眼镜店买镜片(当然验光后通过网络买镜片应该更省)。总体来说,减少损失的办法就是不要买太贵的眼镜,你享受到的质量都差不多--除非你非常享受那些眼镜店的免费白开水或者是廉价速溶咖啡。"即使一个人足够有钱,也没有任何理由去给一个暴利行业去捐款。"

近视眼戴眼镜--解决"目前问题"。这问题不是个小问题,应该重视起来。否则,就不是 "Myopia",而是 "Short Sight"了,整天在电脑屏幕前的朋友,尤其如此。

--EOF--

更新:最后配了一副不到 500 块的眼镜,无框,材质更轻,感觉比以前的还好。一分钱一分货在眼镜业这里不适用。在一个技术性网志里写眼镜这个话题,只是因为和我们多数人技术人都相关,而多数时候这是被我们忽略的事情。

Doug Cutting 离开雅虎

| 7 Comments

两年前我写道 Yahoo! "应该担心 Doug Cutting 别被 Google 挖去",现在这个担心成为现实。对"从来就不是一家搜索公司"的 Yahoo! 来说,坏消息是 Doug Cutting 离开了,好消息是他没加入 Google ,也没去微软,而是加入 Cloudera (via)。Cloudera 致力于提供 Hadoop 企业级支持,关心 Hadoop 的人可以松口气,即使 Yahoo! 不再支持这个项目,也还有 Cloudera 接棒呢。

可能所有人都间接用过 Doug Cutting 的作品,他是 Lucene NutchHadoop 等项目的发起人,是他把高深莫测的搜索技术形成产品贡献给普罗大众,某种意义上的盗火者,国内很多网站的搜索引擎都有他的项目的影子。

从此之后,Yahoo! 也可以说自己"再也不是一家搜索公司"了。

--EOF--

3PAR 存储架构解析

| 10 Comments

对于国内存储市场来说,3PAR 是不折不扣的后来者。也是个相对陌生的存储产品,以至于其竞争对手的人员甚至都不知道这家公司已经杀入中国市场。

3PAR 在 1999 年成立,几个创始人主要出自 Sun ,前身叫作 3PARdata , 2008 年上市。要知道在存储技术领域竞争还是比较激烈的,EMC / HDS 等控制着高端存储的主要市场,3PAR 能突破技术壁垒并最后成功上市,没两把刷子那是绝对做不到的。

InSpire 硬件结构

3PAR 背板采用全网状的连接结构,每个控制器节点之间高速直连。因为是全网状的,所以基本上一个链路坏掉只影响直连的两个节点的通信,对其它节点无影响。每个控制器节点内置一块硬盘,用于操作系统安装。控制器节点最多可以扩展到 8 个,是 3PAR 存储最核心的组件。

相比之下,HDS 架构采用全光线交换方式(Universal Star Network),而 EMC 是采用直连矩阵方式(新一代产品采用虚拟矩阵架构--Virtual Matrix ,其实已经放弃了直连矩阵架构了)。这些连接方式的孰优孰劣历来是厂商攻击竞争对手的着眼点,能否最大限度发挥性能是用户最需要关心的。

3Par_full-MESH.jpg

3PAR 针对 I/O 指令和数据移动使用不同的计算芯片。I/O 指令(元数据/控制Cache)用 Intel 的芯片,而 数据移动/Cache 则使用专门设计的 ASIC 芯片来完成。

3Par_Controller_Node_IO.jpg

因为有专门的硬件 ASIC 芯片用于 RAID 5 XOR 校验,3PAR 号称有了其第三代 ASIC 芯片,实现的 RAID 5 是业界最快的,甚至 SATA 盘也能有不错的性能表现。(从 Oracle 公司测试的数据来看,和 RAID 10 速度的确相差无几。)

InForm 操作系统软件与虚拟化

3PAR 的操作系统叫 InForm,最初就是面向层次化的设计。与其他存储不同的是,3PAR 所有磁盘被分成 256MB 统一大小的小盘(Chunklet),可以根据需要用多个 Chunklet 组成 RAIDlet(逻辑磁盘)。因为这个独特的设计方式,3PAR 是可以很容易做到不同容量的磁盘混用,同一个 RAID 组里都可以有不同大小、不同转速的磁盘混用,这是其他存储做不到的。而且,所有的磁盘都可以利用,因为Hotspare Chunklet 以更小的单位分散在不同的磁盘上,也不再需要单独留热备盘。空间利用率可以更充分一些。 

3Par_3level_virtualization.jpg

多说一句,有这个冗余机制,3PAR 更换磁盘也是与众不同:直接抽磁盘盒子(一个盒子可是四块磁盘啊),我当初看到 3PAR 技术人员这么操作真是着实吓了一跳。

因为固定大小的 Chunklet 的存在,可以将 I/O 更为均匀的分散到多个磁盘上。

3Par_balance.jpg

对于熟悉Oracle 的朋友来说,会发现这和 ASM 的思想非常接近。因而也可以和 Oracle 数据库进行无缝集成:

3Par_Thin_Provision_Oracle_ASM.jpg

因为软件做得非常具有易用性,日常管理与维护远远没有其他高端存储那么复杂,新增磁盘这种事情,都是一行命令之后底层自动处理。其实在 Thin Provisioning 方面 3PAR 也是很值得一说的,比一些厂商的伪 Thin Provisioning 具体多了。限于篇幅,不赘述。

3PAR 在美国有很多金融证券行业的客户,也有 Web 2.0 行业的客户--MySpace 。在保证 I/O 响应在 10ms 以内的前提下,3PAR 的 IOPS 能力非常优异(这才是卖点,不难理解其客户多集中在证券、金融领域)。虽然有些厂商号称能得到更高的 IOPS ,但那是在 I/O 响应时间很差的情况下的数据。要说明的是,现在随着一些存储厂商在高端服务器上也支持 SSD ,未来几年如何还要再看。

前两年 3PAR 推行所谓 Utility Storage(功用存储) 理念,现在貌似改成敏捷存储了。说实话,我觉得敏捷存储真的挺适合的,3PAR 命令行批量创建 LUN 真的很让人感觉舒服。当然,也在宣传云存储和绿色存储的理念,那是题外话了。

3PAR 原来只做中高端市场,只有 T 这一个系列,现在也开始关注中低端市场了,推出了 F 系列的产品。软硬件体系基本没变,倒是没仔细看过。

(Note: 相关图片主要来自 3PAR 公开资料.)

--EOF--

微软创建 NT 之路

| 13 Comments

这段时间不喜欢写东西,倒是看了不少书。和 IT 有关的图书中,《观止-微软创建NT和未来的夺命狂奔》值得一读。虽说是写 IT 的书,倒是感觉比小说还有趣,所以拿到图书的那天是一口气读完。

这本书中大卫·卡特勒(David Cutler)是主角。这是个中国技术人员不那么熟知的软件巨匠(或许是因为这本书这么晚才翻译到国内吧)。因为 VMS 的成功,使得他被称为世界上最好的操作系统设计者,不过在他迈向更高的台阶的时候,DEC 居然终止了他的 Prism 项目,这实在是个无比愚蠢的决策,直接造成了卡特勒出走 DEC ,跳槽到微软。这也给我们一个启示:一个公司留不住人才的时候,这家公司必将走下坡路

如果换了我们,假设给足够多的钱,你会怎么做一个大项目? 很多人的答案或许是招人,招更多的人!不过牛人不一定有钱就能招来,还需要给足够多的空间与承诺。NT 是微软当时史无前例的大项目,即使是到了最后,也不过是200多人的开发团队。在这本书里你不会发现什么所谓管理一书,尽管项目做起来万分艰难,紊乱如麻,最后的成功也是顺其自然之事。没什么特殊的地方,似乎就是无招胜有招。致胜的关键还是在人,这是事情的根本。卡特勒本人具有敏锐的方向感,不过自己也承认管理集体软件创作团队不是容易的事情,"最理想的软件团队是一个人组成的",他控制整个团队的节奏一致性,这有点像电影导演,当然,卡特勒也是杰出的演员--汇编能力已达化境。

五年的研发需要的忍耐和等待。盖茨作为老板,对技术前瞻性也是颇为自负的,居然很少插手,一方面是相信卡特勒的能力,另一方面也是盖茨的过人之处,有些事情,欲速则不达。要知道,在国内,很多大项目往往是大老板的动摇不定或者是过度干预才最终导致夭折的

卡特勒刚到微软的时候,不少 DEC 的旧将纷纷投靠过来,这帮家伙技术过人自然也自视甚高,对微软的公司文化格格不入,让盖茨和鲍尔默们一度很头疼。解决的办法倒也巧妙,把微软其他技术团队最牛的史蒂夫·伍德放进来和"卡特勒的部落"磨合,这家伙是最强的,如果他也不行,那整个微软恐怕都要被卡特勒的部落鄙视。看到这里长出一口气,还好不是派个感化官过去要大家学习微软文化...

吃自己的狗粮(Eat Your Own Dogfood),在微软内部十分盛行,卡特勒非常倾向于这个做法,所有开发者都应如此,这样才会让所有人对不够好的软件有切肤之痛,这样才能更快的改进现有问题。NT,是否是英文"新技术"的缩写,似乎微软从来没官方证实过。这本书也没澄清一下。Windows NT 的推出让所有人都受益匪浅。还记得 Windows 95/98/me 时代每天几次的蓝屏吧? 对个人用户来说,那是个让人崩溃的时代,微软也因此遭受广泛的鄙视...如果不是 NT 核心的出现,谁知道这会延续多久呢?

似乎卡特勒自己不愿意称自己为 NT "设计者",而是自谦"...was merely one of the contributors to design the system"。

这本书的英文名字是 Show Stopper ,译者张银奎(《软件调试》的作者)老师将其译为"观止",到位。

--EOF--

OakTable Network本身就是一群喜欢相互讨论并和有类似想法的朋友交往的人。更确切地说,是一群致力于对Oracle数据库技术进行科学探讨并爱追根究底的家伙。

这一切都始于1998年的某个时候,那时一帮Oracle专家,包括Anjo KolkCary MillsapJames Morle和其他一大群朋友开始每年以各种借口进行一到两次聚会。每个人都会带来一瓶苏格兰或波本威士忌,作为回报他们也赢得了在我家里某些地方打地铺的权利。

大部分时间我们围着餐桌闲坐,周围布满了电脑、网线、纸和其他一些东西,讨论Oracle,聊聊趣事,使用数据库领域新的并且更优异的方法做实验。在2002年的春天,所有条件更加成熟。一天夜里,我意识到我有16位世界知名的Oracle科学家闲坐在我的餐桌旁。我们三四个人挤在一个房间睡觉,甚至不得不在早上借邻居的淋浴。Anjo Kolk建议我们把自己叫做"OakTable Network"(名字来源于我的餐桌),大约两分钟以后,我们注册了域名http://www.OakTable.net

James Morle 现在和他的妻子Elain一起维护这个网站,虽然或许网站没有像预期的那样保持经常更新,但至少可以用来提供链接、名字等等,这就挺有用了。我们经常在上面进行问答挑战。

挑战是我们在讨论过程中偶尔发生的事情。询问我们任何关于Oracle的技术问题,如果我们不能在24小时内提供答案(不管是对,错或解决办法),提问者都将得到一件T恤,代表他(或她)打败了OakTable。

这个挑战,尽管有时没有像我们想要的那样进行,也许是因为它看起来好像是我们喜欢被自己回答不上的问题挑战。不过它的反面却是真实的,那就是我们的目的是解答任何人的疑问,不管这些问题看上去是多么的"简单"或是"容易"。

注:这是 Mogens NørgaardTroubleshooting Oracle Performance 一书前言中介绍 OakTable 技术组织的来龙去脉。OakTable 是 Oracle 数据库领域最有趣的一个技术组织,他们以运用科学方法(以及科学团体的伦理)从事所有活动。其成员都是顶尖的技术高手,现有大约70位成员,遗憾的是,或许因为语言的隔阂,还没看到来自中国的成员。Ooops , 前言真的不好翻译...

--EOF--

关于这篇归档

This page is an archive of entries from August 2009 listed from newest to oldest.

July 2009 is the previous archive.

September 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.