Yahoo!社区架构

旧金山举行的 QCon 会议带给我们很多新鲜的信息。虽然没机会参加,但是看看各个网站”晒架构”也是个比较过瘾的事情。请参观并收藏这个页面:Architectures you’ve always wondered about

eBay 的架构和去年相比基本是换汤不换药,倒是 Yahoo! 的 Ian Flint(这位老兄是 Bix 的运营总监. Bix 已被雅虎收购) 这个 PPT Yahoo! Communities Architecture: Unlikely Bedfellows 挺有意思,披露了一些鲜为人知的信息。

Yahoo! 社区包括我们比较熟悉的 del.icio.usFlickr、Yahoo!群组、Yahoo! Mail、Bix等。相当于 Yahoo!把这些属性相近的应用放到一起运营。这个思路倒是和盛大对游戏的运营有些相近。

架构特点

有两点值得注意:1)层次化 2)模块化。这也是大规模作业下的比较经济的途径。

软件架构

首先是操作系统已经从 FreeBSD 逐渐迁移到 RHEL。这怕是雅虎不得已作出来的决定吧。FreeBSD 的开发力量的确不如 Linux,这也是不争的事实。数据库上 MySQL 与 Oracle 都有。Yahoo! 在 DW/BI 用的是 Oracle,构建了一个超大数据库。诸如 yapache、yts(反向代理服务器)、yfor(提供快速失败接管)、 ymon(监控),还有还有ysquid、ypan(cpan的 Yahoo! 克隆) 这些组件都是通过 yinst 来统计部署。关于 Yapache,请参考我以前写的 Yapache-Yahoo! Apache 的秘密

这是 Bix 与 DB 有关的部署架构:
Yahoo_soft_arch.png

数据放在 Netapp NAS 上(所以有的时候应用之慢也可以理解了),通过快照复制到其他数据中心。

Yahoo! Mail 架构:
Yahoo_Mail_arch.png

这里面居然部署了 Oracle RAC,用来存储 Mail 服务相关的 Meta 数据。非常有趣。

运营维护

监控工具主要用的是 Nagios,用以监控集群。使用标准插件,另外也有自行定制的插件。Nagios 这东西太棒了。主动、被动检查的消息转发是通过 Ymon 来做到。网管上针对 SNMP 的解决方案是用 Yahoo!自己 Y 字头的 Ywatch。这些 Y 字头的东西基本上外面都是找不到的。Yahoo!的技术其实并不那么开放。Google 在运营这方面也好不到什么地方去。趋势图用 Drraw 展现。Drraw 是基于 RRDtool 的 Web 展现工具。

Yahoo_ops.png

应用服务器的监控是被动的。整个监控系统模块化部署。Nagios 的警告信息转发到 Ywatch 中心控制台。

Note: 上面所有截图版权都属于 Ian (Image COPYRIGHT@IAN) 。如果去看那个 PDF 文件,你或许比我收获更多。我只是让你知道我的想法而已。

EOF

此文作者:, 位于 Arch 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

7 thoughts on “Yahoo!社区架构

  1. player

    我倒是以为,放弃FreeBSD的原因在于
    1. DBMS厂商对FreeBSD的支持力度为零
    2. 前后台维护技能的一致化,如果平台差异太多,人力资源成本很高的
    另外,楼上,你看来没读过GPL
    如果我不出售GPL软件,爱怎么改怎么改。

    Reply
  2. Fenng

    FreeBSD 对高端一点的服务器似乎就没有什么企图,而 Linux 几乎一直向高端突破
    另外,Yahoo! 向 RedHat 转换成本也很高的

    Reply
  3. 木匠

    昨天下午看到”车东”的帖子后, 立马全部下载了, 正在仔细研究,并与我们的 System Architect 一起探讨我们未来的方向.
    昨天 Amazon.com 的 数据仓库DBA 过来和我们交流, 主要是介绍 TimesTen, 下个版本会支持PL/SQL.
    如今, Amazon 的数据仓库已经60TB X 2了, 跑两套并行系统, 都是16 Nodes RAC (4CPU) on Linux, Oracle 10.2.
    不明白为啥跑两套数据仓库, 光是存储, 就浪费掉60TB.

    Reply
  4. 一米六二

    嘿 嘿
    从BSD迁移到RHEL成本很高的
    巨多东西都用不了
    原来有强大的YROOT,一台物理机上部一堆虚拟机
    ,现在在rhel下,好日子就到头了

    Reply
  5. cayson

    freebsd 的稳定性及高性能都是作为web服务器首选,如果你感觉商业数据库厂商对他的支持力度不够,大可以把db server 架设在linux上;我个人觉得freebsd和linux两个社区都有各自的处世哲学,相对来说,linux更加自由开发,而freebsd拥有统一和简洁的优势!

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *