告别物理数据中心:Stack Overflow全面迁移云端的技术之旅
再见,感谢所有的比特!
自2010年10月起,所有Stack Exchange网站都运行在纽约市(实际位于新泽西)数据中心的物理硬件上。这些服务器在我们的历史和心中都占据着特殊的位置。当我刚加入公司并在纽约办公室工作时,我看到最初的服务器像心爱的宠物一样被安装在墙上,还配有褒奖牌匾。多年来,我们分享过服务器机架的炫酷照片和更新信息。
在我们近16年的存在中,SRE团队管理了所有数据中心操作,包括物理服务器、布线、上架、更换故障磁盘以及其间的一切工作。这项工作需要有人亲自到数据中心操作机器。
我们现在已将所有站点迁移到云端。我们的服务器现在是"牲畜"而非"宠物"。没有人需要开车到新泽西数据中心更换或重启硬件。在上周之后更是如此。
这是因为在7月2日,为预期数据中心的关闭,我们下架了所有服务器,拔掉了所有线缆,为这些曾经强大的机器举行了最后的谢幕。过去几年,我们一直在计划拥抱云端,并将我们的基础设施完全迁移到那里。我们在2023年将Stack Overflow for Teams迁移到Azure,并证明了我们可以做到。现在我们只需要处理托管在Google Cloud上的公共站点(Stack Overflow和Stack Exchange网络)。去年初,我们在新泽西的数据中心供应商决定关闭该地点,我们需要在2025年7月前搬离。
我们的另一个数据中心——位于科罗拉多州——已在6月退役。它主要用于灾难恢复,而我们现在不再需要了。Stack Overflow不再拥有任何物理数据中心或办公室;我们完全在云端和远程工作!
特别感谢SRE团队以及许多其他帮助实现这一目标的人员。我们很快会有几篇博客讨论将Stack Exchange站点迁移到云端的过程,但现在,请欣赏这些照片。
我们在该地点共有约50台服务器。这是当天开始时服务器的样子:
每台机器八根(或更多)线缆乘以50多台机器就是大量线缆!在上图中你可以看到大捆的线缆。尽管它们被整齐地包装在小笼子(称为"臂")中,每台服务器一个,但拆除这么多主机的线缆是一项繁重的工作。
为什么每台机器需要这么多线缆?这是一张展示各条单独线缆的摆拍照片:
- 蓝色:1根1G以太网电缆,用于管理网络(远程访问)
- 黑色:1根电缆,将VGA视频和USB(键盘和鼠标)信号传输到"KVM交换机"。通过KVM交换机,我们可以连接到数据中心任何机器的键盘/视频/鼠标。虽然昂贵但值得。在紧急情况下,我们无需离开家就能"站在机器前"
- 红色:2根10G以太网电缆连接到主网络
- 黑色:另外2根10G以太网电缆连接到主网络(仅限需要额外带宽的机器,如我们的SQL服务器)
- 白+蓝色:2根电源线(每条连接到不同的电路,用于冗余)
硬件爱好者应该会欣赏这些。但接下来是拆卸它们的时候。我们的高级站点可靠性工程师Josh Zhang有些感慨。“几年前我安装了新的web层服务器作为计划升级的一部分,“他说,“现在由我来下架它们,真是苦乐参半。“这是IT版的《老黄狗》。
我们假设大多数数据中心关闭都会保留某些机器以迁移到新数据中心。然而,在我们的情况下,所有机器都将被处理掉。这让我们能够自由地快速行动并打破常规。如果它在我们笼子里,它就会去处理公司。出于安全原因(以及保护所有用户和客户的PII),所有东西都被粉碎和/或销毁。没有保留任何东西。正如我们的可靠性工程总监Ellora Praharaj所说:“不再需要温柔了。”
清理机架有两个步骤:首先我们拆除所有机器的线缆,然后下架它们。这里是一些正在拆除线缆的机架。任何可回收的物品都已被移除。因此,我们不需要整洁,也不需要小心。在这里你可以看到处于不同拆除线缆阶段的机架。之后,大捆的线缆被扔到大堆上。
曾经遇到过断开RJ45电缆的困难吗?好吧,这是我们直接剪断这些该死的东西而不是弄清楚为什么小卡扣不会释放插头的机会。
垃圾堆。我们的拆除线缆过程包括将所有东西扔到房间的角落,直到我们意识到可能挡住了唯一的出口。然后我们堆得更高,而不是更宽。
所有服务器和网络设备都被堆放在地板上。总共七堆。
这是2015年左右我们建造所有这些时的"之前"图片,还是我们拆除所有东西时的"之后"图片?让你猜猜!
就这样,各位!
特别感谢Ellora Praharaj、Tom Limoncelli和Josh Zhang提供的图片和信息。以及完成繁重的工作。