小编提问: 1,大家对京东的(JDOS)阿基米德都比较感兴趣,能否透露下,当前京东的哪些业务是由阿基米德承载的? 2,有状态的服务,比如数据库,缓存等可以跑在阿基米德上么?没有的话,是否有这方面的支持计划?

温馨提醒:GIAC 购票最后 2 天,阅读文末了解详情。

导读:12 月 22~23 日,高可用架构和 msup 联合主办的 GIAC 全球互联网架构大会将于上海举行。GIAC 全球互联网架构大会是面向架构师、技术负责人及高端技术从业人员的技术架构大会。GIAC 于 2016 年 12 月成功举办了第一届,今年的 GIAC 已经有腾讯、阿里巴巴、百度、平安、饿了么、携程、七牛、蚂蚁金服、罗辑思维、摩拜、唯品会,LinkedIn, Pivotal, Mesosphere, AdMaster, Hulu 等公司专家出席。

在大会前夕,高可用架构采访了本届大会讲师鲍永成,就目前京东神秘的阿基米德进行了访谈。

鲍永成,京东云平台资深架构师,毕业于电子科技大学计算机科学与技术专业。目前担任京东弹性计算组项目负责人,带领弹性计算团队,深耕 IaaS 领域,致力于打造京东强大的虚拟化平台,支持京东业务的快速发展。2012 年加入京东,重点在 OpenStack 研发,运营多个中大规模 IaaS 集群,包括(京东公有云,私有云,混合云等产品),在 OpenStack 研发&性能优化,自动化部署,KVM,Docker,分布式系统等方面有一定的实践经验。曾在土豆网,思科中国研发中心(CRDC)等公司从事 CDN,分布式视频编码,分布式文件系统等方向。

高可用架构:永成您好,大家对京东的(JDOS)阿基米德都比较感兴趣,能否透露下,当前京东的哪些业务是由阿基米德承载的?

鲍永成:全部的业务系统以及离线计算均由阿基米德承载。京东的容器技术之路走的非常扎实,先坚实完成容器生态建设,更适合容器的自研负载均衡和分布式共享存储等(大会上将重点分享生态建设内容),再开始采用阿基米德统一调度应用和离线计算,获得非常可观的技术和经济收益。

截止到 17 年 11.11 大促,阿基米德已经节省数亿元的采购成本,通过阿基米德项目采用应用画像等技术应用和计算任务合理调度,满足应用 SLA 要求,从容应对大促高峰流量。阿基米德不仅仅提升了 CPU 使用率,在内存,网络 IO,数据中心电力等方面也均有出色表现。

高可用架构:有状态的服务,比如数据库,缓存等可以跑在阿基米德上么?没有的话,是否有这方面的支持计划?

鲍永成:有状态的服务,也是运行在阿基米德之上,只是这些有状态的服务是不可驱逐的容器,他们利用自身的集群方式来保障服务高可用(比如 MySQL 有自身的 M-S 模式等),但是这些服务使用计算节点的 local 存储作为容器实例的存储,持久化数据库,缓存落盘数据。这里要提到 local storage 这里京东采用 LVM 方式可以提供灵活的分配策略。

还对一些有状态的服务,比如依赖共享文件的业务(js,css),以及 AI 服务依赖模型文件等,我们是采用京东自研的分布式共享文件系统 ContainerFS【https://github.com/tigcode/containerfs 】来提供共享的存储,避免文件分发多份情况。

高可用架构:看到您的文章分享,阿基米德在 Kubernetes 之上做了很多扩展,这些扩展是通过修改 Kubernetes 源码实现的还是利用了 Kubernetes 的扩展点?用到了它的哪些扩展点?

鲍永成:通过 K8S 的源码二次开发实现,但是改动非常多,我简单分享 2 个点,比如:

京东的集群规模非常庞大,对 etcd 的依赖会非常严重,也发生过因为 etcd 的稳定性导致的故障,所以这块京东重新实现了 K8S 对 etcd 的使用,可以支持 6 千台物理节点;

K8S 对 Node 状态完全依赖 kubelet 的上报,京东采用 5 节点投票方式严格判断 Node 状态变化

高可用架构:Kubernetes 的版本升级非常快,阿基米德是基于那个版本的?可否分享下跟进 Kubernetes 版本升级的过程中的一些经验?

鲍永成:K8S 1.6.2 但是大规模严肃的生产环境,我们建议要投入足够的研发力量完全掌控 K8S 的实现细节,细节决定成败也影响的生产环境的稳定性。京东在 K8S 的使用上与之前 openstack 使用是一样的策略,虽然基于开源但是远远高于开源,基本形成京东自有的版本。我们也会在合适的时机,开源京东二次开发的 K8S 版本。

升级过程要保障一点:无论做任何操作,无论任何一个组件离线或者不可用多长时间不管是 1 小时还是 12 小时,都要确保已经运行的容器是不受到任何影响。京东在这个方面花费了一些精力才解决这个问题,现代的底层系统每周上线 2-3 次是非常常见的事情。

高可用架构:阿基米德在内部的推广经验是否可以分享下?这样基础的系统,应用到业务的时候肯定会遇到技术历史遗留,业务部门开发同事的接受度等各种问题,您的团队是如何克服困难的?

鲍永成:首先要业务无感知,尽量不改变业务的使用习惯。按应用开发者的接收程度分批次推广。

在推广过程,不仅仅推动阿基米德系统,也要推动业务优化,从底层技术视角提出一些优化建议,比如如何正确使用分布式存储,可以解决应用系统的问题。如果使用自动容器拉起,如何借助副本数控制应对峰值流量等等

高可用架构:您的文章中说阿基米德支持 Serverless,当前 Serverless 架构非常适合事件驱动、延迟容忍的应用。您是否认为 Serverless 架构会进一步支持长期运行的,需要实时响应的应用?也就是说,Serverless 变成了一种通用的应用架构模式?

鲍永成:我们认为 Serverless 架构依然在成长阶段,虽然目前我们是把 Serverless 作为非长期运行模式在实践,但是我们不排除在接下来会把 Serverless 用于长期运行的业务通用应用架构模式。但是一定会借助更快速的底层系统来支撑。

高可用架构:另外比较好奇,阿基米德这个名字是最后怎么确定下来的?起名字的过程是否有有趣的事情可以分享下?因为大家都知道,技术人一般比较纠结起名字这个事情 。

鲍永成:这个现场和大家分享,是一个非常有意思的过程和体验。

高可用架构:最后,您对 GIAC 有什么期望或者寄语?

鲍永成:希望 GIAC 办成是一场技术盛宴,大家在 GIAC 进行深度的交流与思辨,互相给予技术启迪。预祝此次 GIAC 圆满举办。

本期 GIAC 大会上,容器及虚拟化部分精彩的议题如下:

0_wx_fmt_png

注:出品人及演讲议题以最新官网为准,全部最新演讲议题请点击“阅读原文”至官网查看。参加 GIAC,盘点年底最新技术,最后 2 天,单人购买优惠 600 元,多人购买有更多优惠。点击“阅读原文”了解大会更多详情。