什么是 DevOps
如今 DevOps 已经成为一个流行词,很多公司都在说自己在做 DevOps,但是每个人、每家公司理解的 DevOps 又不尽相同,从 DevOps 诞生的第一天起,如何定义 DevOps 就是一个争论不休的话题。 这篇文章,CORNERSTONE认为基本诠释了 DevOps 的定义:DevOps 是什么不是什么 如果你没有耐心把这篇文章看完,维基百科还给出了一个太长不读版: DevOps (a clipped compound of “development” and “operations”) is a software development and delivery process that emphasizes communication and collaboration between product management, software development, and operations professionals.It seeks to automate the process of software integration, testing, deployment, and infrastructure changes by establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.
归纳成三点: DevOps 是一种强调沟通与协作的软件交付过程。它包括产品管理,软件开发及运营等各个方面。 DevOps 自动化软件集成,测试,部署以及基础设施的变更。 它的目标是建立一种文化和环境,使得软件的构建、测试、交付更快,更频繁,更可靠。
DevOps 的由来 为什么要实践 DevOps更短的交付周期,生产环境部署频率越来越快,简化生产部署流程,且自动化不停机部署 更高的价值,形成特性提出到运营数据、用户反馈验证的实验性交付闭环,基于实际用户反馈调整计划和需求 更好的质量保障,在代码检查,功能和非功能验证,以及部署各方面建立较完善的质量保障体系,尤其是自动化测试集 更高绩效的团队,包含业务,开发测试,和运维职能在内的一体化团队,以产品交付为共同目标紧密协作,共同承担责任
DevOps 在技术领域的实践DevOps运作包括文化(全功能,自运维)和技术(自动化,度量反馈)两方面,而技术能力的改进主要关注以下六个领域: 内建质量体系通过持续代码评审,静态分析,自动化测试,自动部署验证等手段构成一套有效的质量保障体系。 主要实践包括: TDD:测试驱动开发的思想,保证代码质量和不偏离业务需求的技术实现 结对编程和代码审查,依靠团队的自治性让团队成员互相监督和审查代码质量 自动化测试,高自动化,且高频率运行的测试,保证测试用例质量的同时保证了交付软件的质量
持续部署
CORNERSTONE通过自动化的构建,部署过程快速频繁地将软件交付给用户,提高吞吐量;同时保障过程的安全,平滑,可视。 主要实践包括: 持续监控
CORNERSTONE持续对运行环境在系统,应用层面进行监控,及时发现风险或问题,保障系统运行的稳定性。 主要实践包括: 度量与反馈
CORNERSTONE通过对用户行为或业务指标的度量或反馈收集,为产品的决策提供依据。 主要实践包括: 环境管理
CORNERSTONE通过对服务器环境的定义,自动化建立和配置、更新等提高基础设施管理的效率,一致性,并更有效利用资源,可伸缩的架构,保证服务的健壮性。 主要实践包括: 松耦合架构对传统应用架构进行领域组件化,服务化,提升可测试性和可部署性。 主要实践包括:
典型DevOps的持续交付流水线全景图
软件开发全生命周期的持续优化 |