公司 网易 地点 中国杭州 行业 互联网技术

挑战

网易的游戏业务是全球最大的游戏业务之一,但这并不是网易为中国消费者提供的全部服务。该公司还经营电子商务、广告、音乐流媒体、在线教育和电子邮件平台;其中最后一个平台通过163.com等网站为近 10 亿用户提供免费电子邮件服务。2015 年,为所有这些系统提供基础设施的网易云团队意识到,他们的研发流程正在拖慢开发人员的速度。网易云和容器服务架构师冯常健表示:“我们的用户需要自己准备所有的基础设施。我们渴望通过无服务器容器服务自动为用户提供基础设施和工具。”

解决方案

在考虑构建自己的编排解决方案后,网易决定将其私有云平台建立在Kubernetes之上。该技术源自谷歌,这让团队相信它能够跟上网易的规模。冯说:“经过 2 到 3 个月的评估,我们相信它能够满足我们的需求。”该团队在 2015 年 Kubernetes 尚未达到 1.0 版本时就开始使用它。如今,网易内部云平台(该平台还利用了 CNCF 项目PrometheusEnvoyHarborgRPCHelm)在一个生产集群中运行着 10,000 个节点,并且在一个集群中最多可以支持 30,000 个节点。基于其从内部平台获得的经验,该公司推出了一款基于 Kubernetes 的云和面向微服务的 PaaS 产品网易轻舟微服务,面向外部客户。

影响

网易团队报告称,Kubernetes 将研发效率提高了 100% 以上。部署效率提高了 280%。冯说:“过去,如果我们想要进行升级,我们需要与其他团队合作,甚至与其他部门合作。我们需要专门的人员来准备一切,所以大约需要半个小时。现在我们只需要 5 分钟就可以完成。”新平台还允许使用 GPU 和 CPU 资源进行混合部署。他说:“以前,如果我们将所有资源都投入到 GPU 上,我们就不会有剩余的资源用于 CPU。但现在,由于混合部署,我们已经取得了进步。”这些改进也带来了资源利用率的提高。

网易的游戏业务是全球第五大游戏业务,但这并不是网易为消费者提供的全部服务。

该公司还在中国经营电子商务、广告、音乐流媒体、在线教育和电子邮件平台;其中最后一个平台通过163.com126.com等热门网站为近 10 亿用户提供免费电子邮件服务。在如此规模的情况下,为所有这些系统提供基础设施的网易云团队在 2015 年意识到,他们的研发流程让开发人员难以跟上需求。网易云和容器服务架构师冯常健表示:“我们的用户需要自己准备所有的基础设施。我们渴望通过无服务器容器服务自动为用户提供基础设施和工具。”

在考虑构建自己的编排解决方案后,网易决定将其私有云平台建立在Kubernetes之上。该技术源自谷歌,这让团队相信它能够跟上网易的规模。冯说:“经过 2 到 3 个月的评估,我们相信它能够满足我们的需求。”

该团队在 2015 年 Kubernetes 尚未达到 1.0 版本时就开始采用它,因为它相对易于使用,并且能够在公司内部实现 DevOps。冯说:“我们放弃了 Kubernetes 的一些概念;我们只想使用标准化的框架。我们利用了 Kubernetes 的可编程性,因此我们可以构建一个平台来满足内部客户对升级和部署的需求。”

该团队首先专注于构建容器平台以更好地管理资源,然后通过添加监控等内部系统将注意力转向改进其对微服务的支持。这意味着集成了 CNCF 项目PrometheusEnvoyHarborgRPCHelm。冯说:“我们正在努力提供一个简化和标准化的流程,以便我们的用户和客户可以利用我们的最佳实践。”

该团队正在继续进行改进。例如,该企业的电子商务部分需要利用混合部署,这在过去需要使用两个独立的平台:基础设施即服务平台和 Kubernetes 平台。最近,网易创建了一个跨平台应用程序,可以通过一个命令部署来使用这两个平台。

如今,网易内部云平台“可以在单个集群中支持 30,000 个节点,”架构师曾宇星说。“在生产中,我们已经在一个集群中获得了 10,000 个节点的数据。整个内部系统都在使用该系统进行开发、测试和生产。”

网易团队报告称,Kubernetes 将研发效率提高了 100% 以上。部署效率提高了 280%。冯说:“过去,如果我们想要进行升级,我们需要与其他团队合作,甚至与其他部门合作。我们需要专门的人员来准备一切,所以大约需要半个小时。现在我们只需要 5 分钟就可以完成。”新平台还允许使用 GPU 和 CPU 资源进行混合部署。“以前,如果我们将所有资源都投入到 GPU 上,我们就不会有剩余的资源用于 CPU。但现在,由于混合部署,我们已经取得了进步。”这些改进也带来了资源利用率的提高。

基于使用其内部平台获得的结果和经验,该公司推出了一款基于 Kubernetes 的云和面向微服务的 PaaS 产品网易轻舟微服务,面向外部客户。曾说:“我们的想法是,我们可以找到我们的游戏、电子商务和云音乐提供商遇到的问题,这样我们就可以整合他们的经验,并提供一个平台来满足我们用户的需求。”

无论是否使用网易的产品,该团队都鼓励其他公司尝试 Kubernetes。Kubernetes 开发人员李兰青说:“只要一家公司拥有一支成熟的团队和足够多的开发人员,我认为 Kubernetes 是一项非常好的技术,可以帮助他们。”

作为最终用户和供应商,网易更多地参与到社区中,向其他公司学习并分享他们的经验。该团队一直在为 Harbor 和 Envoy 项目做出贡献,并在网易规模下测试这些技术时提供反馈。冯说:“我们是一个专注于解决微服务架构挑战的团队。通过参与这个社区,我们可以从中获得一些经验,我们也可以从中受益。我们可以看到社区面临的哪些问题和挑战,所以我们可以参与其中。”