技术沙龙|京东云DevOps自动化运维技术实践

自动化测试体系不完善、缺乏自助式的持续交付平台、系统间耦合度高服务拆分难度大、成熟的DevOps工程师稀缺,缺乏敏捷文化……这些都是DevOps 在落地过程当中,或多或少会碰到的问题,DevOps发展任重道远,不断学习前人经验完善自身是很好的选择。

11月23日,京东云开发者社区和英特尔联合举办的「京东云DevOps自动化运维技术实践」沙龙在上海落地,为开发者们分享京东云在DevOps上的经验。算法

DevOps 自动化运维技术实践

01京东云持续交付演化之路安全

京东云工具产品研发部副总监 井亮亮网络

在行业内,每一年DevOps现状调查报告里,都会去衡量DevOps对于一个组织的生产活动的影响,定义出“高效的组织?”,会从4个方面去衡量,分别是:部署频率、软件交付周期、变动失败率、平均修复时长。持续交付目标是提高交付效率和确保交付质量,但交付是线上变动,那么有变动就意味着会有风险,那么,如何下降软件交付的失败率,控制风险,就变成了企业持续交付考核的一个重要目标。架构

“我统计了一下,京东云在今年的线上软件变动失败率控制在在 0.46%,但,咱们仍然有4成的故障是由变动操做引发的,实施持续交付,对于确保整个软件交付质量来讲是相当重要的。”井亮亮说。app

不少公司在内部实施交付都曾或多或少产生过这样问题:开发说"我想更快的开发,但构建系统却频繁出问题!”,测试说“我须要更快测试,但没有环境!”、运维说“我有太多环境须要管理!”……京东云也不例外,那么持续交付如何解决跨团队合做的一些问题呢?yy京东云持续交付之路运维

2013 年以前是”HumanOps“,经过脚本手工上线,没法作到自动化;微服务

2014 年到 2016 年是 Jone(京东持续交付平台) 时期,在 Jone1.0 交付采用Rsysnc的方式进行,上线过程常常会线上排队;16年启动了2.0的迭代,Jone采用了ansible做为发布的工具。工具

2017 年京东云推出京东云翼,云翼是一整套的DevOps平台,不只包含持续交付,还包含了智能监控、智能运维、门神等能力。性能

如何在企业内部实施持续交付学习

  • 统一的部署规范
  • 灵活的部署流水线
  • 企业文化策略协助

在部署规范上,部署规范的统一,是企业实施持续交付的基础,在京东云内部会要求以下:

  1. 咱们有统一的控制系统去操做线上,减小操做的渠道,减小风险,由于咱们的控制系统可作到秒级回滚
  2. 会提供统一的基础镜像,这样不会由于操做系统不一致的问题形成的风险,服务都是用统一的帐户去启动
  3. 会统一部署路径和日志路径,利于排查问题,以及查询日志
  4. 线上服务的启停命令,都是咱们提供的统一的模板,防止不一样人员本身编写致使的健壮性不够的故障
  5. 禁止手工,全部的构建都必须走系统去把控质量
  6. 系统会控制没有上预发的app是不容许上线的
  7. 另外会控制避免上线致使全流量丢失的上线操做

部署流水线能够帮助解决如何在企业内部推进各个团队用你的标准规范和平台,流水线是搭台子,各个业务能够在上面进行唱戏。

在作好规范和部署流水线的前提下,企业内部的落地推进,须要企业文化的支撑,持续交付不只仅工具的支持,仍然须要文化的支撑。

云翼 DevOps 平台的设计及落地

  • 首先第一步要构建了 CMDB 的建设,cmdb的建设,关键是cmdb模型的建设,并要确保 CMDB 数据的准确性。
  • 利用容器技术提高持续交付的能力,容器要作扩缩容,可提升运维的效率,极大节约了资源的成本。
  • 复杂业务场景,需支持编排部署,如一次几十个应用的发布,这时就须要编排能力的建设,编排主要分为3步:模版编写、设置策略、一健发布。

 

02数据驱动企业级监控系统设计与落地

