近日,网易云轻舟微服务团队接受了CNCF的采访,分享了网易云在云原生领域尤其是Kubernetes方面的实践经验。以下为案例全文:

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

挑战
它的游戏业务是世界上最大的游戏业务之一,但这并不是网易为中国消费者提供的唯一服务。该公司还经营电子商务、广告、音乐流媒体、在线教育和电子邮件平台。2015年,为这些业务提供基础设施的网易云团队,意识到当时的研发流程已经不能满足业务的发展需求。“我们的用户需要自己准备所有基础设施。”网易云架构师、轻舟微服务技术负责人冯常健说,“我们希望通过基于Serverless的容器服务,为他们提供一套自动化的基础设施和工具。”

解决方案
“该系统可以在一个集群中支持30,000个节点。在生产环境中,曾达到过单个集群10,000个节点的数据。内部大部分互联网业务正在使用该系统进行开发、测试和生产。”

- 曾宇星,网易云架构师

在考虑建立自己的业务流程解决方案后,网易云决定将其私有云平台建立在Kubernetes上,诞生于Google的事实让网易云团队相信它可以跟上网易的规模。“经过2到3个月的评估,我们相信它可以满足我们的需求。”冯常健说。该团队在2015年Kubernetes 1.0版本发布之前就开始使用Kubernetes,目前可以在单集群中支持30,000个节点,在生产环境集群中曾达到过单集群运行10,000个节点。而且,网易云还使用了CNCF基金会下的Prometheus、Envoy、Harbor、gRPC和Helm等项目。基于其内部平台的经验,该公司向外部客户推出了基于Kubernetes的云和面向微服务的解决方案—— 网易轻舟微服务平台

影响 
根据网易云团队的数据,Kubernetes使研发效率提高了100%以上,部署效率提高了280%。“在过去,如果我们想进行升级,需要与其他团队甚至其他部门的同事协作。”冯常健说,“我们需要专门的人员来准备一切,之前通常会花费大约半个小时的工作,现在5分钟内就可以完成。”新平台还支持GPU和CPU资源的混合部署,这些改进也提高了资源的利用率。 
“我们放弃了Kubernetes的一些概念,仅使用了标准化的框架。”冯常健说,“我们利用Kubernetes的可编程性,以便我们可以构建一个平台来满足内部客户的升级和部署需求。”

最初,网易云聚焦于构建容器平台来更好地管理资源,后续通过添加监控等工具,开始致力于提升对微服务架构的支持,这意味着网易云又集成了Prometheus,Envoy,Harbor,gRPC和Helm等CNCF项目。据冯常健介绍:“我们正在努力提供一个简单和标准的流程,以使得我们的用户可以利用我们的最佳实践”。

并且这个团队也在继续做出改进,比如电商业务需要混合部署,在过去这需要使用2套独立的平台:基础设施平台和Kubernetes平台。最近,网易云在此基础上研发了一套跨平台的应用,实现2个平台的一站式部署。

社区与生态
 “我们是一个专注于面向微服务解决方案的团队,通过与社区的合作,我们可以获得经验并从中受益,我们可以看到社区的关注点和面临的挑战,并参与其中。”

- 冯常健,网易云架构师、轻舟微服务技术负责人

基于内部平台的使用经验,网易云开始对外提供基于Kubernetes的云平台和面向微服务的一站式解决方案——轻舟微服务平台。冯常健说:“我们希望将这些内部业务遇到的问题和经验产品化,满足外部客户的需求。”

无论是否使用网易云产品,网易云都鼓励其他公司尝试Kubernetes。“只要公司拥有一支成熟的团队和足够的开发者,我认为Kubernetes是一种非常好的技术,可以帮助到企业。”网易云Kubernetes开发者李岚清说。
作为最终用户和云服务提供商,网易云在社区中也非常活跃,积极学习其它公司的经验,并分享其实践案例。网易云团队也一直在参与Harbor和Envoy项目的社区贡献,基于网易的规模体量提供测试反馈。冯常健说:“我们是一个专注于面向微服务解决方案的团队,通过与社区的合作,我们可以获得经验并从中受益,我们可以看到社区的关注点和面临的挑战,并参与其中。”

相关文章:
【推荐】 从golang的垃圾回收说起(下篇)
【推荐】 LinkedBlockingQueue源码解析(3)
【推荐】 架构为什么会腐化

