根据官方文档及社区建设构建尽可能实用的知识体系,宏观掌握技术体系
尽览社区精品技术文章,将最受业界欢迎的使用方法收录其中
体系化整理,随时查阅具体技术细节,方便前端开发者日常开发
DevOps 实践涉及到开发部门以及软件研发的整个生命周期,这意味着在整个开发生命周期中,涉及到一大批新旧工具,包括从规划、编码、测试、发布、监控等自动化的流程工具。
国内管理平台服务:
自动化是 DevOps 底线。如果软件系统没有一套较完善的自动化测试体系,就请不要谈 DevOps,要想同时提升发布效率和产品稳定性,以自动化替代手工方式快速、频繁的对软件质量进行验证是首要的手段。
主要体现在三点上:
实现 DevOps,需要给产品交付团队提供一个软件持续交付平台或者能持续交付的部署流水线,让软件从代码提交构建到交付给用户的整个过程能自动在流水线上完成。
主要体现在三点上:
以提高业务响应效率出发,要有一荣俱荣,精诚合作,共同进步的工作态度。
相信大部分读者对 DevOps 和 CI/CD 经常会弄混淆,那么如何来理解 DevOps 和 CI/CD 之间的关系呢?可以这样来理解:DevOps 是 CI/CD 思想的延伸,CI/CD 则是 DevOps 的技术核心,如果没有 CI/CD,没有自动化测试,DevOps 是没有任何意义的。所以说 DevOps 是以 CI/CD 为基础来优化程序的开发、测试、运维等各个不同环节。
持续集成是一种开发实践,它倡导团队成员需要频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、自动化测试)来验证,从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态,让产品可以快速迭代,同时还能保持高质量。
谈到 CD,其中是包含了两层内容:持续交付和持续部署。
持续交付 != 持续部署
有时候很多人会把持续交付误认为成持续部署,然而两者是两个不同层次的能力。
持续交付:
持续交付是持续集成的延伸或者看作持续集成的下一步,它将集成后的代码部署到类生产环境,确保可以以可持续的方式快速向客户发布新的更改。如果代码没有问题,可以继续手工部署到生产环境中。它强调的是,不管怎么更新,软件是随时随地可以交付的。
持续部署:
持续部署是持续交付的下一步,在持续交付的基础上,由开发人员或运维人员自助式的定期向生产环境部署稳定的构建版本,持续部署的目标是代码在任何时刻都是可部署的,并可自动进入到生产环境。
说到这里,相信大部人已经能清楚明白了,持续交付是指团队确保每个变更可以部署至生产环境,但也许并不需要实际部署,这通常可能是出于业务方面的原因。而持续部署是指每个变更可以自动部署到生产环境。只有成功实现持续交付的前提下,才能进行持续部署。
DevOps 持续交付的八大原则对可运维性给出了这样的定义,在企业中研发和运维体系必然需要相互配合,开发团队负责功能性需求实现的同时,在架构和编码上注重非功能性需求的实现,测试团队与运维团队将围绕着各自职能的需求,规划与建设 DevOps 流水线中对应的工具系统,加速企业 IT 价值链的流转,以为企业创造更大的商业价值。
DevOps 提倡的原则