在以往工作经历中,总是遇到各种各样的问题
产品需求过于简单,漏洞百出,线上处处留坑,异常场景考虑欠缺
技术架构复杂不统一,不同团队维护多种架构,开发风格多样,开发质量无检测,无review code
测试耗时,业务场景不熟悉,测试难点问题重复出现,不能自动化测试
产品,研发,测试不是一个整体,项目串联无质无序
1 DevOps核心理念
DevOps是以快速交付价值,给与开发最大自由度,负责开发和运维的全部过程。在监控、故障防控工具,功能开关的配合下,可以在保障用户体验和快速交付价值之间找到平衡点。
1.1 DevOps核心理念之松管控和强卡点
松管控:应用 Owner可以完整定义这个应用的各种规则,比如如何发布,如何测试,如何进行资源、环境 配置等。我们有通用构建和自定义构建,可以给开发最大自由度。最后是“轻发布,重恢复”。在每一个应用维度,开发可以随时使用流水线来交付代码,而并不需要特别的限制,仅仅需要思考的是如果出问题,我们应该如何快速恢复。
强卡点:代码审核和质量红线;代码安全检查、规约检查;发布、封网窗口等。还有所谓“变更三板斧”:可灰度、可监控、可回滚。这些卡点是为了保障所有开发工程师步调统一,交付合格的产品。
1.2 DevOps核心理念之应用中心
DevOps是应用为中心。应用信息其实可以归纳为CMDB(Configuration Management Database配置管理数据库)中的一种数据。它对于研发人员天然是亲切的,它可以直接对应一个服务,一个代码库。以代码为起点,我们又可以串联流水线、环境、测试、资源。最外围是工具链:监控、DB、运维、中间件等等。
2 DevOps实践之敏捷开发
随着5G、人工智能、IOT等新技术的迅猛发展,企业的业务都将构架在软件和互联网之上。软件交付能力成为企业的核心竞争力,随着市场竞争的加剧,企业对研发效能的期望越来越高。然而新技术、新业态的不断涌现,又使企业的业务变得越来越复杂,各个团队之
间的协作也越来越困难,企业的研发效能呈现降低趋势。“期望”与“现实”之间产生了巨大的“Gap”,正是我们要努力的方向。
2.1 敏捷开发之效能问题
局部效率 ≠ 高效交付 ≠ 持续高效