京东云工具产品研发部总监 颜志杰

为了实现缩短 MTTR 的目标,监控系统应该具备这些能力:

  1. 数据采集能力,获取可观测的数据
  2. 数据可以方便加工,好比把相关的数据汇聚起来,获得咱们须要关注的数据
  3. 对这些关注的数据,作异常检测,及时产生告警
  4. 收到告警后,经过 Dashbord 查图定位,专家诊断推荐平台,加速定位
  5. 定位问题后,经过预案平台进行快速止损
  6. 整个监控系统须要作到高可用,监控就是为了发现异常,若是因为异常致使自身不可用,确定是减分的

从数据角度去理解监控系统设计

典型监控系统从功能模块分为采集、计算、存储、告警、算法、业务端等。从数据视角去理解,监控系统就是一个数据处理系统,便于咱们简化系统设计以及更好理解监控系统。那么从数据视角分析监控系统,还须要优先考虑如下这几个部分:

  • 数据模型先行,不一样模型表明着不一样的数据描述及处理能力,进而会对监控产品的形态产生影响
  • 监控采集就是数据标准化的过程
  • 监控数据存储具备读写正交、meta 的灵活查询、最新时间热点查询需求,京东云采用列式存储 + 倒排 +Gorilla 的方案选型
  • 聚合计算就是对数据进行范围圈定,进行算子处理
  • 报警通路作好“质检员”工做,同时完成通知用户这件事情

京东云的监控标准设计

监控须要覆盖基础 - 存活 - 性能 - 业务四个层面,从而保证采集数据的全面,进而避免监控遗漏。那么如何按照监控标准去指导监控产品的落地呢?看京东云如何从发现问题、定位问题和解决问题三个方面来减小 MTTR:

  1. 在发现问题阶段,分别面向管理者和运维人员设置监控系统的打分机制及推荐系统,给予管理者一个直观的总分和每一个维度的细分得分,使得管理人员对总体监控有个量化的指标,另外一方面,对于运维人员,则提供配置推荐、一键启用,能够快速地根据标准去完善监控,达到监控变‘全’。
  2. 在定位问题阶段京东云推动了变动可视化项目,将上线、配置更改、第三方的变动事件,都接入到变动事件中,用户能够根据时间去查询时间段的变动,跟报警作关联,京东云也会根据一些相关性的算法推荐,将变动推荐给用户,加速问题定位过程。
  3. 处理问题阶段京东云可提供预案平台,对预案进行标准化分类,指导用户管理预案。

京东云落地实践:以监控告警收敛项目为例

在监控告警上,运维人员每每在提高告警手段上作了不少工做,好比说经过发邮件的形式到短信、电话的形式等,京东云每个月短信发送量上百万、电话告警每个月上千条,可是运维人员并无感觉到有这么多问题,这就说明告警关注度是降低的,因此告警收敛势在必行,目标就是让告警关注度提高,那如何落地呢?

这就须要首先数据量化,先统计各个渠道的告警总数,而后分两步走,对于产品线负责人,须要让产品线的负责人知道本身部门的状况,另外一路出分析数据,拆解产品线发送多的缘由,给运维同窗提供数据指导,分析各类有可能致使发送告警多的缘由,如:一条短信平均接收人、哪些告警规则发送较多等。

基于这些统计数据,监控团队去成立告警收敛项目:在面对接收人过多的状况(一个短信原来须要 10 几我的接收),京东云推出值班表计划,在产品设计上保证告警规则设置的合理性,对于一些大规模触发状况,好比网络故障,京东云默认会按照规则、应用进行合并,同时为了在合并以后让用户能看的更清楚,京东云也推出了移动端程序。

 

03质量服务在京东云的实践

京东云平台质量部总监 丁超

“质量是一份事业,向作质量的同窗致敬”

在京东云,质量部门关注什么?

