• 欢迎访问极客公园网站,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入极客公园 QQ群
  • Git主题现已支持滚动公告栏功能,兼容其他浏览器,看到的就是咯,在后台最新消息那里用li标签添加即可。
  • 最新版Git主题已支持说说碎语功能,可像添加文章一样直接添加说说,新建说说页面即可,最后重新保存固定连接,演示地址
  • 百度口碑求点赞啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊http://koubei.baidu.com/s/gitcafe.net
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏极客公园吧

Ravelry的Rails架构

未分类 博客教主 15年前 (2010-07-11) 1309次浏览 0个评论

看多了超大规模高性能、超大数据库架构,有必要回到现实看看中等规模网站是如何架构的,毕竟不是每个网站、web app 都有机会做成 Google/Yahoo/Facebook/Amazon 那样。Ravelry 是一家用 Ruby on Rails 搭建的社区网站,学习一下 Ravelry 的 Rails 架构经验。

数据

数据和资料来源(2009):Ravelry

43万注册用户
每个月约20万用户上线,每天约7万用户登录
每天约360万 PV(只包括注册用户,不包括其他途径访问),实际 PV 大概1000万每天
每天约900新用户注册
论坛每天发布约5万个新帖
网站有230万个项目、190万个帖子、130万条消息、800万张图片(大部分保存在 Flickr)
包括创始人在内公司一共才3.5个人(其中一个是 part time)

技术架构

Ravelry 使用了以下一些 Open Source 项目和技术:

Gentoo Linux
MySQL
Ruby Enterprise Edition
Memcached
Nginx/HAProxy/Apache + mod_passenger
Tokyo Cabinet/Tyrant
Sphinx
Xen
Munin/Nagios/Syslog-ng
Amazon S3/Cloudfront

Ravelry 刚开始运行在一个 VPS 上,随着网站规模的变大逐渐转向自己的硬件,服务器是从 Silicon Mechanics 购买的,托管在 Hosted Solutions 和 Cogent。Ravelry 使用 Amazon S3 做存储,Amazon CloudFront 做 CDN。

Ravelry 目前总共有7台物理服务器,Xen 虚拟化后成13台,使用 Gentoo Linux 操作系统。其中:

  • 1台用来备份,1台用来测试;
  • 1台用来做 master 数据库服务器,1台做 slave 数据库服务器 + Sphinx 搜索引擎;
  • 另外3台用来做应用服务器,运行 Passenger,Ruby Enterprise Edition 和 Memcached。使用 Passenger 和 Ruby GC patches 节省了大量内存。

前端服务的架构大概像这样:nginx -> haproxy -> apache + mod_passenger,Ravelry 的创始人 Casey 提到他们主要的 scaling/tuning/performance 方面的工作还是集中在数据库部分。

Ravelry 使用 Capistrano 来快速部署新版本的网站程序,使用 Munin 来监测服务器资源、Nagios 来警告、Syslog-ng 来做日志,使用 Memcached 来缓存数据库对象,部分需要缓存 larger object 的地方用到了 Tokyo Cabinet/Tyrant。Ravelry 几乎把站内所有的用到 Markdown 标记语法的页面都缓存成了普通的 HTML。

Ravelry 在开始上线的头几个月几乎每天都会修正 bug、推出新版本,得益于 Ruby 的快速开和 prototype 的能力。Casey 说,Ruby is fun! Fun is important.

作者:vpsee


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Ravelry的Rails架构
喜欢 (0)

您必须 登录 才能发表评论!