趁着去旧金山的机会,参观下硅谷的一些公司也是重要的行程,这次我们主要拜访了位于旧金山城内的Terracotta,位于硅谷的Google和Facebook,和这些公司的交流确实让我们学习到了更多的东西,分别来看看。
Terracotta最近的风头很盛,很多地方都能看到关于他们的BigMemory的介绍,BigMemory集成到了Ehcache,从而为开发人员提供了一个很透明的多层cache,层次为jvm堆内的cache–>jvm堆外的cache–>disk–>分布式的cache
server,随着层次的增加,访问的速度越来越慢,但可缓存的数据则越来越多,这个层次设计的确实非常不错,同时带来的好处也非常明显,可缓存的数据就可以变得非常大了,jvm堆外的cache貌似其采用的是Direct
ByteBuffer实现,因此当访问堆外的cache时,需要进行序列化/反序列化,速度会有所下降。
说到工作气氛方面,到Terracotta的时候,就看到了中间有个巨大的桶,放了很多冰冻的啤酒,开会的同学们每人一瓶啤酒,吃着零食,:)
Google
Google是一个非正式的交流,因此在技术上没有太大的东西,了解到的信息只有:google的fellow是很少的,大概只有4–5个;系统的发布只需要点击下reload即可实现;通常不需要登录到生产环境机器查找问题,问题主要是通过monitor来报告,通过一个http的页面查看程序的具体运行状况来发现问题,不过每个team可能会不一样;如需要使用bigtable这类基础的东西,只需要申请即可,环境、运维等均由bigtable
team来处理。
在Google吃了午饭,确实名不虚传,好吃呀,另外google的工作环境好像和传说中的有点不一样,工作区域是由一个又一个的透明房间组成,每个房间大概坐4个人,免费的饮料、零食到处都是,也很好吃,:),可以带宠物上班,午餐后很多人在遛狗,打沙滩排球,上班时间很弹性,一堆人都在10点后才开始上班。
著名的google自行车
google园区一
google园区二
google园区内的沙滩排球
Facebook
和Facebook的交流非常不错,能感觉到他们技术人员获得的巨大成就感和荣耀感,并且这也是一家很open的公司,先后和他们开放平台的人、 MySQL DBA以及自建DataCenter的人进行了交流,和开放平台交流的部分cenwenchu同学(http://blog.csdn.net /cenwenchu79/)会介绍,我还是说说和他们MySQL DBA以及自建DataCenter的人的交流。
和MySQL DBA的交流
他们的团队才4–5个人,太让人惊讶了,果然是典型的精英文化呀,在没招google的那个mysql高人之前,他们从来就不修改mysql的代码,而是由他们clever的工程师绕过各种各样的bug,但自从招了google的这位高人后,他们就在mysql上提交了一堆的patch(详细见
www.facebook.com/mysqlatfacebook),其中就有最近很火的online schema change
tool,这也是他们的文化:hire for good people,and listen to them。
为什么他们4–5个人能维护这么多的MySQL数据库呢,他们保障网站的可用性采取的两层团队,第一层是直接维护网站可用性的,当出现问题时他们可以处理大部分的问题;处理不了的问题将流转到mysql
DBA,应用的owner,对于这些处理不了的问题MySQL
DBA,应用的owner在之后都会想办法写一堆的tools来帮助第一层维护团队在以后能自助解决,因此在Facebook有一堆的工具,twitter最近也写了一篇文章(http://engineering.twitter.com/2010/09/tool- legit.html)来说他们对于工具的重视,在说网站的可用性保障这件事是,他们说到的另外一句话让我很感动,就是说到每个开发人员的心里都认为网站的可用性保障是他们的职责,因此都会把这事看得非常重要,并为之付出努力。
MySQL采用M-S结构,通过replication实现对等复制,之所以不采用不对等复制是为了避免维护的复杂,美国东西海岸的datacenter的延时大概为70ms。
Facebook网站严重依赖cache,差不多95%的流量会走入cache,剩下的5%才会走到MySQL,没有什么流量保护措施,因此一旦 cache挂了,就会非常严重,这也就是9月23日Facebook出现的故障(http://www.facebook.com /note.php?note_id=431441338919),cache都是访问同datacenter的,一旦当前datacenter的 cache出现问题,并不会调度到其他的datacenter。
交流时说到Facebook的一个活动,挺好玩,就是每隔一段时间,会在一个晚上让大家来做自己感兴趣的事,做一个通宵,然后通过演示来向大家讲解,好的东西就入选成为产品。
和自建DataCenter的人的交流
Facebook从今年开始了自建datacenter(http://www.facebook.com /prinevilledatacenter),以前的也都是租的,这个自建的datacenter大概会在明年年初上线,方式和google的基本一样,也是自己设计服务器,我问了下datacenter建设的人才是如何培养或招聘的,他们说美国这类人才其实还是比较多的,而服务器设计方面的人才主要还是来源于google。
Facebook的人说到,当服务器多了后,自建几乎就是必须的了,而且能源问题将成为巨大的问题。
在datacenter上耗费时间最多的是选址,因为涉及到能源问题,政府支持的问题,:)
Facebook很重视机器的使用效率,据说他们现在机器的使用效率比google还高。
Facebook的工作环境是开放式的,显示屏很大,应该都是30寸以上了,CEO就坐在中间一个透明的房子里,:),免费的饮料和零食也一样到处都是。
低调的Facebook门牌
Facebook参观者留言板
Facebook的球,参观者贴在身上的纸条最终将贴回到这个球上,这个很有意义,看看到Facebook上市那天,这个球会变成多大。