京东云的形态包含公有云、专有云、混合云、多云形态,基于京东云产品的特性,质量服务应关注以下 4 个维度的内容:

  1. 标准化流程建设,及配套的 check 服务。
    流程覆盖从需求、设计、编码、测试、发布、监控到工单。
    以解决需求不明确、设计后期频繁变动、代码分支混乱、测试无准入准出标准、发布无标准、线上运行时数据无观测等问题。
    丁超建议人工先把事情作起来,先有再深刻,再自动化。
  2. 垂直方向上业务能力和场景的建设。
    质量部门更关注产品的能力验证、能力评测。
    以解决测试目标及内容不明确、无准入标准、准出标准、业务场景的模拟(用户是怎样使用产品的)、产品能力及局限性、对标评测等问题。
  3. 横向视角上的平台能力建设。
    质量部门须要须要解决的问题是:
    持续集成、效率问题、性能及安全评测能力、资源及环境快速获取能力。
  4. 做为云厂,或者做为企业,如何从云得到专业服务的能力。

须要解决的问题包括:

  • 针对客户场景的质量解决方案;
  • 让客户无需分神质量专业性的建设;
  • 保证使用门槛低,效果好。

衡量质量的指标,一是看服务可用性 SLA,二是考核线上的故障数,三是要给用户交付功能清单,四是有性能测试指标 QPS,五是数据持久性,六是安全性,七是兼容性,根据以上指标,经过4个维度的质量建设,最终须要给用户交付极致的体验。

质量模型落地之从单点突破到持续交付

传统企业中的 CMM 标准,其对质量控制是很是细致的,若是既想实现互联网快速迭代,又想要传统企业中丰富的过程控制,该如何作呢?京东云用了现代和传统结合的方法,即持续交付的思想加入打点服务:1. 需求和设计上,采用“模板+人工”的方式,保证事情的发生和效果。2. 编码环节,提供 JDCCheck 服务, 代码仓管理、静态代码检查、安全检查、UT、代码评审等方面。提供打点服务,该环节经过,才能够进入测试环节。

在测试环节,京东云提供 JDCCase 测试管理平台,包含 Case 库、测试计划、测试执行、测试报告等,覆盖了测试任务的各个方面,保证了测试的准入和准出。同时与 DevOps 团队合做,发布 PipeLine 服务,保证测试规范,主要保证如下效果:

  • 总体流程清晰
  • 子服务作成 plugin,随需调用卡点
  • 用户使用成本低,无感知接入
  • 经过数据度量作改进,关注过程数据,和线上效果

丁超提到:“研发自测不足、推 UT 难、缺少敏捷教练、流程落地难、人力不足、惟快不破(关注快,忽略质量),都使得持续交付在互联网的落地更难。因此,很是提倡“通用打点” 的方式,求同存异,统一流程和平台,又给团队最大的自由。在过程和结果上进行考核。”

京东云混沌工程实践

Netflix《混沌工程》书中说到:在接受“系统越复杂,越脆弱”的事实以后,让系统在每一次失败中获益,而后不断进化,这是混沌工程的核心思想。即经过模拟故障,来验证系统的可用性。

对于京东云来讲,作混沌工程困难重重,机器规模大,地域范围广,涉及产品多,上下游依赖复杂,涉及人员多,并且担忧线上出故障影响客户。可是从平台层面看问题,须要有人总体把控系统状况,保证故障的及时恢复,混沌工程又是必需要作的事情。

