本文发表于一年多前。旧文章可能包含过时内容。请检查页面中的信息自发布以来是否已变得不正确。

每秒百万次请求:规模化可靠且动态的分布式系统

最近,我养成了告诉别人构建可靠服务并不难的习惯。如果你给我两台 Compute Engine 虚拟机、一个 Cloud Load Balancer、supervisord 和 nginx,我可以为你创建一个静态 Web 服务,它将永久有效地提供静态网页。

真正的挑战是构建敏捷**且**可靠的服务。在新的软件开发世界中,启动大量机器并将软件推送到它们是微不足道的。开发成功的产品**还必须**包括以可预测的方式响应变化、优雅地处理升级以及最大限度地减少用户停机时间的能力。缺少任何一个元素都会导致产品**失败**,变得不稳定和不可靠。我记得不久前,网站每天午夜左右会离线一小时,作为软件升级的安全窗口是很常见的。我的银行现在仍然这样做。这真的很不酷。

幸运的是,对于开发人员来说,我们的基础设施正在随着我们对其提出的要求而发展。Kubernetes 从一开始就被设计成易于设计、开发和部署可靠、动态的服务,以满足云原生世界的严苛要求。

为了准确展示我们所说的含义,我开发了一个简单的演示,展示了 Container Engine 集群每秒处理 100 万个 HTTP 请求。老实说,每秒处理 100 万个请求并不是那么令人兴奋。事实上,这真的很 2013 年了

**令人兴奋的是**,在成功处理每秒 100 万个 HTTP 请求且不间断可用性的同时,我们让 Kubernetes 对服务进行了零停机滚动升级到新版本的软件,**而且我们**仍然在处理每秒 100 万个请求。

这只有通过 Kubernetes 1.1 版本中包含的大量性能调整和增强功能才能实现。我为我们社区在此版本中构建的所有功能感到无比自豪。事实上,除了实现每秒处理 100 万个请求之外,我们还添加了自动扩缩器,这样您甚至不必在半夜醒来,就可以根据负载或内存压力来扩缩服务。

如果您想在自己的集群上试用此功能(或使用负载测试框架来测试自己的服务),演示代码可在 GitHub 上获取完整视频也已提供。

我希望我已经向您展示了 Kubernetes 如何使分布式系统开发人员能够在大规模上实现可靠性和敏捷性。一如既往,如果您有兴趣了解更多信息,请访问 kubernetes.ioGitHub,并在我们的 Slack 频道与社区联系。 

"https://www.youtube.com/embed/7TOWLerX0Ps"