文章目录
- 前言
- 一. DevOps的定义及由来
- 二. DevOps的价值
- 三. devops工具有哪些
- 3.1 devops工程师的硬实力
- 3.2 devops工程师的软实力
- 总结
前言
大家好,又见面了,我是沐风晓月,本文是对DevOps的总结,一篇文章告诉你什么是DevOps. 对很多挂在嘴边的东西不能只停留在知道英文单词怎么写的程度。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云社区专家博主😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. DevOps的定义及由来
我们先看看维基百科对DevOps 的定义,看不懂也没事,计算机的世界就是这样,每个字都认识,但当我们用一段话深入浅出的方式讲解一个概念的时候,反而看不懂了:
DevOps(开发 Development 与运维 Operations 的组合词)是一种文化、一场运动或实践,强调在自动化软件交付流程及基础设施变更过程中,软件开发人员与其他信息技术(IT)专业人员彼此之间的协作与沟通。
它旨在建立一种文化与环境,使构建、测试、软件发布得以快速、频繁以及更加稳定地进行。
它仿佛在说:
在这里我们不得不提两个岗位,分别是:开发和运维,以及开发和运维的关系。说到开发和运维的关系又离不开一整套的工作流程,比如我们常说的瀑布式开发模式。
瀑布式开发模式(Waterfall model)是一种经典的软件开发方法,它强调开发过程的线性流程,按照一定的顺序,逐个完成各个阶段的工作,直到整个项目开发完成。瀑布模型通常包括以下阶段:
- 需求分析阶段:明确需求,定义软件系统的功能和性能等要求。
- 设计阶段:制定系统的整体设计方案,包括软件架构、模块设计等。
- 编码阶段:根据设计文档编写程序代码。
- 测试阶段:对编码完成的程序进行各种测试,如单元测试、集成测试和系统测试等。
- 运维阶段:部署和维护软件系统,包括系统安装、用户培训、故障处理等。
瀑布模型的优点是工作流程清晰,容易管理和控制,每个阶段的输出是另一个阶段的输入,可以降低沟通成本和风险。
但是它也存在一些缺点, 这套按部就班的流程中需要在项目一开始就定好项目目标,范围及实现方式,而这个时间点是我们对用户和市场环境了解最少的时候,这时候做出的决策,定好的计划,往往会受到市场的影响,很容易导致因为市场和用户需求的变化导致项目范围不断变更,交付时间不断推后。
一个形象的例子是,假设你正在建造一座房子,按照瀑布式开发模式,你需要先完成设计阶段,然后进入建造阶段,最后是验收和交付阶段。
在设计阶段,你和客户沟通,制定房子的规格和设计方案。
在建造阶段,你按照设计图纸进行建造。
在验收和交付阶段,你和客户一起检查房子是否符合设计要求,并将其移交给客户。
这或许是最完美的情况了吧,一旦在建造阶段发现设计有问题,就需要回到设计阶段重新修改,或者在验收阶段发现问题,一夜回到解放前。
基于这个问题,敏捷思想开始流行,它的核心理念是,既然我们无法充分了解用户的真实需求是怎样的,那么不如将一个大的目标不断拆解,把它变成一个个可交付的小目标,然后通过不断迭代,以小步快跑的方式持续开发。
与此同时,将测试工作从研发末端的一个独立环节注入整个开发活动中,对开发交付的内容进行持续验证,保证每次可交付的都是一个可用的功能集合,并且由于质量内建在研发环节中,交付功能的质量也是有保障的。
看上去是不是比瀑布式更完美了,但这能提高团队的开发速度吗? 答案是,不能。 编码速度没有提高。
敏捷之所以更快,根本原因在于持续迭代和验证节省了大量不必要的浪费和返工。
敏捷源于开发实践,让开发和测试团队团结起来,抱团取暖。 但不管开发和测试多么团结友爱,都最终会倒在上线的门槛上。
毕竟无论功能多么强大的应用,无论测试结果多么好,都只是在测试环境,没有最终交付给用户使用。
这时候就有人提出,能不能让运维也参与进来,不要在最后上线的时候出问题, 这时候DevOps思想就应运而生,而最初的devops思想只是为了打破开发和运维之间的对立形态。
对运维团队来说,他们的考核指标是:系统的稳定运行,或者叫核心业务的稳定运维。 可用性是大头,安全性排第二,至于新功能? 不加更好。
开发人员开发的代码不会百分百可用,这就导致稳定运行受到威胁,影响运维绩效的不是服务器,不是正在跑的业务,而是开发要上线的新bug.
这谁受得了,断人财路是不共戴天之仇。
所以上线就变得越来越难,交付也会越来越难。业务服务的稳定性至关重要,如果想要跟开发合作,最好的办法就是不要上线不靠谱的需求。
于是运维人员需要收集线上数据来帮助开发人员,帮助团队做评估决策。
上线变得简单了之后,那安全呢? 于是安全人员也加入进来,各个部门齐心协力,队伍不断壮大,慢慢把devops变成了每个IT人都需要学习的思想。
最后总结一下:
我们说devops是一种文件,那这种文化就是通过平台,流程和人的有机结合,以协作,自动化,精益,可度量,共享文化为指引的合作模式,最终打造可以快速交付,持续改进的现代化IT组织。
二. DevOps的价值
软件最终交付,最需要关注的就是交付质量和交付效率,而影响这两个指标的是:
- 部署频率
- 变更前置时间
- 服务恢复时间
- 变更失败率
Devops不仅做到了高效率,还实现了高质量。
更重要的是devops最终提升了交付效率,节约了时间,还能让人休息一会,这很大程度上提高了幸福水平。
不是常说: 工作本身不难,难的是那些C淡的人和事, 而devops避免了部分相互扯皮的问题,比如瀑布式流程那种。
三. devops工具有哪些
3.1 devops工程师的硬实力
- 代码能力
- 脚本语言:shell脚本,python编程
- 高级语言编程能力: java,python,php,ruby,任意一种都可以
-
自动化能力
常用的自动化工具: git, jenkins,gitlab,sonar,ansible,docker ,k8s -
容器云能力
docker,k8s是云时代必备 -
业务和流程能力
企业需要的不仅仅是一个工具,而是工具所关联的一整套解决方案,其中最重要的就是业务流程
3.2 devops工程师的软实力
软实力可能不仅仅是devops工程师必备的,而是打工人必备的:
- 沟通能力
能不能找到好工作靠的是沟通,能不能推动工作有所进展,靠的也是沟通能力。
-
同理心
-
学习能力
没有完美,只有持续不断的学习。
总结
知己知彼方能百战不殆,只有了解的要学的内容,才能制定计划,不迷茫,不焦虑。
💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 博客主页:mufeng.blog.csdn.net
💕 本文由沐风晓月原创,首发于CSDN博客
💕 曾国藩说: 一书未完,不读其他