什么是DevOps?
之前的学习中了解到了什么是敏捷开发,本篇文章我们来了解什么是DevOps。本文相关内容来源网络,原文链接放在文章末尾。由于小编水平有限,仅供大家了解相关知识使用。
一、概念
维基百科对devops的定义是:
DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
看上去有点抽象,但我们可以简单理解为development(开发)和operation(操作)这两个单词的组合。即运维开发一体化。
二、产生背景
计算机从诞生起就和编程离不开了,由此诞生了程序员(码农)这一职业。
软件开发的一般过程是:
在早期的软件开发中,由于项目比较小,通常这些工作一个人就可以完成。到了后来项目越来越大,一个人已经无法完成巨大的工作量,于是出现了团队开发。
早期软件采用瀑布模型,后来出现了更灵活的敏捷开发模型,不管哪一种模型都为软件过程的开发环节提供很好的方法,但并没有设计软件的运维环节。
软件的开发和维护之间隔了一道高墙。敏捷开发的原则是快速对需求变化做出反应,而运维方追求的是“稳定压倒一切”——即不出问题。于是两者之间就形成了矛盾。
那有没有一种方法可以解决这个矛盾呢?这时DevOps应运而生。
DevOps旨在让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠,从而更好实现客户价值。
运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。DevOps的实施,促进开发和运维人员的沟通,增进彼此的理解。可以说DevOps打破了开发和运维之间的“高墙”。
三、DevOps中的一些名词
CI/CD :CI/CD是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。
CI/CD 的核心概念是持续集成、持续交付和持续部署。它是作为一个面向开发和运营团队的解决方案,主要针对在集成新代码时所引发的问题(也称为:“集成地狱”)。
CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。
这些关联的事务通常被统称为 CI/CD 管道,由开发和运维团队以敏捷方式协同支持。
微服务:所谓“微服务”,就是将原来黑盒化的一个整体产品进行拆分(解耦),从一个提供多种服务的整体,拆成各自提供不同服务的多个个体。
文章内容来源:知乎博主"小龙飞"什么是DevOps? - 知乎 (zhihu.com)
知乎博主"小枣君"DevOps到底是什么意思? - 知乎 (zhihu.com)