从Kubernetes到“云原生全家桶”,网易如何让业务部署提效280%?的更多相关文章

  1. 《Kubernetes与云原生应用》系列之容器设计模式

    http://www.infoq.com/cn/articles/kubernetes-and-cloud-native-app-container-design-pattern <Kubern ...

  2. 不懂 Kubernetes 实现云原生是什么体验?

    云原生的本质和最终效果 要明白什么是云原生,就要先弄明白云计算是什么有什么问题,云计算将计算资源.网络.存储等基础设施统一管理,通过资源规模化和自动化管理,实现降低资源的成本和提高资源的管理效率,云计 ...

  3. Kubernetes构建云原生架构-图解

  4. 云原生时代的DevOps平台设计之道

    开发人员与运维人员是 IT 领域很重要的两大人群,他们都会参与到各种业务系统的建设过程中去.DevOps 是近年间火爆起来的一种新理念,这种理念被很多人错误的解读为"由开发人员(Dev)学习 ...

  5. 【解构云原生】初识Kubernetes Service

    编者按:云原生是网易杭州研究院(网易杭研)奉行的核心技术方向之一,开源容器平台Kubernetes作为云原生产业技术标准.云原生生态基石,在设计上不可避免有其复杂性,Kubernetes系列文章基于网 ...

  6. Kubernetes 入门必备云原生发展简史

    作者|张磊 阿里云容器平台高级技术专家,CNCF 官方大使 "未来的软件一定是生长于云上的"这是云原生理念的最核心假设.而所谓"云原生",实际上就是在定义一条能 ...

  7. 云原生时代, Kubernetes 多集群架构初探

    为什么我们需要多集群? 近年来,多集群架构已经成为“老生常谈”.我们喜欢高可用,喜欢异地多可用区,而多集群架构天生就具备了这样的能力.另一方面我们也希望通过多集群混合云来降低成本,利用到不同集群各自的 ...

  8. 第七章 云原生生态的基石 Kubernetes

    7.1 Kubernetes架构 K8s的核心组件: etcd: 协同存储,负责保存整个集群的状态. API:资源操作的唯一入口. controller manager: 维护集群的状态,执行故障检测 ...

  9. 云原生之旅 - 4)基础设施即代码 使用 Terraform 创建 Kubernetes

    前言 上一篇文章我们已经简单的入门Terraform, 本篇介绍如何使用Terraform在GCP和AWS 创建Kubernetes 资源. Kubernetes 在云原生时代的重要性不言而喻,等于这 ...

随机推荐

  1. Synchronized的几种用法

    https://blog.csdn.net/luoweifu/article/details/46613015

  2. Microsoft SQL Server 错误:948

    版本655指的是SQL2008, 版本611指的是SQL2005, (还有一个版本539指的是SQL2000) 楼主的情况属于典型的从高版本降低至低版本使用的情景. 按微软的官方说法, 是不支持从高版 ...

  3. 机器学习--k-means聚类原理

    “物以类聚,人以群分”, 所谓聚类就是将相似的元素分到一"类"(有时也被称为"簇"或"集合"), 簇内元素相似程度高, 簇间元素相似程度低. ...

  4. ionic3自定义android原生插件

    一.创建一个android项目,编写插件功能,并测试ok,这里以一个简单的调用原生Toast.makeText为例. 1.新建android项目 2.编写插件类 package com.plugin. ...

  5. 新学的的matplotlib库~~~~

    import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,6,100) y=np.cos(2*np.pi*x)*np.exp ...

  6. layer.tips属性

    layer.tips(新加的内容,'选择节点',{time: 0, area: ['20%', '20%'], skin: 'layui-layer-rim', tips: [3, '#ffffff' ...

  7. Appium+Python自动化 2 定位元素方式

    1.找到 Android SDK安装路径tools 下面的 uiautomatorviewer.bat,如下截图 2.点击uiautomatorviewer.bat进行启动,左上角一共四个按钮,作用分 ...

  8. 20155312张竞予 Exp1 PC平台逆向破解(5)M

    Exp1 PC平台逆向破解(5)M 目录 实验内容 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发get ...

  9. linux sort排序命令的高级用法(按多个列值进行排列)

    http://www.jquerycn.cn/a_9076 在linux中,使用sort按行进行排序是很简单的.不过有时,生活总是爱抛给你一个一个的问题.如果使用sort按多个列值排列,同时使用tab ...

  10. etcd 增减节点

    一.查看集群节点 etcdctl --endpoint=https://10.2.0.6:2379 --ca-file=/etc/etcd/ca.pem --cert-file=/etc/etcd/c ...