学习之--Stack Exchange网站架构

Stack Exchange系统管理员blog 上发布了一篇架构的文章。

网络流量

  • 每月95M的PV
  • 每秒800个HTTP请求
  • 每秒180个DNS请求
  • 每秒55Mb的网络带宽

数据中心

  • 1个机柜位于俄勒冈的Peak Internet(用于chat和Data Explorer)
  • 2个机柜位于纽约的Peer 1 (用于其他的Stack Exchange Network)

生产服务器

  • 12 Web Servers (Windows Server 2008 R2)
  • 2 Database Servers (Windows Server 2008 R2 and SQL Server 2008 R2)
  • 2 Load Balancers (Ubuntu Server and HAProxy)
  • 2 Caching Servers (Redis on CentOS)
  • 1 Router / Firewall (Ubuntu Server)
  • 3 DNS Servers (Bind on CentOS)

所有的软件和技术

  • 开发语言: C# / .NET
  • 持续构建服务器: CruiseControl.NET
  • 源码管理: Mercurial / Kiln
  • 操作系统: Windows Server 2008 R2,Ubuntu Server,CentOS
  • 数据库服务器:SQL Server 2008 R2
  • DNS服务器:Bind
  • 负载均衡软件:HAProxy
  • 缓存服务器:Redis
  • 日志: Splunk
  • 搜索索引技术: Lucene.NET
  • 备份: Bacula
  • 系统监控: Nagios (with n2rrd and drraw plugins)
  • 监控SQL Server: SQL Monitor from Red Gate

程序员和系统管理员

  • 14 位程序员
  • 2 位系统管理员

(以上不含故障备份和管理服务器)
———————————————————–
分析:
1.使用了三种操作系统:Windows Server, CentOS, Ubuntu Server;共有22个服务器,三个机柜;
2.可能的架构:DNS Servers–Router/Firewall–Load Balancers–Web Servers–Caching Servers–Database Servers;
3.12个Web服务器每秒钟处理800个http请求,感觉投资回报比有点儿低;