服务热线:010-8600-8600
新闻中心
当前位置: 北京PK10正规投注网站 > 服务项目 > 外设运维 >

联系我们

地址:深圳市南山区南山大道南海大厦
电话:010-86008600
24小时热线:010-8600-8600
邮箱:aicai555@isunit.com
客服:qq交谈(点击QQ咨询)

蓝盟IT外包专家京东云自动化运维体系构建解决运

  京东云作为京东集团能力对外输出的窗口,实现京东能力+云平台赋能客户。其产品覆盖IaaS层,PaaS层和基于此构建的电商、物流、金融和保险等领域的服务和解决方案。本文主要从保障这些服务稳定性和效率的角度,讲解京东云自动化运维体系构建以及实施之路。

  2017 年 12 月 1 日-2 日,由 51CTO 主办的 WOTD 全球软件开发技术峰会在深圳中州万豪酒店隆重举行。

  京东云资深架构师在主会场与来宾分享了京东云自动化运维体系构建的主题演讲,以下是演讲实录。

  说到京东云,我们最看重运维,需要自动化运维平台。对此有几个关键问题,主要是围绕安全、部署变更、网络管理、监控管理......利用自动化运维来提高平台架构稳定性和人员的开发效率。

  在京东云的整体环境中,除了有我们技术团队所管理和维护的云自身应用之外,还启用并提供着各种 SaaS 服务。

  如何保持客户在云端业务的稳定性?我们对此进行了深入的研究和探索,下面分四个部分为大家讲解:

  如上图所示,京东云运维平台大致的搭建路线图为:基础组件→客户端体系 →部署系统(包括:各种发布系统、任务调度系统、以及监控系统),最终对运维平台进行完善,从而更好地服务于我们的客户。

  达内从2006年起开始推广远程教育。通过网络将达内的课堂引进各个地方,将已有的教师资源通过远程在线的方式共享。通过网络平台,达内迈出了规模经营的步伐。目前达内在上海、广州这些重点城市,利用网络平台建立了自己的直营培训中心,此外他们还在各个高校推广这种远程教育模式。高校提供课堂和学生,达内提供内容,这种合作方式被称作课程置换。 2006年以后,通过这种模式培养出来的学生差不多有三四万的规模。

  首先我们来看第一个基础组件:对于服务组织资源的管理,即运用 CMDB 来实现所谓的配置管理。

  找到各个服务项之间的依赖关系,进而获知它们在哪里被用到、由谁在使用、以及其本身所具备的用处。机器状态。对于京东这样体量的大公司而言,机器的数量多达十万左右,我们需要掌握其中每一台机器的当前状态、北京赛车投注平台:具体的机型、坐落在哪个机房、以及它们是如何被使用的。角色管理与基于角色的权限控制,我们需要掌握到具体是谁、能够在什么时候、进行什么样的操作、实现什么功能。

  所以说,“服务树”主要涉及到服务在系统中的实时信息,包括:哪个服务处于哪台机器之上,有哪些实例,属于哪个 App,具有哪些内部逻辑过程,如何对外部申请所需的权限,以及我们如何实现对它的监控等。这些都需要能从服务器上获取到。

  2001年开始从事UNIX平台开发工作。曾任职某航空设备公司,负责飞行器测试系统开发维护。主要研究应用层通讯协议的设计、数据的采集与分析。在北京尚观科技有限公司主讲C语言及数据结构。深刻理解C语言标准和在特定平台上的机器实现。善于引导学生从工程的角度考虑问题,平衡可移植性、开发成本、执行效率和用户体验,权衡各种数据结构的利弊。

  其次是 Naming service,它能够解决服务之间的解耦关系,也就是服务和实例间的关联关系、以及服务向外所提供的窗口。

  上图右侧展示了“服务树”与名字服务的示意图,最下方展示了一个从应用到实例关系的解耦,往上则是客户端的 back off(解耦合)。

  第二个基础组件是任务调度管理。在实际场景中,不管我们是要协同做某个操作、还是进行发布上线、或是对文件进行部署与分发。

  这些都需要系统去调度目标机器,以完成相应的任务,也就是我们必须要求指定的机器能够按照指定的策略,进行指定的命令。由于该过程具有实时性、批量性和共生性,因此对于系统的支撑能力极具挑战性。

  MySQL 集群及远程数据同步方案, MySQL 集群环状备份方案.无盘 Linux, 各种计算机网络风险评估,

  同时,我们需要通过策略来定义不同类型的并发度,比如要对一百台机器进行发布上线,那么我们不会将它们予以同时部署,而是分批次地进行并发。

  因此我们需要规定每次并发的具体任务,判定成功与否的逻辑关系,以及检验具体的完成程度,并且还要找出那些超时的状态。由于这些都是通过底层架构来构建出的各种业务,所以它们的调度逻辑实际上都是一样的。

  参与了多部培训教材和电子工业出版社发行的《Linux内核》等书的编写工作。

  现精选5大活动场地为中小企业提供实体社交平台,凡与社区服务内容相关的活动,一经审核即可获得免费使用资格。

  另外,所有的执行操作都需要是可追溯的,包括能够知晓什么人、在什么时间、进行了什么操作,可见安全性和规范性是非常重要的。

  而如果出现了故障,我们需要及时地截获输出,进而定位问题。这些都是任务调度系统需要基于服务树和 Naming Service 来实现的基础逻辑。

  第三个基础组件就是监控平台。监控无非是从数据采集、到数据汇聚、再到存储处理的过程。

  3 参与西藏移动BI(2.0)系统的建设,承担数据集市的开发,集团业务和渠道的开发;

  不同于平时常见的数据监控,我们构建的是时序性数据存储(TSDB)。由于需要查询的数据点非常多,因此我们将每次查询和收集到的监控点信息按照顺序存储起来。

  另外,我们的系统具有“读少写多”的特点,即:“写”(写入数据)相对比较均衡;而“读”(读取数据)则具有突发性。

  比如说:查看一个监控的状态,是属于随时做的操作。一般此类写操作是以 1 秒、10 秒、或 1 分钟作为采集间隔,是一个比较频发的过程。而读操作则发生得比较突兀,所以我们需要做到读写分离。

  监控数据的另一个特点是自动抽样,有时候一些频发的查询会牵扯到较大的时间跨度。

  例如:一个月甚至是一年。由于我们的采集数据间隔是 1 秒、10 秒、或 1 分钟,那么如果直接去查询所有数据点,需要产生庞大的数据量,当然也就很难实现。

  因此,我们对写操作进行了自动抽样。当查询 15 天以上的数据时,我们会把这些数据以每分钟、或每小时进行聚合,然后放在库中,进而查询一个月的数据。

  通过自适应路由的方式,我们就可以查到有限量的一小时数据,同时我们的数据库、以及业务系统速度也能具有较快的水平。

  另外,对于那些实时的数据处理,我们主要采用的是多地部署和基于JNS的多调度过程,从而实现了多维度的实时计算。

  IT行业发展如此迅猛,开发人才不足成为了制约产业发展的重要因素。随着资本对行业的持续注入,部分品牌IT培训机构进一步扩张,形成了强势品牌培训机构市场相对垄断集中的格局。2010年,IT培训市场前十名的培训机构占据了共计73.9%的市场份额。

  第四个基础组件就是客户端,由于所有的业务都需要客户端,因此对于京东这样体量的公司而言,会细分为部署类(如 JNS)、监控类、初始化等客户端类型。

  设想一下,如果我们需要对十万台机器进行加载部署或是上线升级,其工作量是可想而知的。

  就算我们只是维护十几万机器的 Agent,由于环境复杂,且存在着多个IP,如果只是按照单一维度去处理诸如“什么时候、出现什么了问题”的话,既耗时又耗力。

  所以在此我们引入了 Agent 的资源超限这一重要概念。比如说:对 Agent 的监控,由于占有了部分计算资源,则有可能将当前的服务宕机,那么这种本身处于服务之外的监控就影响到了服务本身的稳定性。

  曾在一个产品中,独立完成从上层的应用程序到底层驱动程序开发工作,

  在具体实现上,我们运用 ifrit 进行管控。即当一台机器在引入某个服务时,负责管理的 Agent 会在我们的 ifrit 服务器上进行注册,以告知其当前所处的分机房和使用的 Agent 的版本。

  那么它对应的客户端就可以相应地将这些信息包下载下来,从而掌握 Agent 的最新版本等信息。这就形成了一个简单的客户端体系结构。

  有了上述客户端与组件体系的构建基础,我们进一步构建部署和发布任务就相对比较容易了。

  Intel万兆网卡X520-SR2型号全称IntelE10G42BFSR万兆双口网卡,通常运用在高端服务器及大型网络项目中,而Intel万兆网卡X520-SR2其卓越的使用性能也使得它的价格相对其它网卡来高出很多。目前国内Intel网卡大大小小销售渠道众多,经过多层渠道的累积,价格上也就...

  我们先看看应用的部署系统。它除了实现应用部署之外,还管理着各种服务的维护和资源、以及接入的过程。

  如上图所示:我们除了“往前”进行了编译构建,还“往后”实现了流量接入。

  如上图所示,该 Agent 在此处有着一个核心的要求:实现跨平台。由于京东整体平台的环境较为复杂,我们有不同的虚拟机、Docker、物理机,它们需要把前面所提到的多种操作融合起来。

  一般的流程是:编译构建自身产品库(其中包含代码包和代码项)→通过部署服务和上述调度系统的部署服务进行发布(在物理机和容器上都可实现)→部署完成开始运行→对运行予以维护(尤其对镜像日志进行收集)→通过日志服务,进一步做分析。

  精通设备驱动设计,包括各种网卡驱动,各种LCD显示设备驱动,蓝牙驱动,智能卡驱动,USB驱动,demux驱动,音频驱动等;

  同时我们在前端做好了流量的接入,中间部分也提供了一个 LB(负载均衡)的网络。通过上述两种部署方式,我们可以根据服务的实际需要进行按需升级。

  熟悉嵌入式Linux应用层开发、系统开发和嵌入式Linux内核驱动开发,有丰富的项目开发经验。

  另外,我们此处采用的是基于 NS 的服务自动化与资源管理。它并不需要关心当前服务的具体过程是如何被实现的,而只注重:当前的容量、需要什么资源、以及能够获得的资源。

  除了上述提到的部署,我们对监控系统也十分重视。监控最重要的作用就是在出现问题时能够及时恢复。

  因此,面对既有虚拟机又有 Docker 的复杂环境,为了保证服务器不停止运行,我们在上线过程中采用的是部署联动式的分级发布。

  它可以监控到某个服务是处于机器层、服务层,还是在对外流量接入层、甚至是在网络层。这些都是监控所需要解决的问题。

  上图是监控的整体架构,这里展示了从底层的数据抽象、到数据的采集,然后经过数据处理,以及离线处理的全过程。

  1996年毕业于北京联合大学自动控制专业。在校期间主要学习自动控制理论、数字化控制理论。现业余研究自适应系统。

  其中数据的采集模式包括:采集 Agent、外部探测和 API 推送。

  同时在处理逻辑上包括了:如何去判断异常类型,以及针对异常所做出的报警类型和采取的是运维通讯还是研发通讯等方式。我们对这些步骤都事先进行了较好的规划。

  当然,这些故障本身又属于事件类型。因此我们需要考虑如何将事件存储起来,以方便查询和进一步做出相应的决策。

  由于先前的事件可能会影响到后续事件,因此如果您拥有一个很好的事件库,那么就能够让系统的下游获取到上游究竟是何时何地出现了何种故障,这些对于下游的排障都是极有帮助的。

  五、熟练使用procps系列工具,sysstat系列工具,分析系统运行瓶颈。熟悉tcpdump工具对网络抓包进行数据分析。了解常见攻击手段,通过kernel参数及为iptables编写智能脚本有效阻挡常见类型攻击。

  与此同时,我们也会对监控的数据进行一些离线处理,通过各种高效的算法,反馈到计算相应的报警之中。最终各种数据都是以趋势图或 Dashboard 的方式来展示各种事件和报警。

  有了前面的基础,我们所构建的京东云监控体系就由如下四种监控类型组成:

  第2页:DIEWU Intel82599es万兆光纤网卡 X520单多模

  基础监控,针对的是机器层面,不需要用户去配置,自动采集的是 CPU、内存、硬盘、网络等简单的信息。存活监控,针对的是服务监控,包括监控进程、端口和语义等方面。性能监控,针对的是服务层的对外表现状况。我们通过四大核心指标,来解决服务性能上是否存在异常。同时我们运用日志监控来收集pv、错误和容量,并确定所谓的异常边界的问题。业务监控,类似于黑盒子,从用户的角度来观察服务,发现问题。例如:所有服务指标状态都显示 OK,但是服务对外表现不佳,网站无法被访问。

  这个问题实际上对于京东来说会非常地严重,因为它会直接影响到用户流量乃至用户订单的损失,所以我们要从用户的层面上做好黑盒检测。

  具体来说,对于机器监控,我们从采集、到计算、再到报警,实现了机器连通性的全程自动化,从而免于人工的干预。

  同时我们给各种报警指标设定了默认值,比如说:通过发现某台机器的 cpu.idle 小于 10%,我们就可以获知它所隶属的服务,从服务名称获知其维护者是谁,进而向其维护者发出报警信息,通过报警信息我们就能大概知晓相关的数据,这样便实现了后台联动。

  对于存活监控来说,主要查看的是进程以及端口两个方面是否存活。为了实现部署联动,我们规定了进程与端口的部署路径。

  实训则是按照双元制教学,不仅教给学生计算机理论知识,更重要的是让学生在实践环节中掌握IT技能。在培训方式上,以项目实战带动教学,上课打破传统课堂模式,以案例贯穿教学,带领学生一起参与企业项目,在实践中解决问题。相对于学历教育的校园式模式,实训则是工厂式的、学徒式的,老师带领学生直接参加IT名企的实际研发项目,能全面掌握规范的开发流程和丰富的项目开发经验,获得实际的工作经验。

  有了进程的路径,我们就能获知进程的类型和对外开通的端口,从而实现了自然监控。

  我们再来看性能监控方面,它主要关注的是服务对外的指标,该指标一般来自于日志。

  为了统一,我们事先规定、规范、并约定一种日志格式,从多个维度读取日志信息里的不同 tag(标签)值。

  比如说:从宏观层面上看京东的整体流量是平稳的,但是我们通过多维度的聚合,就能发现某个省的机房流量存在着细微的底层波动。

  当然在采集方式上除了从日志里主动抓取之外,我们还能从程序和用户处的报警来获知。

  业务监控是从用户处查看服务是否正常。例如:电商常用到的是通过模拟全国各地的用户访问来发现分省份、分运营商或者分机房访问的情况。

  这就是运用外网或是自定义的方式来测试业务。另外,我们也会运用模拟云操作的方式,去监控云服务。

  例如:模拟一个用户登录到云网站→购买一台主机→部署一个镜像→进行一次发布。

  我们来判断全程是否一切正常。如此,我们就能够从用户的角度,先于用户发现问题、处理问题、并排除故障。

  如上图所示,我们最终在前面的基础上构建了京东云的自动化运维平台 ark。

  国内最著名的Oracle导师之一 原Oracle大学讲师始人之一 首席讲师

  总结起来,我们的监控自动化平台,通过各种技术的运用基本实现了服务化,做到了全生命周期的 DevOps。

  面对数量庞大的 SaaS 客户,我们的解决方案为他们保证了交付效率、节约了成本、并为各种可能碰到的问题做好了准备。

  整理/夏立城 上海蓝盟创始人兼CEO,复旦校友创新创业俱乐部副会长,致力于用IT外包网络维护服务赋能企业客户发展,助力其创新、迭代和进化。

  2007年9月,华育国际率先获得来自软银赛富的2000万美元风险投资;10月,安博教育完成IPO之前的最后一轮融资——由麦格理银行主投的5400万美元,成为迄今为止中国教育市场最大的一笔海外融资。


一键向上