自动化测试体系不完善、缺少自助式的持续交付平台、系统间耦合度高服务拆分难度大、成熟的DevOps工程师稀缺,缺少敏捷文化……这些都是DevOps
在落地过程中,或多或少会碰到的问题,DevOps发展任重道远,不断学习前人经验完善自身是很好的选择。
11月23日,京东云开发者社区和英特尔联合举办的「京东云DevOps自动化运维技术实践」沙龙在上海落地,为开发者们分享京东云在DevOps上的经验。
01京东云持续交付演化之路
在行业内,每年DevOps现状调查报告里,都会去衡量DevOps对于一个组织的生产活动的影响,定义出“高效的组织?”,会从4个方面去衡量,分别是:部署频率、软件交付周期、变更失败率、平均修复时长。持续交付目标是提升交付效率和确保交付质量,但交付是线上变更,那么有变更就意味着会有风险,那么,如何降低软件交付的失败率,控制风险,就变成了企业持续交付考核的一个重要目标。
“我统计了一下,京东云在今年的线上软件变更失败率控制在在 0.46%,但,我们仍然有4成的故障是由变更操作引起的,实施持续交付,对于确保整个软件交付质量来说是至关重要的。”井亮亮说。
很多公司在内部实施交付都曾或多或少产生过这样问题:开发说"我想更快的开发,但构建系统却频繁出问题!”,测试说“我需要更快测试,但没有环境!”、运维说“我有太多环境需要管理!”……京东云也不例外,那么持续交付如何解决跨团队合作的一些问题呢?yy京东云持续交付之路
2013 年之前是”HumanOps“,通过脚本手工上线,无法做到自动化;
2014 年到 2016 年是 Jone(京东持续交付平台) 时期,在 Jone1.0 交付采用Rsysnc的方式进行,上线过程经常会线上排队;16年启动了2.0的迭代,Jone采用了ansible作为发布的工具。
2017 年京东云推出京东云翼,云翼是一整套的DevOps平台,不仅包含持续交付,还包含了智能监控、智能运维、门神等能力。
如何在企业内部实施持续交付
在部署规范上,部署规范的统一,是企业实施持续交付的基础,在京东云内部会要求如下:
部署流水线可以帮助解决如何在企业内部推动各个团队用你的标准规范和平台,流水线是搭台子,各个业务可以在上面进行唱戏。
在做好规范和部署流水线的前提下,企业内部的落地推动,需要企业文化的支撑,持续交付不仅仅工具的支持,仍然需要文化的支撑。
云翼 DevOps 平台的设计及落地
02数据驱动企业级监控系统设计与落地
京东云工具产品研发部总监 颜志杰
为了实现缩短 MTTR 的目标,监控系统应该具有这些能力:
从数据角度去理解监控系统设计
典型监控系统从功能模块分为采集、计算、存储、告警、算法、业务端等。从数据视角去理解,监控系统就是一个数据处理系统,便于我们简化系统设计以及更好理解监控系统。那么从数据视角分析监控系统,还需要优先考虑以下这几个部分:
京东云的监控标准设计
监控需要覆盖基础 - 存活 - 性能 - 业务四个层面,从而保证采集数据的全面,进而避免监控遗漏。那么如何按照监控标准去指导监控产品的落地呢?看京东云如何从发现问题、定位问题和解决问题三个方面来减少 MTTR:
京东云落地实践:以监控告警收敛项目为例
在监控告警上,运维人员往往在提升告警手段上做了很多工作,比如说通过发邮件的形式到短信、电话的形式等,京东云每月短信发送量上百万、电话告警每月上千条,但是运维人员并没有感受到有这么多问题,这就说明告警关注度是下降的,所以告警收敛势在必行,目标就是让告警关注度提升,那如何落地呢?
这就需要首先数据量化,先统计各个渠道的告警总数,然后分两步走,对于产品线负责人,需要让产品线的负责人知道自己部门的情况,另一路出分析数据,拆解产品线发送多的原因,给运维同学提供数据指导,分析各种有可能导致发送告警多的原因,如:一条短信平均接收人、哪些告警规则发送较多等。
基于这些统计数据,监控团队去成立告警收敛项目:在面对接收人过多的情况(一个短信原来需要 10 几个人接收),京东云推出值班表计划,在产品设计上保证告警规则设置的合理性,对于一些大规模触发情况,比如网络故障,京东云默认会按照规则、应用进行合并,同时为了在合并之后让用户能看的更清楚,京东云也推出了移动端程序。
“质量是一份事业,向做质量的同学致敬”
在京东云,质量部门关注什么?
京东云的形态包含公有云、专有云、混合云、多云形态,基于京东云产品的特性,质量服务应关注如下 4 个维度的内容:
需要解决的问题包括:
衡量质量的指标,一是看服务可用性 SLA,二是考核线上的故障数,三是要给用户交付功能清单,四是有性能测试指标 QPS,五是数据持久性,六是安全性,七是兼容性,根据以上指标,通过4个维度的质量建设,最终需要给用户交付极致的体验。
质量模型落地之从单点突破到持续交付
传统企业中的 CMM 标准,其对质量控制是非常细致的,如果既想实现互联网快速迭代,又想要传统企业中丰富的过程控制,该如何做呢?京东云用了现代和传统结合的方法,即持续交付的思想加入打点服务:1. 需求和设计上,采用“模板+人工”的方式,保证事情的发生和效果。2. 编码环节,提供 JDCCheck 服务, 代码仓管理、静态代码检查、安全检查、UT、代码评审等方面。提供打点服务,该环节通过,才可以进入测试环节。
在测试环节,京东云提供 JDCCase 测试管理平台,包含 Case 库、测试计划、测试执行、测试报告等,覆盖了测试任务的各个方面,保证了测试的准入和准出。同时与 DevOps 团队合作,发布 PipeLine 服务,保证测试规范,主要保证以下效果:
丁超提到:“研发自测不足、推 UT 难、缺乏敏捷教练、流程落地难、人力不足、唯快不破(关注快,忽略质量),都使得持续交付在互联网的落地更难。所以,非常提倡“通用打点” 的方式,求同存异,统一流程和平台,又给团队最大的自由。在过程和结果上进行考核。”
京东云混沌工程实践
Netflix《混沌工程》书中说到:在接受“系统越复杂,越脆弱”的事实之后,让系统在每一次失败中获益,然后不断进化,这是混沌工程的核心思想。即通过模拟故障,来验证系统的可用性。
对于京东云来说,做混沌工程困难重重,机器规模大,地域范围广,涉及产品多,上下游依赖复杂,涉及人员多,而且担心线上出故障影响客户。但是从平台层面看问题,需要有人整体把控系统情况,保证故障的及时恢复,混沌工程又是必须要做的事情。
既然不能在线演练,京东云另辟蹊径,最终选择在隔离区重新搭建一套仿真环境。模拟多Region、多AZ。并在AZ1实现了与线上的 1:1 建设。同时,为保证该环境与线上版本的一致性,把该仿真环境作为“预发环境”使用,放在发布流程中,作为上线前的系统集成环境。只有通过该预发的集成,验证变更内容对云整体无影响,才可以继续后续的灰度流程。这样,还同时解决了日常运维问题。1、混沌工程第一次演练丁超介绍道:“第一次演练大约在 1 年半前,命名为“AZ故障”。目标是:测量 AZ1整体断电时,云服务全部恢复的时间(即全部迁移到 AZ2 恢复可用的耗时)。再重启AZ1,测量AZ1、AZ2同时恢复流量负载的耗时。之后,针对AZ2 重复如上的步骤。结果光AZ1断电的场景,就用了数个小时,这其中包括故障定位、执行预案、恢复验证等。非常直接客观地表明,在问题发现和定位、预案有效性、系统级验证方面,都亟待改进。不难得出结论:破坏性演练,是推动服务治理、架构升级的有效助力!“2、混沌工程改进及发展第一次演练之后,京东云开始了不断的迭代改进,包括:
“时至一年半后的今天,我们已经从单场景故障恢复时间数个小时,降低到了分钟内,大部分故障场景用户无感知。微服务化、3AZ 建设等云的高可用性改造也在持续进行中。对于未来,京东云更有信心!”丁超老师对混沌工程的迭代有更强的信心。
多云管理平台的建设
开篇,刘欣雨分析了中国云市场现状提出:中国云市场规模在逐年增加,增幅领跑全球,呈现特点是越来越多用户愿意同时采用公有云和私有云这种多云管理模式。随着国内更多云服务商的参与,为云市场提供更好、更完善服务,我们相信中国的云市场规模将会更加庞大,那么多云管理的需求也将会越来越强烈,范围越来越广,这为多云管理服务商提供更大的市场机会。
博云多云平台总体建设思路围绕“七化”:管理统一化、资产精细化、业务流程化、服务自助化、运营计量化、响应自动化,管理智能化。刘欣雨主要分享了一体化运维管理方案,其中包含的多云管理方案、自动化运维和金融行业实践等内容。
关于其一体化运维管理方案,刘欣雨说:“一体化运维包含五个方面,统一纳管,统一运维,统一运营,统一服务门户和统一监控管理,实现异构资源集中纳管,统一资源按需分配;支持自动化运维,支持通过服务编排实现不同运维场景的自动化服务;提供统一服务门户,实现自助自主服务门户,让业务人员自助获取自己所需要的服务,我们的平台可以自动执行,为用户提供资源,同时提供集中监控管理,实现资源、应用和服务一站式管理”。
同时刘欣雨也提到,对自动化运维场景的支持主要体现资源自动化、应用自动化、网络自动化和业务场景自动化。包括资源交付、系统安装,应用上下线、应用变更、补丁管理、网络配置管理和业务场景管理(如灾备切换和跑批业务自动化处理)。刘欣雨提到云管平台还需要开放的集成模式,要匹配多服务管理方式,提供开放接口,方便对接客户现有系统(如多厂商云平台、ITSM、CMDB、监控等),这个也是对云管平台的要求。
最后刘欣雨分享了博云在某大型股份制银行多云管理平台项目建设内容,多云管理平台帮助该股份制银行实现了资源统一化、服务标准化、运维自动化和服务智能化的IT管理目标,提高了资源利用率,减轻了运维人员工作量,提升了运维工作效率,保障了运维工作质量,增强了IT服务体验,节约了IT建设和运营成本。
关注【京东云开发者社区】,后台回复【PPT1123】查看活动PPT
点击“阅读”,进入京东云开发者中心查看沙龙视频
欢迎点击“京东云”了解更多精彩