最近几年"DevOps"这个关键词经常出现在项目开发当中,特别是随着微服务/容器/cloud在项目中的大范围应用,你不想知道都很难。作为一个伴随CI/CD到DevOps一路走来的工程师,我将分几个部分漫话DevOps以及相关的概念,作为软件开发工程师,你需要知道并且开始践行DevOps, 它应该成为你职业素养的一部分。

笔者是在2015年左右开始听说“DevOps”这个名词,最早听说并实践的一直是CI/CD (后面会介绍它们之间的关系),从CI/CD开始,你会更容易理解DevOps倡导的文化。

What is DevOps ?

DevOps 是一组用于促进开发和运维人员之间协作的过程、方法和系统的统称。

Wikipedia对DevOps的定义是:

DevOps是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个集合。 它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关系的一种新的理解。 ...... DevOps并不仅仅关注软件部署,它是部门间沟通协作的一组流程和方法。

DevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。

从下图中,可以看到Dev 和Ops 关注的点是不同的,并且有各自的利益和关注点,沟通必然存在障碍。一个想快速迭代,一个想稳定;一个不关心怎么部署运维,一个不清楚开发架构;由此带来的就是效率的低下,以及相互的抱怨,但是完整的项目并不是仅仅代码写完就完事了,质量/稳定/运维才是更重要的。

DevOps 提倡通过一系列的技术和工具降低开发和运维人员之间的隔阂,实现从开发到最终部署的全流程自动化,从而达到开发运维一体化。通过将 DevOps 的理念引入到整个系统的开发过程中,能够显著提升软件的开发效率,使得各个团队减少时间损耗,更加高效地协同工作,缩短软件交付的周期,更加适应当今快速发展的互联网时代。下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。

DevOps 与传统开发方式

Why is DevOps ?

猛得听上去,DevOps很抽象,你可能会问以前没有DevOps不是一样开发交付吗?为什么是DevOps?

瀑布开发,敏捷开发都听过吧?DevOps你可以理解为新的开发模型,是文化和技术的方法论,需要公司在组织文化上的变革。

DevOps早在十年前就有人提出来,但是,为什么这两年才开始受到越来越多的企业重视和实践呢?因为DevOps的发展是独木不成林的,现在有越来越多的技术支撑。微服务架构理念、容器技术使得DevOps的实施变得更加容易,计算能力提升和云环境的发展使得快速开发的产品可以立刻获得更广泛的使用。

因为技术在发展,项目的开发过程也需要适应新的技术和框架,微服务那么多,容器可能上千个,你怎么快速部署/维护?

DevOps 的好处?

  • 依托自动化工具把开发、测试、发布、部署的过程整合,实现高度自动化与高效交付。
  • 在保证产品质量的前提下快速、频繁地发布产品。
  • 能够即使获得用户反馈,并快速响应。
  • 最大限度地减少风险,降低代码的出错率。
  • 高质量的软件发布标准。整个交付过程标准化、可重复、可靠。
  • 整个交付过程进度可视化,方便团队人员了解并控制项目进度。
  • 团队协作更高效。

DevOps 带来的变革

  • 角色分工:打破传统团队隔阂,让开发、运维紧密结合,高效协作
  • 研发:专注研发、高度敏捷、持续集成
  • 产品交付:高质量、快速、频繁、自动化、持续交付

简单的说,DevOps=团队文化+流程+工具

团队文化的意思很简单,就是你的团队要知道并认可DevOps理念;然后就要通过具体的流程和工具来实现这个理念。

后续,我会一点点根据自己的心得体会,慢慢总结分享对DevOps的理解

