| Wesley's profileWesley's blogPhotosBlogLists | Help |
|
May 31 Status update - 很多事情都很让人无语1. 新来了一位MM,我们就称她MM甲吧,之前是在FBI工作的。来这儿的原因是“在FBI的工作不够刺激”。
2. MM甲很苗条。于是Wesley同学在一次开会的时候,趁人还没来齐,问以前应该不认识MM甲的帅锅乙:“你说她苗条还是我苗条啊”? (我竟然会问这种问题,一定是最近忙晕了。)
最近也很忙的帅锅乙的回答很诚实:“不太好比较,因为没见过Wesley同学不穿衣服的样子”。
3. 今天是某个产品的demo day和sprint 1的postmortem。昨天晚上9点多还有很多show stopper bug。Developer都回家了。Manager都在加班,大概在忙着数bug。
4. 我半夜临睡前忽然心血来潮就remote desktop到office的机器,然后从那台机器再remote desktop到另一台机器,再ssh到一台Linux机器,试着做了一个build,结果发现有100多个编译错误。于是我决定赶紧去睡觉并希望今天早上一觉醒来一切问题都自动解决了。缓解压力的一大秘诀是“有些事情不太对劲吗? 重启一下大概就好了。”
5. 今天发现貌似问题真的都自动都解决了。过了一会儿,发现帅锅丙把女儿带来了,他的女儿很可爱。闲聊了一会儿,帅锅丙诉苦说他昨天晚上忙到半夜2点,然后今天早上6点起来继续忙,终于在9点45跟医生约好的送女儿去做routine check的时间前搞出了一个貌似可以work的build...
6. 中午肚子饿了,准备去吃饭,去叫帅锅乙,帅锅乙说,才得知有个feature貌似下午要demo,但还没开始做,看来得赶紧做了,饭就不吃了。
7. A同学说,多生几个小孩好,每次都可以休很长时间maternity leave... 这样就可以在有full time job的同时还做full time student读完一个master degree。(女超人啊............)
8. 经常毁人不倦的A同学对Wesley同学谆谆教导:“要多锻炼,不要像那个国家来的人那样一个个都那么胖”。(这也太未雨绸缪了吧,哪怕按照火星标准,我离胖也还差十万八千里呢...)Wesley:“哪个国家?”A同学:“厨房里不就有一个吗。”Wesley同学扭头一看,某位来自南亚某国的重量级帅锅正郁闷地看着我们... (我忽然很寒... 其实,在加州,懂中文的人还是蛮多的...)
9. 下午,demo很成功。然后,postmortem的时候,按照惯例,有一个议题是讨论what we've done well。J同学说,ah, let's skip this part.
10. 按照惯例,下一个议题是讨论我们在过去的日子里哪些地方做得不够好。貌似大家都有很多话要说,这个议题无休无止,以至于WebEx的conference bridge都看不下去了,我有史以来第一次在WebEx会议中听到那个不属与任何与会者的声音:“很抱歉打断一下,已经超过了预定的会议时间,要继续会议,请按1..." (原声为英文,貌似是conference bridge的超时自动语音提示功能。)话音未落,说时迟那时快,只见J同学以迅雷不及掩耳盗铃之势按下了1...
11. 晚上,还没吃午饭的帅锅乙饿得不行了,找我去吃饭,并且买单的时候很心安理得地说没带钱,让我结帐。
12. 吃饭时竟然遇到L同学了...... 她刚从一个有雨林有雪山的地方度假归来................
May 30 信息社会的白银时代, part 2先让我们来复习一下本科计算机课程中关于操作系统的定义。其实定义有很多种,什么物理设备的抽象啦,资源管理者啦。不过我想大家都认可操作系统的一个主要功能是管理计算资源和储存资源(我们稍后再讨论带宽资源)。我们要做什么事情需要这些资源,操作系统会负责调度。单机版的操作系统就调度这一台计算机(或者其他有计算能力的设备)的资源,分布式操作系统则会统一调度很多计算机或者计算设备上的资源。 我们先来说比较不重要的那个分布式操作系统:A Distributed Operating System For Datacenters。这个分布式操作系统负责管理一个或多个数据中心里面所有服务器上的储存资源和计算资源,以及服务器和数据中心的带宽资源。笼统的说,基本上没人会从头另起炉灶做,大家基本都是基于Linux做的。用Linux管理单机资源,然后自己改改加加写一些管理rack、管理data center的软件运行其上。整个系统,大家通常不用分布式操作系统这样的名号来称呼它。不过没关系,我们知道这是一个管理资源和提供infrastructure service的东西就行了,我觉着符合操作系统的定义。 很多公司(比如Google和Amazon)都做了不少相关工作,我们可以从网上找到一些相关的论文。我还知道很多其他公司也在做这样的事情,还有的公司的做法很别具一格(这些都是内线情报,可能会涉及这些公司的商业机密,就不在这里说了,欢迎有关的同学和我私下讨论。) 通常,第一步是做一个可以跨机器、跨rack、跨Data Center的支持storage hardware的分布式文件系统来管理储存资源,其次才是计算资源。因为计算总要以数据为材料的,数据总要有地方放的。 Google做的GFS和Amazon做的S3是beta成熟度的(虽然S3曾经至少挂掉过一次),其中S3已经release to public了。GFS也快release to public了(还记得我上次在blog里提到的那个目前只支持Python的AppEngine吗)。其他公司大都还刚刚起步,有一些公司试图借助open source的力量,颇为借重Hadoop的HDFS(Java写的),但我个人觉得HDFS现在的成熟度只能算pre-alpha,离production use还差得远。好像扯得有点远了,以后可能会撰文分析各种分布式文件系统的设计。 除了分布式文件系统,另一个很重要的分布式储存管理的组成部分是DHT(distributed hash table)或者类似的东西。这个基本上是放宽或者调整了一些需求约束的传统数据库的替代物。Amazon的Dynamo看起来长得有点像DHT。Google的BigTable不是DHT而是multidimentional sorted map,基本上是被Google当作传统数据库的替代品用的,大致也可归入这一类。Amazon有个SimpleDB现在在limited beta阶段或许也可归入这类。有个open source的实现叫HBase,用Java写的,基本是模仿BigTable的。HBase用HDFS做储存,这很类似BigTable用GFS做储存的关系。以后可能会撰文具体分析比较它们的设计。 很多较早进入互联网行业的公司,原本做的那些靠它们吃饭的online application都是自带backend的。这不利于data mining,不利于各个application之间的整合。于是这些公司现在正在做一个事情就是要从头做(或者基于open source的东西做)一个真正适合这些Internet-scale application的backend(也就是我前面说的那个分布式操作系统)并且要把原先那些应用程序移植上去。这让我想起了DOS时代的很多应用程序都是自己画界面的自己管理窗口自己管理鼠标键盘消息循环的,后来微软做了个Windows,于是大家都要纷纷把自己的程序移植到Windows用它的统一界面和统一窗口管理事件管理。 第二步是,基于分布式文件系统或者分布式散列表或者其他分布式储存服务,做一个分布式计算框架。目的在于统一管理很多机器上的计算资源。 计算资源可以以不同的粒度来分配。有一种做法是以虚拟机为单位来分配。Amazon有提供EC2,就是以虚拟机为单位,跟VMware的VI3/ESX Server颇有异曲同工之妙,每个虚拟机可以对应于一台或者半台或者更少的物理机器。EMC也会推出类似的服务,当然是基于VMware技术的。 这种做法的下一步发展是让每个虚拟机可以对应于超过一台的物理机器。其实让一个OS可以运行于多台物理机器并调度这些机器上的资源也可以达到同样的目的。这是一个老话题了。有一些厂商做到了实用化的程度(需要专用硬件),比如Crossbeam。 通常只有对公众开放的计算服务采用虚拟机粒度来分配资源。这些企业自己内部用的应用程序通常是专门开发的,以应用程序粒度来分配计算资源。不过这种做法要求应用程序必须针对类似Google的MapReduce这样的框架来写。Hadoop中也有类似的实现。(其实Hadoop的HDFS基本就是照搬了GFS的设计,计算框架也基本是照搬MapReduce的。)这样写出来的应用程序,可以占用一台或者半台或者更少的物理机器,但通常是占用几十台甚至几百台或者更多的物理机器。 这些应用程序都是特制的。更终极的目标是随便拿一个传统的应用程序过来,不需要做太多的修改(最好是原封不动),跑在这个分布式操作系统上,就可以占用从半台或者更少的机器一直到几百台几千台机器的计算资源。这个比较有难度,不过也有人在做这方面的尝试。 但是,这些只是在讨论国家电网应该怎么建,自来水管应该怎么排,电力公司和自来水公司应该国有还是私有,诸如此类。最多再涉及一下什么电网管理智能化之类的话题。真正会在IT江湖中掀起惊涛骇浪并成就新一代霸主的,却是另一种截然不同的分布式操作系统。 <to be continued> May 27 信息社会的白银时代, part 1这篇“长篇blog”会谈论在信息技术领域“what matters in the coming 3 years”,为什么我认为某些领域有很大的商机,会解释为什么我认为目前很多厂商在这些领域做得还不够好,为什么我认为EMC年初收购的那家公司值那么多钱,为什么可能有些公司会握一手好牌却打不出好局。 另外,顺带提一下,貌似去年年初海底光缆断裂了,抢修了好多天才恢复。不过这个不是啥大问题,因为可以mitigate,纯技术手段:到处建data center并把failover做好就行了。 May 24 火灾昨天听见L同学大喊oh my god然后旋风般冲回家了.一问,说看到新闻说她家住的那个小山上森林火灾,她要回去看看房子有没有烧掉.
所以,同学们啊,住山上的豪宅也是有风险的,虽然推开门就是森林感觉很好... (同理,海边的豪宅推开门看见海很舒服,但是龙卷风来的时候... 所以beauty往往伴随着danger...) ========Update========今天起床后觉得嗓子疼 到公司后看到一封信说昨天Santa Cruz火灾了,连带Cupertino的空气也遭到污染,建议sillion valley的员工work from home 那么我家也住在sillion valley啊,不是呼吸着同样的空气么... 要么提前去度假算了... 我要去一个没有地震和火灾的地方... 今天看到了乌云和火红的晚霞。这在bay area还是蛮难得的。 May 23 如果那一天 继不久前USD:CNY跌破1:7之后,又一个数字发生了历史性的突破:油价超过$4/gal大关。(指87号油。89和91号早过$4了。) 其实油价一直在涨。一年里大约从$3.09涨到$3.99吧,不过反正都是3开头也没啥感觉。前几天跟Y同学carpool去开会时回来路上Y同学在Shell加的油还是3.999/gal呢,今天我在同一个地方加的就变成4.079了。 回家路上特意留意了一下,看到的所有加油站(包括Shell、Chevron、Valero、Beacon、Union 76、RottenTomato)都超过$4了。 1年前加一箱油经常只要$30多,如果超过$40那通常是油箱彻底空了告警灯亮了才去加。今天这一次,$65.04。不知道会不会有加一次油要$100的那一天。(美国开始打伊朗了估计就差不多了。)等到那时候我就天天work from home。 May 20 推荐一本书是Ian H Witten、Alistair Moffat和Timothy C Bell写的Managing Gigabytes: Compressing and Indexing Documents and Images。
虽然没有讲在数据不断动态追加的情况下如何去compressing和indexing,但是也蛮有用的。
L同学托我买,买了之后翻了一下觉得不错,于是自己也买了一本。 May 16 Back from VMware Forum今天参加了VMware forum。一些思绪: May 06 推荐一部电影名字叫《上海之吻》(Shanghai Kiss)。 不是什么知名导演知名演员的大制作,事实上男主角长得不怎么样。但是,个人感觉这部电影要比某些所谓著名导演编导的拥有豪华演员阵容的所谓大手笔的电影要好100倍。 对剧情不要太较真,这是一个寓言故事,寓言都是不拘小节的。 这部电影有点难归类。或许应该算喜剧,但... 让人有时候想流泪的喜剧还是蛮不常见的,而且通常喜剧也不会涉及太深刻的主题。不过显然和人鬼情未了或者泰坦尼克那样的爱情片也不是一个类型的。 BTW 一些心情转变: 看的时候一直不知道导演究竟想拍啥,看完了才明白,而且看完后还貌似觉得好像领悟了什么或者灵魂哪里被触动了的样子(其实可能也没领悟什么,睡一觉醒来就全忘了...)。没有看一些国内电影常有的“被当作小学生对待了”的失望感觉。这说明导演很成功。 ============ 近期还看了《西西里的美丽传说》和《日本沉没》。前者据说是很经典的片子。看完后发现是讲一个小男孩暗恋一个少妇的故事,基本这个“美丽传说”很黄很暴力。后者是很著名的灾难片或者爱情片。男主角长得不怎么样(again!莫非影视圈缺乏帅锅...偶要不要考虑改行...)。灾难场面还是很好看的。在直升机起飞前相拥然后音乐响起那个场面也不错(虽然很老套)。 May 03 Getting things done工作中,我曾经提过一些想法,当时没有下文,还有人觉得我的想法很不靠谱。这也没什么,反正基本上我对提100个想法然后去尝试10个想法最终看到1个想法成功这样的事情已经习以为常了。不过,满意外的是,今天回头看看,当初那些想法现在逐渐都有了结局。 故事1:我曾经写过一篇关于effort reuse的blog提倡virtual feature team。原帖在这里:http://wesleybao.spaces.live.com/Blog/cns!B8C72620C46CF4CA!2855.entry 差不多时候,或者更早一些,我也曾经把这个想法用英文写了一遍email给公司内部一些相关的人。没有发All of XXXX 这样的distribution list,只是小范围讨论,抄送的人中最高级别也就director。收到一些feedback,不过貌似没有人支持这样做。 现在,我们公司已经开始这样做了。我在Outlook的address book里看到了virtual team的email distribution list,在SharePoint portal上看到了相关的sub site和discussion thread。 故事2:2006年3月,我写过这样一篇blog推崇virtual appliance: http://wesleybao.spaces.live.com/Blog/cns!B8C72620C46CF4CA!1158.entry 。 不过当时并没有跟自己公司的任何人提,除了有同事看到blog后跟我做纯技术的讨论。因为我觉得这个技术当时还处于早期市场阶段,还没有cross the chasm,还没到应该投入resource去做的时候。 然后,到了2006年的年底,也可能是2007年的年初。反正那个时候我在波士顿忍受着暴风雪的肆虐。那时候我的唯一工作就是使劲写project proposal。除了一些其他的proposal之外,我觉得当时时间差不多了,就写了个PPT发给老板建议进入virtual appliance市场。当时我的老板是一位Senior Director of Engineering,我老板的老板是VP of Engineering。基本上所有的proposal都被转发给了那位VP of Engineering过目。不过一直没有下文。再后来我的老板辞职了,于是我就临时性地直接report给VP of Engineering,但这些proposal还都是石沉大海没有下文。再后来我离开东海岸来到加州做其他事情了,也就不再去关心了。然后有一次偶尔想起,就问了一下,得知我当时的proposal都被拿到due diligence team去做market & technical due diligence了。再后来,也就是今年年初,公司高层忽然在内部高调宣布我们要进入virtual appliance市场。哦,我在blog里写这个也不算泄露商业机密,因为Google了一下后发现有4月份的新闻提到这个事情了。 关于现在进入这个市场时机是否正好,我就不评论了。我记得Gartner还是哪家analyst的report会有一个hype wave的图表,告诉大家哪项技术现在走到了哪个位置的,感兴趣的同学可以去找来看看。 还有一些故事,现在还不好在这里公开说。 那么,我在这里再提一个想法,看一下多久会变成现实。 Problem:我看到R&D engineer基本都是每人有好几台电脑,一台电脑(很可能是Laptop)用来办公(上网和收信以及写文档写PPT),这台电脑可能装的Windows也可能是Mac OS X;一台电脑(多半是台式机)用来做Windows下面的开发;一台电脑用来做Linux下面的开发;可能还有一些电脑用来测试。有的软件还需要好几台机器来测试。每有一个新人加入这个team,就需要给他订购一堆电脑,然后告诉他怎么把开发环境搭起来,怎么样配置SCM工具的客户端,怎么样做local build,怎么样把测试环境搭起来。基本上光是装软件就需要一整天功夫。如果开发环境需要从头编译toolchain的话,可能要好几天时间。 Solution:R&D engineer每人有一台laptop就够了。然后再给他们配2个19寸或者1个24寸的显示器放在办公桌上。其他所有的办公环境开发环境构建环境测试环境都做成VMware的image,host在公司的data center的virtual infrastructure上面,按需使用。办公环境和开发环境每人都基于标准image来personalize然后保存成自己的image。测试环境则可以是相同的image跑多个instance。 好处是显而易见的。省了很多重复的装软件搭环境的时间,新人加入team后可以减少ramp up的时间,尽快开始投入工作。也避免了很多因为大家开发测试环境差别而导致的问题。还可以少买很多电脑,也就省了维护这些电脑的麻烦。大家的办公室也可以美观整洁很多。 Let's see what will happen :) |
|
|