既然不能在线演练,京东云另辟蹊径,最终选择在隔离区从新搭建一套仿真环境。模拟多Region、多AZ。并在AZ1实现了与线上的 1:1 建设。同时,为保证该环境与线上版本的一致性,把该仿真环境做为“预发环境”使用,放在发布流程中,做为上线前的系统集成环境。只有经过该预发的集成,验证变动内容对云总体无影响,才能够继续后续的灰度流程。这样,还同时解决了平常运维问题。1、混沌工程第一次演练丁超介绍道:“第一次演练大约在 1 年半前,命名为“AZ故障”。目标是:测量 AZ1总体断电时,云服务所有恢复的时间(即所有迁移到 AZ2 恢复可用的耗时)。再重启AZ1,测量AZ一、AZ2同时恢复流量负载的耗时。以后,针对AZ2 重复如上的步骤。结果光AZ1断电的场景,就用了数个小时,这其中包括故障定位、执行预案、恢复验证等。很是直接客观地代表,在问题发现和定位、预案有效性、系统级验证方面,都亟待改进。不可贵出结论:破坏性演练,是推进服务治理、架构升级的有效助力!“2、混沌工程改进及发展第一次演练以后,京东云开始了不断的迭代改进,包括:

  • 依赖治理:服务的 RING 级别梳理。将服务按照依赖顺序、部署顺序进行梳理,同一 RING 上的服务,不能有相互依赖。不一样 RING 上的服务,有明确的监控项(KEY)状态呈现,有助于问题的逐层定位。
  • 预案自动化:将全部预案收录到监控系统,实现自动化。触发方式定义为:检测到问题直接触发,和预警后人工确认触发。并对每一个预案的生效时间进行严格的耗时检查,不断精进。
  • 数据面要求对用户无损(即用户无感知),控制面可适当放宽。
  • 服务治理:引入微服务架构和调用链治理。
  • 触发及验证自动化:将故障的触发和云功能的验证,进行平台化。现已实现无成本的触发、秒级验证,这使破坏性演练可平常常态触发,没必要大动干戈。

“时至一年半后的今天,咱们已经从单场景故障恢复时间数个小时,下降到了分钟内,大部分故障场景用户无感知。微服务化、3AZ 建设等云的高可用性改造也在持续进行中。对于将来,京东云更有信心!”丁超老师对混沌工程的迭代有更强的信心。

BoCloud博云 售前总监 刘欣雨

多云管理平台的建设

开篇,刘欣雨分析了中国云市场现状提出:中国云市场规模在逐年增长,增幅领跑全球,呈现特色是愈来愈多用户愿意同时采用公有云和私有云这种多云管理模式。随着国内更多云服务商的参与,为云市场提供更好、更完善服务,咱们相信中国的云市场规模将会更加庞大,那么多云管理的需求也将会愈来愈强烈,范围愈来愈广,这为多云管理服务商提供更大的市场机会。

博云多云平台整体建设思路围绕“七化”:管理统一化、资产精细化、业务流程化、服务自助化、运营计量化、响应自动化,管理智能化。刘欣雨主要分享了一体化运维管理方案,其中包含的多云管理方案、自动化运维和金融行业实践等内容。

关于其一体化运维管理方案,刘欣雨说:“一体化运维包含五个方面,统一纳管,统一运维,统一运营,统一服务门户和统一监控管理,实现异构资源集中纳管,统一资源按需分配;支持自动化运维,支持经过服务编排实现不一样运维场景的自动化服务;提供统一服务门户,实现自助自主服务门户,让业务人员自助获取本身所须要的服务,咱们的平台能够自动执行,为用户提供资源,同时提供集中监控管理,实现资源、应用和服务一站式管理”。

同时刘欣雨也提到,对自动化运维场景的支持主要体现资源自动化、应用自动化、网络自动化和业务场景自动化。包括资源交付、系统安装,应用上下线、应用变动、补丁管理、网络配置管理和业务场景管理(如灾备切换和跑批业务自动化处理)。刘欣雨提到云管平台还须要开放的集成模式,要匹配多服务管理方式,提供开放接口,方便对接客户现有系统(如多厂商云平台、ITSM、CMDB、监控等),这个也是对云管平台的要求。

最后刘欣雨分享了博云在某大型股份制银行多云管理平台项目建设内容,多云管理平台帮助该股份制银行实现了资源统一化、服务标准化、运维自动化和服务智能化的IT管理目标,提升了资源利用率,减轻了运维人员工做量,提高了运维工做效率,保障了运维工做质量,加强了IT服务体验,节约了IT建设和运营成本。

关注【京东云开发者社区】,后台回复【PPT1123】查看活动PPT

点击“阅读”,进入京东云开发者中心查看沙龙视频

欢迎点击“京东云”了解更多精彩

相关文章
相关标签/搜索