【漫话DevOps】What is DevOps?的更多相关文章

  1. 【读书笔记】 DevOps实践 - 驭DevOps之力强化技术栈并优化IT运行

    读书小结 DevOps实践 - 驭DevOps之力强化技术栈并优化IT运行 这本书共200页,读完大概三天:(我指的不是fulltime的一天,而是工作时间以外的一天) 本书是参加16年QConf开发 ...

  2. 腾讯云推出一站式 DevOps 解决方案 —— CODING DevOps

    在产业互联网的大背景下,如何将人工智能.大数据等前沿技术与实体产业相结合,推动传统企业转型升级,已经成为每一个企业不得不思考的问题.落后的软件研发能力已经拖慢了中国大量企业的数字化转型进程. 为了满足 ...

  3. DevOps教程:DevOps 面试题

     [注]本文译自:https://www.javatpoint.com/devops-interview-questions

  4. 给 DevOps 初学者的入门指南

    当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...

  5. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  6. DevOps is dirty work - What's the deal

    什么是DevOps?终于又回到这个最初的问题. 第一次看到这个词的时候,还身陷于各种敏捷概念轰炸中.用“身陷”这个词其实并不准确,因为那个年代的我也是那些热情洋溢地无处不宣传敏捷的热血文艺青年中的一员 ...

  7. CI Weekly #1 | 这份周刊,带你了解 CI/CD 、DevOps、自动化测试

    原文首次发布与 flow.ci Blog >> 链接,转载请联系:) 准备了很久,CI Weekly 第一期终于来了. CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分 ...

  8. XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化

    XP+devOps开发模式与scrum敏捷开发对比,docker虚拟化 我们现在用的就是典型的XP+devOps模式,已经放弃scrum了 现在还很多公司弄docker虚拟化docker非常复杂,当然 ...

  9. 企业运营对 DevOps 的「傲慢与偏见」

    摘要:出于各种原因,并非所有人都信任 DevOps .有些人觉得 DevOps 只不过给开发者改善产品提供了一个途径而已,还有的人觉得 DevOps 是一堆悦耳的空头支票,甚至有人认为 DevOps ...

  10. 当我们在谈论 DevOps,我们在谈论什么?

    Cloud Insight 携手 BearyChat:打造适合运维人员的团队协作工具 走过 C 轮的 OneAPM,旗下的产品已经日渐丰满,从应用性能监控的 Application Insight 到 ...

随机推荐

  1. C#LeetCode刷题之#11-盛最多水的容器(Container With Most Water)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3615 访问. 给定 n 个非负整数 a1,a2,...,an,每 ...

  2. shazidouhui的使用体验

    这个软件有三个界面,一个是我的,一个是已批改作业,一个是未完成作业,但是,我不知道怎么用除了“我的”这个界面以外的其他两个界面,这一点还是需要优化优化,另外就是登陆界面确实还存在一点问题,有待改进.

  3. Solon 的 PathVariable 不需注解

    相对于 Spring boot 的 path variable :Solon 的不需注解,只要变量名对上即可: //path var demo // @XMapping("e/{p_q}/{ ...

  4. 汇编 | x86汇编指令集大全(带注释)

    做mit-6.828的时候遇到了很多汇编知识,但是无奈学校还没学汇编,只能狠心啃啃硬骨头,在网上查到了很多的资料,归档!方便查看 ----------------------------------- ...

  5. Webpack开发指南

    前言 成为一个全栈工程师,前端是必不可少的,这位前端构建工具webpack是一门必修的技术. 在学习webpack之前,先熟悉一下npm工具:https://www.runoob.com/nodejs ...

  6. HotSpot的垃圾回收器

    如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现.这里讨论的收集器基于JDK 1.7 Update 14之后的 HotSpot 虚拟机,这个虚拟机包含的所有收集器如下图所示 上图 ...

  7. java如何将char类型的数字转换成int型的数字,而不是Ascii

    如何把 char ‘3’ 转为 int 3, 大家应该知道,不能直接转化,那样得到是‘3’的Ascii. 如下面: public class Leet { public static void mai ...

  8. 计算机网络-应用层(3)Email应用

    因特网电子邮箱系统主要由用户代理(user agent) .邮件服务器(mail server) 和简单邮件传输协议(SMTP)组成   邮件服务器(Mail Server) 邮箱:存储发给该用户的E ...

  9. 团队作业1——团队展示&选题 (追忆少年)

    目录 一,团队展示 1.1队名 1.2队员学号 1.3项目描述 1.4队员风采 1.5团队分工 1.6团队合照 1.7团队特色 (一)目标导向 (二)协作基础 (三)共同的规范和方法 (四)技术或技能 ...

  10. node_第三方包下载文件package.jon详解

    配置原因第三方包的体积过大,不方便团队成员之间共享项目源代码共享时剔除node_modules 快速创建 package.json(只能在英文的目录下成功运行) npm init -y npm i 一 ...