1 背景与需求分析
1.1 DevOps
DevOps是促进开发、运维和质量保障等部门之间的沟通、协作和整合所采用的流程与方法论。它是注重开发工程师(Dev)和运维工程师(OPS)之间文化理念,技术层面深入沟通,协商出适合客户业务的“架构变更”和“代码交付”的管理流程,并为了快速开发软件产品或服务,以满足某个业务目标的一种互相依存的关系。
针对DevOps的落地,博思云为提供覆盖开发人员架构、开发文化,流程变革、人员角色、关键环节、交付物等DevOps实施咨询方案,形成需求分析、版本管理、持续集成、持续部署,自动化测试、测试验证,发布及监控在DevOps下的流程体系
1.2 客户痛点分析总结:
2 项目流程
2.1 开发阶段
DevOps要需要整个团队管理的能力,提供不同的角色在平台上进行开发协作,分配不同的权限。开发人员正式进入开发阶段、进行技术考研、探讨及需求确认,还可能需要对接业务上的联系等。在完成开发后、需要对功能进行评审。
2.2 构建测试阶段
在完成开发任务时、需要对代码构建、进行版本控制。尽可能以增量的方式执行阶段的开发任务,每个Build构建的周期一般不超过两星期,每一次Build构建都会发布为一个内部版本,并提交测试。
在代码构建完成后、必须严格测试,确保代码风格一致,使用调试模式启动程序,一行一行单步执行代码,并注意调试输出。测试分支的代码测试通过后、才能够合并到主分支。同时还要备注当前分支的描述、方便查看回滚时的信息。测试人员测试完毕后、编写测试报告、执行情况、Bug汇总及测试总结等情况。
2.3 部署搭建阶段
对分支上的代码进行测试环境部署、再进行测试、没有问题的话直接合并到生产环境中。在部署环境复杂的情况下、可通过第三方工具例如 Jenkins 进行持续部署、简化部署就节约了开发时间等。
2.4 监控阶段
监控是业务在发生故障前或已经发生故障后,做出及时处理,保障业务持续提供服务。分为基础资源和关键业务指标的监控:(1)基础资源的健康是保障业务持续运行基础的基础。做好基础资源状态的监控是为了避免故障出现或在故障出现前提前进行处理,而日志是为了故障出现后快速进行解决以免造成业务的损失;(2)关键业务指标是业务提供最好体验的核心。做好实时监控,避免某个参数指标的问题造成业务体验差或者业务不可访问,监控是为了提前获得业务故障的预警,以及在出现故障时能够及时分析并解决,日志是为在出现故障时能够作为故障解决的依据并作为日后审计依据。
2.5 运维阶段
运维是为让应用程序能够健康运行以及持续提供业务价值,所以需要我们提供一套完善的运维管理体系,其中包括负载健康巡检,基础资源状态监控及日志,关键业务指标的监控及日志,日志管理,响应管理,配置管理,人员管理,优化管理。