《DevOps的构建之路与案例分享教学文案》由会员分享,可在线阅读,更多相关《DevOps的构建之路与案例分享教学文案(48页珍藏版)》请在金锄头文库上搜索。
1、DevOps的构建之路与案例分享 汪珺 Part1DevOps由来与构成 Part2DevOps演进之路 Part3DevOps实施概要 Part4DevOps实践中的问题 问题现象 整个版本周期较长 有时一个月才能发布大版本线上常有质量问题 需消耗较多精力排查和修复 分析一个实际的案例 问题分析 各阶段周期时间分解关注等待 阻塞 浪费 问题定位 系统紧耦合 相互影响和阻塞多个子系统无法做到并行交付故障传播不可控 相互影响一端出问题 整个版本阻塞 各端未控制质量 集成时问题爆发开发自测不足 缺陷蔓延到集成阶段自动化能力缺失 大量依赖人工处理团队间存在资源争抢 相互冲突严重 环境交付未归一化 发
2、布效率低环境多依赖复杂 线下线上不一致环境准备时间长 维护成本高串行发布上线 需要长时间停服 这样PK 效率多低 另外 讨厌PM或者QA吗 消除沟通 利用资源 定位简单 稳定快速 过程自动 DevOps带来的收益 6 Amazon 11 6s 1079 hour 10 000 30 000 DevOps的理解 1 持续测试将成为关注热点 2 开发 安全和运维一体化 DevSecOps 3 DevOps指标日益受到关注 Part2 DevOps演进路线举例 数据度量与分析的实例 UserStoryNumber Currentfinishediterationsnumber Recentfinis
3、hediterationsnumber WarehouseNumberSubmissionNumberSubmissionfrequency BuildnumberBuildfrequencyBuildtimeSuccessrateofBuildAveragerecoverytime LinesofcodeLoopcomplexityBugNumberTestCasenumberTestCasecoverageTestCaseResult ForUnitTestAPIAutomationGUIAutomationManuallyDBandothersPerformanceTestresultS
4、ecurityTestResult EnvchangetimeEnvchangefrequencyDependencyrelationEnvconfigurationDBconfigurationDisasterrecoveryandbackupSecurityLevel ReleasehistoryReleaseNoteRequirementsdeliverycyclePublishingstrategy DeploymentfrequencyDeploymentsuccessrateDeploymentTimeChangingleadtime Resourcemonitoringinfo
5、CPU I O Memory Serviceandapplicationmonitoringinfo Performance Concurrency ProductissuestatisticsProductissuerecoverytime AimtoBusinessContinuityandQualitiedContinuousdeliveryCoreOKR KPIinDevOps Quality Throughout Stability Meantimeforchanges MTTR Deploymentfrequency Changefailurerate 设定KPI OKR考量体系
6、扩展到其他端 习惯培养及度量数据驱动改进 重点是对原则的坚持频繁集成红灯修复建立度量指标模型结果指标过程指标数据驱动持续改进 为什么做持续集成 持续集成其他相关联部分 持续集成 某DevOps框架说明 RoadmapDesign Evaluationandconsultation SolutionDesign DevOpsModeling ChangeMgr Design Compilerintegration PipelinePlatform CodeScan xUnit API GUIAutomation PerformanceTesting TestDataPreparation Sec
7、DevOps Test DevOpsPlatform Deploymentautomation Release upgradeauto Docker Clouddeploy CMDB Autorepairservice ConfigurationMgr Patchmanagement StandardizationAll Performanceanalysis DevOpsKPIAssessment UXServices ReleasepriorityMgr Strategicinvestment BISupport MobiletestServices MobileIntegration A
8、rchitectureDesign Agile Lean Training simulation Users Applications Systemmonitoringservice ContinueIntegration TransformationServices ConsultingServices ContinueTesting ContinueDelivery Continueoperation Continuefeedback DevOpsonMobile MicroserviceDesign InfrastructureDesign Servicevirtualization C
9、ustomizedintegration APMServices A 1 2 3 4 4 4 5 5 5 5 6 6 6 6 2 4 3 7 7 7 7 7 1 7 It sanAssumedRoadmapwithnumber1 7 Sequenceandcontentmaybechanged DevOps演进路线之一 DevOpsonCloud PublicCloud PrivateCloud SaaSonDemand MobileTestingCloud Citrix VmWareSupports DevOps转型工作室 IT4IT转型工作室 DevOps方案设计工作室 DevOps模型顾
10、问 变更管理服务 企业敏捷顾问 企业敏捷实践 编译集成自动化 测试自动化 变更的测试服务 服务虚拟化服务 测试数据管理服务 自动代码安全扫描服务 部署自动化 发布和升级自动化 云端部署自动化 用户 应用 系统监控服务 自动修复闭环服务 配置管理服务 补丁管理服务 Docker部署自动化 性能分析服务 DevOpsKPI评估 战略管理服务 用户体验管理服务 应用发布优先级管理鼓舞 战略投资顾问 移动端测试服务 移动端集成服务 企业架构方案 企业敏捷转型工作室 企业敏捷方案设计工作室 用户 应用 系统监控服务 1 2 3 4 5 6 7 企业敏捷服务 转型路线图服务 管理顾问服务 实施持续集成 测
11、试服务 实施持续部署 交付服务 实施持续运维服务 实施持续评估服务 移动端DevOps服务 DevOps演进路线之二 18 2 5 5 1 DevOps演进路线之三 20 根据演进路线 定义流程 工具和考核指标 Part3 DevOps实施概要 DevOps实施概要 22 组织和推动DevOps落地实施 培训和沙盘 建立分享与沟通的快速机制 咨询和诊断 推动 一切皆代码 和 全盘自动化 咨询和诊断 掌握项目级别DevOps方式 培训和沙盘 根据规划 局部DevOps化 咨询和实践 技术化一切代码和基础设施 培训 咨询和实践 建立DevOps文化和Lean精益管理文化 培训和沙盘 自上而下推动D
12、evOps进程及相关组织调整 沙盘和实践 需求列表 项目 故事 整体方案 正式发布 应用 客户 跨功能敏捷团队 需求任务 业务负责人 需求任务管理 DevOps流程 DevOps平台 工作 产品增量 业务驱动发布 反馈 反馈 反馈 合作 迭代 迭代 新需求 反馈 新需求 工作 反馈 实施 指导 DevOps流程建立举例 23 建立文化氛围 支柱 指标定义 直指价值 知识库培训体系建立 反映到CI CD中 构建任务流 工作流 Kanban 看见 是改变的开始 人们会选择性的接收信息 只会看到或者听到自己想看到或者听到的部分 业务知识类 基础技能类 业务规则 业务流 业务规则流图 测试点 系统架构
13、 测试技能 系统要素 界面操作 测试手段 测试用例库 测试用例 测试用例 测试用例 需求拆解 不能忘记KM 复杂场景下的业务需求矩阵 适应快速变化 变更驱动可追溯模板可度量行为数据 知识追踪评估 度量矩阵1 5在同一个控制表内 频繁四处变更关键员工离岗大量业务知识相关数据跟踪 难以评估 估量 管理失控 1 QA QC模板2 统一适配模板 客户所带来的烦恼 方案外特征 模板 四处频繁变更 关键员工离岗 难以评估 估量 无法追踪 无穷成本 知识快速培训与转移 效率评估与分析 NoCaseNeeds 数据优先 接口先行 快速迭代跟踪 模块化需求数据来源 操作前提统一配置模板横向纵向解析数据关联上下文
14、数据依赖 数据传递接口先行 敏捷便利异常 冗余测试覆盖量化 自动化异常 冗余测试覆盖矩阵自动匹配 生成 数据规则引擎 规则化一切 应对复杂 通过持续集成平台 实现代码自动化编译 单元测试自动化 集成代码扫描工具 自动打包发布 打通自动化功能测试平台 主要工具 代码仓库 Git SVN进行管理 静态检查 Sonar集成 单元测试 Junit 单测覆盖率 JaCoCo插件 编译打包 Gradle 集成部署 shell脚本 服务接口 自动化测试 Ruby 自动化测试平台 CI报告 Sonar 自动化测试平台 测试融入到持续集成中 DevOps中的分层测试 33 分级测试 宏观 34 稳定性 健壮性
15、MonkeyTest向系统发送伪随机的用户事件流 如按键输入 触摸屏输入 手势输入等 实现对正在开发的应用程序进行压力测试 代码质量管理 Sonar用于管理源代码的质量 可以从复杂度 重复 单测 代码标准 注释 潜在Bug 依赖设计七个维度检测代码质量Crash隐患扫描 Godeyes专注于无线App代码Crash隐患静态扫描 扫描规则提取来自APP的典型Crash案例代码 覆盖已有无线代码扫描工具 Findbugs PMD Checker等 的盲区Android资源扫描 LintAndroid资源 布局文件 图片 字符串 动画等配置文件 是App非常重要的一部分 Lint工具对无用资源进行扫
16、描 可以及时发现没有用到的资源 从而从App里删除 减少包大小 基于UI的自动化测试 Appium 静态测试 动态测试 分级测试 App端 技术评审模型 KPI OKR细化 开源实践快速评估 36 Part4 DevOps实践中的一些问题 DevOps实践中的一些问题 DevOps忽视组织改进 康威定律 设计系统的组织 其产生的设计和架构等价于组织间的沟通结构 工具最后都变成了玩具 扔掉了质量 单独追求效率 人员技能培养和团队建设 DevOps缺乏度量和约束分析 DevOps缺乏度量和约束分析 对非约束点的一切改进都是假象 凤凰项目 DevOps缺乏技术栈管理 DevOps缺乏技术栈管理 不知道培养哪方面的能力 不知道招聘什么样的人 不知道选择什么样的技术 不知道如何进行技术升级 DevOps在不同的上下文里 意义是不同的 BA DevelopmentTeam Dev QA Digital ITDepartment Ops OperationTeam OpsTeam BusinessTeam ProductTeam BusinessDevelopmentTeam DBA 如何判断Dev