挑战
网易的游戏业务是全球最大的游戏业务之一,但这并非网易为中国消费者提供的全部。该公司还运营电子商务、广告、音乐流媒体、在线教育和电子邮件平台;其中电子邮件平台通过163.com等网站为近十亿用户提供免费电子邮件服务。2015年,为所有这些系统提供基础设施的网易云团队意识到,他们的研发流程正在拖慢开发人员的速度。“我们的用户需要自行准备所有基础设施,”网易云及容器服务架构师冯昌健表示,“我们渴望通过无服务器容器服务自动为用户提供基础设施和工具。”
解决方案
在考虑了构建自己的编排解决方案后,网易决定将其私有云平台基于Kubernetes。该技术源自谷歌的事实让团队相信它能够满足网易的规模需求。“经过两到三个月的评估,我们相信它能够满足我们的需求,”冯昌健说。团队于2015年开始使用Kubernetes,甚至在1.0版本发布之前。如今,网易内部云平台——该平台还利用了CNCF项目Prometheus、Envoy、Harbor、gRPC和Helm——在生产集群中运行着10,000个节点,并且可以在一个集群中支持多达30,000个节点。基于其内部平台的经验,公司向外部客户推出了基于Kubernetes的云和微服务导向的PaaS产品——网易轻舟微服务。
影响
网易团队报告称,Kubernetes 将研发效率提高了 100% 以上。部署效率提高了 280%。“过去,如果我们想进行升级,需要与其他团队,甚至其他部门合作,”冯昌健说,“我们需要专门人员来准备一切,大约需要半小时。现在我们只需 5 分钟就能完成。”新平台还允许使用 GPU 和 CPU 资源进行混合部署。“以前,如果我们将所有资源都投入到 GPU 上,那么就不会有备用资源给 CPU。但现在,由于混合部署,我们取得了改进,”他说。这些改进还带来了资源利用率的提高。
该公司还在中国运营电子商务、广告、音乐流媒体、在线教育和电子邮件平台;其中电子邮件平台通过163.com和126.com等热门网站为近十亿用户提供免费电子邮件服务。拥有如此大规模,为所有这些系统提供基础设施的网易云团队在2015年意识到,他们的研发流程使开发人员难以跟上需求。“我们的用户需要自行准备所有基础设施,”网易云及容器服务架构师冯昌健表示,“我们渴望通过无服务器容器服务自动为用户提供基础设施和工具。”
在考虑了构建自己的编排解决方案后,网易决定将其私有云平台基于Kubernetes。该技术源自谷歌的事实让团队相信它能够满足网易的规模需求。“经过两到三个月的评估,我们相信它能够满足我们的需求,”冯昌健说。
该团队于 2015 年开始采用 Kubernetes,甚至在 1.0 版本发布之前,因为它相对易用且在公司内部实现了 DevOps。“我们放弃了 Kubernetes 的一些概念;我们只想使用标准化框架,”冯昌健说。“我们利用了 Kubernetes 的可编程性,这样我们就可以构建一个平台来满足我们内部客户对升级和部署的需求。”
团队首先专注于构建容器平台以更好地管理资源,然后将注意力转向通过添加监控等内部系统来改进对微服务的支持。这意味着要集成 CNCF 项目 Prometheus、Envoy、Harbor、gRPC 和 Helm。“我们正在努力提供一个简化和标准化的流程,这样我们的用户和客户就可以利用我们的最佳实践,”冯昌健说。
团队仍在不断改进。例如,电子商务业务需要利用混合部署,这在过去需要使用两个独立的平台:基础设施即服务平台和 Kubernetes 平台。最近,网易创建了一个跨平台应用程序,可以通过一键部署同时使用这两个平台。
如今,网易内部云平台“可以在单个集群中支持30,000个节点,”架构师曾玉兴说。“在生产环境中,我们已在单个集群中获得了10,000个节点的数据。整个内部系统都使用该系统进行开发、测试和生产。”
网易团队报告称,Kubernetes 将研发效率提高了 100% 以上。部署效率提高了 280%。“过去,如果我们想进行升级,我们需要与其他团队,甚至其他部门合作,”冯昌健说,“我们需要专门人员来准备一切,大约需要半小时。现在我们只需 5 分钟就能完成。”新平台还允许使用 GPU 和 CPU 资源进行混合部署。“以前,如果我们将所有资源都投入到 GPU 上,那么就不会有备用资源给 CPU。但现在,由于混合部署,我们取得了改进。”这些改进还带来了资源利用率的提高。
基于其内部平台的使用成果和经验,公司向外部客户推出了基于Kubernetes的云和微服务导向的PaaS产品——网易轻舟微服务。“我们的想法是,我们可以找出游戏、电子商务和云音乐提供商遇到的问题,从而整合他们的经验,并提供一个平台来满足我们用户的需求,”曾说。
无论是否使用网易的产品,团队都鼓励其他公司尝试 Kubernetes。“只要一家公司拥有成熟的团队和足够的开发人员,我认为 Kubernetes 是一项非常好的技术,可以帮助他们,”Kubernetes 开发人员李兰清说。
作为最终用户和供应商,网易更多地参与到社区中,向其他公司学习并分享他们所做的工作。该团队一直为 Harbor 和 Envoy 项目做贡献,在网易规模下测试这些技术时提供反馈。“我们是一个专注于解决微服务架构挑战的团队,”冯昌健说,“通过参与这个社区,我们可以从中获得一些经验,我们也可以从中受益。我们可以看到社区面临的关注点和挑战,这样我们就可以参与其中。”