原作者
JeffAtwood
JoelSpolsky
译者简介
严睿
工程师、开源粉、深度阅读爱好者。目前就职于中盈优创,负责运营商网络管理项目技术管理,致力于高可用架构改进、DevOps团队建设。
架构概述
StackOverflow是一个著名的程序相关的技术问答社区,由JeffAtwood和JoelSpolsky这两个非常著名的Blogger在年创建,他们也是本文的原作者。
StackOverflow目前全球排名第56名,日均PV为1.7亿(根据alexa.cn在年6月5日的数据)。其架构既有商业外包服务,也大量采用开源软件,可以全景式展现当代主流架构的风貌,StackOverflow可以分解为八个切面:
互联网
负载均衡
web层
服务层
缓存
推送
搜索
数据库
其架构图如下所示:
架构原则
StackOverflow架构中最重要的一个原则就是:
Everythingisredundant
即一切都有冗余
两个数据中心:纽约和科罗拉多,冗余且持续备份。
其它所有关键组件都尽可能贯彻冗余原则。
物理架构
4台MicrosoftSQLServer服务器(其中2台使用了新的硬件)
11台IISWeb服务器(新的硬件)
2台Redis服务器(新的硬件)
3台标签引擎服务器(其中2台使用了新的硬件)
3台Elasticsearch服务器(同上)
4台HAProxy负载均衡服务器(添加了2台,用于支持CloudFlare)
2台网络设备(Nexus核心+TMFabricExtender,升级到10Gbps带宽)
2台FortinetC防火墙(取代了Cisco-XASAs)
2台CiscoASR-路由器(取代了Cisco路由器)
2台CiscoASR--x路由器
逻辑架构
TheInternets互联网
DNS服务:外包CloudFlare+自建DNS
其实外包DNS服务应该已经可以满足服务,不过出于保险起见,还是有一套自建的DNSServer。
看来trustissues中外一致啊。
LoadBalancers负载均衡
HAProxy1.5.15onCentOS7
支持TLS(SSL)流量。
可