京东云自动化运维体系架构.docx
《京东云自动化运维体系架构.docx》由会员分享,可在线阅读,更多相关《京东云自动化运维体系架构.docx(26页珍藏版)》请在三一文库上搜索。
1、京东云自动化运维体系架构电商与物流的强心脏大家熟知的京东可能是京东电商,事实上京东有四个最主要的平台:电商、物流、金融和保险,京东云是这些平台能力的输出窗口。京东云有基础设施、主机网络,上面还有一些中间件和PaaS服务,主要是为了支撑电商和物流。说到京东云,我们最看重运维,这就需要自动化运维平台。对此有几个关键问题,主要是围绕安全、部署变更、网络管理、监控管理利用自动化运维来提高平台架构稳定性和人员的开发效率。在京东云的整体环境中,除了有我们技术团队所管理和维护的云自身应用之外,还启用并提供着各种SaaS服务。如何保持客户在云端业务的稳定性?我们对此进行了深入的研究和探索,下面分四个部分为大家
2、讲解: 京东云自动化运维基础组件 京东云自动化运维部署介绍 京东云自动化运维监控系统 总结与展望一、京东云自动化运维基础组件针对上述问题,我们从四个方面进行入手: 服务与资源管理 任务调度管理 监控平台 客户端京东云运维平台大致的搭建路线图如图所示:从基础组件到客户端体系再到部署系统(包括各种发布系统、任务调度系统、以及监控系统等),最终对运维平台进行完善,从而更好地服务于我们的客户。1、服务与资源管理第一个基础组件是对服务组织资源的管理,即运用CMDB来实现所谓的配置管理。通过CMDB的“服务树”概念,我们可以掌握如下三个方面: 服务项之间的依赖关系。找到各个服务项之间的依赖关系,进而获知它
3、们在哪里被用到、由谁在使用、以及其本身所具备的用处; 机器状态。对于京东这样体量的大公司而言,机器的数量多达十万左右,我们需要掌握其中每一台机器的当前状态、具体的机型、坐落在哪个机房、以及它们是如何被使用的; 角色管理与基于角色的权限控制。我们需要掌握到具体是谁、能够在什么时候、进行什么样的操作、实现什么功能。所以说,“服务树”主要涉及到服务在系统中的实时信息,包括:哪个服务处于哪台机器之上、有哪些实例、属于哪个App、具有哪些内部逻辑过程、如何对外部申请所需的权限以及我们如何实现对它的监控等。这些都需要能从服务器上获取到。其次是Naming Service,它能够解决服务之间的解耦关系,也就
4、是服务和实例间的关联关系、以及服务向外所提供的窗口。上图展示了“服务树”与名字服务的示意图,最下方展示了一个从应用到实例关系的解耦,往上则是客户端的Back Off(解耦合)。2、任务调度管理第二个基础组件是任务调度管理。在实际场景中,不管我们是要协同做某个操作、还是进行发布上线、或是对文件进行部署与分发。这些都需要系统去调度目标机器,以完成相应的任务,也就是我们必须要求指定的机器能够按照指定的策略,进行指定的命令。由于该过程具有实时性、批量性和共生性,因此对于系统的支撑能力极具挑战性。同时,我们需要通过策略来定义不同类型的并发度,比如要对一百台机器进行发布上线,那么我们不会将它们予以同时部署
5、,而是分批次地进行并发。因此我们需要规定每次并发的具体任务,判定成功与否的逻辑关系,以及检验具体的完成程度,并且还要找出那些超时的状态。由于这些都是通过底层架构来构建出的各种业务,所以它们的调度逻辑实际上都是一样的。另外,所有的执行操作都需要是可追溯的,包括能够知晓什么人、在什么时间、进行了什么操作,可见安全性和规范性是非常重要的。而如果出现了故障,我们需要及时地截获输出,进而定位问题。这些都是任务调度系统需要基于服务树和Naming Service来实现的基础逻辑。3、监控平台第三个基础组件就是监控平台。监控无非是从数据采集、到数据汇聚、再到存储处理的过程。不同于平时常见的数据监控,我们构建
6、的是时序性数据存储(TSDB)。由于需要查询的数据点非常多,因此我们将每次查询和收集到的监控点信息按照顺序存储起来。另外,我们的系统具有“读少写多”的特点,即:“写”(写入数据)相对比较均衡;而“读”(读取数据)则具有突发性。比如说:查看一个监控的状态,是属于随时做的操作。一般此类写操作是以1秒、10秒、或1分钟作为采集间隔,是一个比较频发的过程。而读操作则发生得比较突兀,所以我们需要做到读写分离。因此,我们基于ES(ElasticSearch)实现了TSPD,其中涉及到两种封装: 对于热点数据的封装,我们将较为重要的数据,以及那些实时的数据存放在Redis中; 同样,我们对历史数据也会进行E
7、S,然后再封装,从而实现了读写的分离。这种数据的双写过程,合理地保证了数据的高可用。监控数据的另一个特点是自动抽样,有时候一些频发的查询会牵扯到较大的时间跨度。例如:一个月甚至是一年。由于我们的采集数据间隔是1秒、10秒、或1分钟,那么如果直接去查询所有数据点,需要产生庞大的数据量,当然也就很难实现。因此,我们对写操作进行了自动抽样。当查询15天以上的数据时,我们会把这些数据以每分钟、或每小时进行聚合,然后放在库中,进而查询一个月的数据。通过自适应路由的方式,我们就可以查到有限量的一小时数据,同时我们的数据库及业务系统速度也能具有较快的水平。另外,对于那些实时的数据处理,我们主要采用的是多地部
8、署和基于JNS的多调度过程,从而实现了多维度的实时计算。4、客户端第四个基础组件就是客户端。由于所有的业务都需要客户端,因此对于京东这样体量的公司而言,会细分为部署类(如 JNS)、监控类、初始化等客户端类型。设想一下,如果我们需要对十万台机器进行加载部署或是上线升级,其工作量是可想而知的。就算我们只是维护十几万机器的Agent,由于环境复杂,且存在着多个IP,如果只是按照单一维度去处理诸如“什么时候、出现什么了问题”的话,既耗时又耗力。所以在此我们引入了Agent的资源超限这一重要概念。比如说:对Agent的监控,由于占有了部分计算资源,则有可能将当前的服务宕机,那么这种本身处于服务之外的监
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 京东云 自动化 体系 架构
链接地址:https://www.31doc.com/p-8851636.html