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

挑战

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

解决方案

在考虑构建自己的编排解决方案后,网易决定将其私有云平台基于 Kubernetes。这项技术源自 Google 的事实,让团队相信它能够满足网易的规模需求。“经过我们两到三个月的评估,我们相信它能满足我们的需求,”冯昌健表示。团队于 2015 年开始使用 Kubernetes,那时它甚至还没有发布 1.0 版本。如今,网易内部云平台(该平台也利用了 CNCF 项目 PrometheusEnvoyHarborgRPCHelm)在生产集群中运行着 10,000 个节点,并且一个集群最多可以支持 30,000 个节点。基于从内部平台中学到的经验,网易向外部客户推出了基于 Kubernetes 的云和微服务导向的 PaaS 产品“网易轻舟微服务”。

影响

网易团队报告称,Kubernetes 使研发(R&D)效率提高了 100% 以上。部署效率提高了 280%。“过去,如果我们要进行升级,需要与其他团队协作,甚至跨部门,”冯昌健表示。“我们需要专门的人员准备一切,这大概需要半小时。现在只需要 5 分钟。”新平台还允许使用 GPU 和 CPU 资源进行混合部署。“以前,如果我们将所有资源都用于 GPU,就没有用于 CPU 的备用资源。但现在通过混合部署,我们得到了改进,”他说道。这些改进还带来了资源利用率的提升。

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

网易还在中国运营着电子商务、广告、音乐流媒体、在线教育和电子邮件平台;其中电子邮件平台通过 163.com126.com 等热门网站为近十亿用户提供免费电子邮件服务。凭借这种规模,为所有这些系统提供基础设施支持的网易云团队在 2015 年意识到,他们的研发(R&D)流程正在使开发人员难以跟上需求。“我们的用户需要自己准备所有基础设施,”网易云及容器服务架构师冯昌健表示。“我们非常希望通过无服务器容器服务自动为用户提供基础设施和工具。”

在考虑构建自己的编排解决方案后,网易决定将其私有云平台基于 Kubernetes。这项技术源自 Google 的事实,让团队相信它能够满足网易的规模需求。“经过我们两到三个月的评估,我们相信它能满足我们的需求,”冯昌健表示。

团队于 2015 年开始采用 Kubernetes,那时它甚至还没有发布 1.0 版本,因为它相对易于使用,并在公司内部实现了 DevOps。“我们放弃了 Kubernetes 的一些概念;我们只想使用其标准化的框架,”冯昌健表示。“我们利用了 Kubernetes 的可编程性,以便能够构建一个平台来满足我们内部客户的升级和部署需求。”

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

团队还在不断改进。例如,电子商务业务需要利用混合部署,这在过去需要使用两个独立的平台:基础设施即服务(IaaS)平台和 Kubernetes 平台。最近,网易创建了一个跨平台应用,可以通过一键部署同时使用这两个平台。

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

网易团队报告称,Kubernetes 使研发(R&D)效率提高了 100% 以上。部署效率提高了 280%。“过去,如果我们要进行升级,需要与其他团队协作,甚至跨部门,”冯昌健表示。“我们需要专门的人员准备一切,这大概需要半小时。现在只需要 5 分钟。”新平台还允许使用 GPU 和 CPU 资源进行混合部署。“以前,如果我们将所有资源都用于 GPU,就没有用于 CPU 的备用资源。但现在通过混合部署,我们得到了改进。”这些改进还带来了资源利用率的提升。

基于从内部平台使用中获得的结果和经验,网易向外部客户推出了基于 Kubernetes 的云和微服务导向的 PaaS 产品“网易轻舟微服务”。“我们的想法是,我们可以发现游戏、电子商务和云音乐提供商遇到的问题,然后整合他们的经验,提供一个平台来满足用户的需求,”曾宇星说道。

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

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