从业者必读,一篇文章轻松掌握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工程师的硬实力

  1. 代码能力
  • 脚本语言:shell脚本,python编程
  • 高级语言编程能力: java,python,php,ruby,任意一种都可以
  1. 自动化能力
    常用的自动化工具: git, jenkins,gitlab,sonar,ansible,docker ,k8s

  2. 容器云能力
    docker,k8s是云时代必备

  3. 业务和流程能力

企业需要的不仅仅是一个工具,而是工具所关联的一整套解决方案,其中最重要的就是业务流程

3.2 devops工程师的软实力

软实力可能不仅仅是devops工程师必备的,而是打工人必备的:

  1. 沟通能力

能不能找到好工作靠的是沟通,能不能推动工作有所进展,靠的也是沟通能力。

  1. 同理心

  2. 学习能力

没有完美,只有持续不断的学习。

总结

知己知彼方能百战不殆,只有了解的要学的内容,才能制定计划,不迷茫,不焦虑。

💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 博客主页:mufeng.blog.csdn.net
💕 本文由沐风晓月原创,首发于CSDN博客
💕 曾国藩说: 一书未完,不读其他

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值