维基媒体 Wikimedia 正全面迁移至 Kubernetes

Kubernetes,让世界维基大变样

众所周知的非营利性维基媒体基金会,旗下包括全世界最大的协同编辑参考项目:维基百科。为帮助用户维护和使用维基,基金会成立了维基媒体工具实验室,在这个宿主环境里社区开发人员工作可以借助工具跟机器人帮助编辑和其他志愿者完成工作,还有减少破坏等。维基媒体工具实验室的周边社群在10 年前已开始形成。

维基媒体

“维基媒体工具实验室的关键作用是,确保全世界的维基以最佳状态运转。维基百科已经有近 10 年的历史,现在环境极其复杂,难以维护。现在它看起来像一个大泥球——让你看不透。有了 Kubernetes,我们可以简化环境,开发人员优化起来也更加便捷。
——维基媒体基金会和维基媒体工具实验室的运营工程师 Yuvi Panda

挑战:

  • 简化复杂,难管理的基础架构。
  • 允许开发人员用现有技术继续编写工具和机器人。

为什么选择 Kubernetes:

维基媒体工具实验室选择 Kubernetes 是因为 Kubernetes 可以在删繁就简的前提下模仿现有工作流程。

方法:

把旧系统和复杂基础设施迁转到 Kubernetes 上。

结果:

有 20% 的的网页工具现在运行在 Kubernetes 上(这些网页工具占据了 40% 的网页流量)。

Kubernetes 每个版本更新的时候,25 节点集群也会与之保持同步。感谢 Kubernetes,我们删除了数千行旧代码。

用 Kubernetes 产生工具维护维基

维基媒体工具实验室由四个全职员工,一个兼职员工和两个志愿者维护运营。已存在的基础设施并没有使得创建机器人和其他工具变得轻松,达到让维基运行更加轻松便捷的目的。Yuvi 说,“这简直乱成一团,填满了 Perl 和 Bash 的胶水语言。所有这一切,弱不堪击。

为了解决这个问题,维基媒体工具实验室将其基础设施部分迁移到 Kubernetes,以便最终移动整个系统。Yuvi 说 Kubernetes 大大简化了维护过程。目的就是可以让开发人员用他们喜欢的开发方法来创建机器人和其他工具,同时让维基媒体工具实验室更加轻松地对托管、分享所需的基础设施进行维护。

“有了 Kubernetes,我就可以删除很多定制的代码,维护起来更加方便。用户代码也比以前更稳定了“Yuvi 说。

简化基础设施使维基更好地运行

维基媒体工具实验室一开始使用 Kubernetes 部署就获得了极大的成功。老代码会被慢慢简化跟删除,贡献开发人员不必改变他们编写工具和机器人的方式,这些工具和机器人可以比以往更稳定的运行。这些问题修复之后,维基百科的工作人员和志愿者也能够更好地运营网站。

未来,在全面迁移到 Kubernetes 后,维基媒体工具实验室希望能够更容易地托管和维护帮助在全世界运行 Wiki 的机器人和工具。该工具实验室已经从 800 名志愿者中接管了大约 1300 个工具和机器人,每天还有更多的工具和机器人被提交。工具实验室中 20% 的网页工具现在运行在 Kubernetes 上(这些网页工具承载了 60% 的网页流量)。工具实验室有一个 25 节点的集群,与每个新的 Kubernetes 版本保持一致。许多现有的网页工具正在迁移到Kubernetes。

“我们希望世界各地的人们都能便捷地分享知识。 Kubernetes 助我们一臂之力,让世界各地的维基能够更加轻松地使用他们赖以生存的工具。”Yuvi 说。