Yahoo!社区架构

| 7 Comments

旧金山举行的 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--

7 Comments

就不知Yahoo! 将这些本是OpenSource的软件改装下就变成自己的Y系列,是否违背GPL ?

These contents is very usefull and valuable.

Thank you very much.

Like a spam :)

我倒是以为,放弃FreeBSD的原因在于
1. DBMS厂商对FreeBSD的支持力度为零
2. 前后台维护技能的一致化,如果平台差异太多,人力资源成本很高的

另外,楼上,你看来没读过GPL。
如果我不出售GPL软件,爱怎么改怎么改。

FreeBSD 对高端一点的服务器似乎就没有什么企图,而 Linux 几乎一直向高端突破

另外,Yahoo! 向 RedHat 转换成本也很高的

昨天下午看到"车东"的帖子后, 立马全部下载了, 正在仔细研究,并与我们的 System Architect 一起探讨我们未来的方向.

昨天 Amazon.com 的 数据仓库DBA 过来和我们交流, 主要是介绍 TimesTen, 下个版本会支持PL/SQL.

如今, Amazon 的数据仓库已经60TB X 2了, 跑两套并行系统, 都是16 Nodes RAC (4CPU) on Linux, Oracle 10.2.

不明白为啥跑两套数据仓库, 光是存储, 就浪费掉60TB.

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

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

关于本文

This page contains a single entry by Fenng published on November 21, 2007 10:01 PM.

Tailrank 网站架构 was the previous entry in this blog.

分享几句话 is the next entry in this blog.

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