从业者必读,一篇文章轻松掌握DevOps核心概念和最佳技能实践!
文章目录
- 前言
- 一. 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博客
💕 曾国藩说: 一书未完,不读其他
相关文章:
从业者必读,一篇文章轻松掌握DevOps核心概念和最佳技能实践!
文章目录前言一. DevOps的定义及由来二. DevOps的价值三. devops工具有哪些3.1 devops工程师的硬实力3.2 devops工程师的软实力总结前言 大家好,又见面了,我是沐风晓月,本文是对DevOps的总结,一篇文章告诉你什么是DevOps. 对很多…...
2023爱分析·一体化HR SaaS市场厂商评估报告:北森
目录 1.研究范围定义 2. 一体化HR SaaS市场分析 3.厂商评估:北森 4.入选证书 1.研究范围定义 研究范围 伴随数字化转型走向深入,企业人力资源数字化也进入快速发展阶段,人力资源的价值也得到了重新审视和定义。政策层面,《…...
JAVA练习67-二叉树的中序遍历
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目-二叉树的中序遍历 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 3月3日练习…...
【JeecgBoot-Vue3】第1节 源码下载和环境安装与启动
目录 一. 资料 1. 源码下载 2. 官网启动文档 二、 前端开发环境安装 2.1 开发工具 2.2 前后端代码下载 2.3 前端启动 Step 1:安装nodejs npm Step 2:配置国内镜像(这里选阿里) Step 3:安装yarn Step 4&…...
WebAPI
WebAPI知识详解day11.Web API 基本认知作用和分类什么是DOM?DOM树的概念DOM对象2.获取DOM对象通过css选择器获取dom对象通过其他方法获取dom3.设置/修改DOM元素内容方法1. document.write() 方法方法2. 对象.innerText 属性方法3. 对象.innerHTML4.设置/修改DOM元素…...
Shell命令——date的用法
date命令可以用来显示或设定系统的日期与时间。 一、显示系统的日期与时间 (1)如果date命令后面不加任何参数,则会按照固定的格式显示时间信息: 星期几 月份 日 时:分:秒 时区 年xjhubuntu:~/iot/tmp$ date Fri Mar 3 16:56:4…...
XSS跨站脚本
XSS跨站脚本XSS简介XSS验证XSS危害XSS简介 XSS被称为跨站脚本攻击(Cross-site scripting),由于和CSS(Cascading Style Sheets)重名,所以改为XSS。XSS主要基于javascript语言完成恶意的攻击行为,因为javascript可以非常灵活的操作html、css和…...
【强烈建议收藏:MySQL面试必问系列之慢SQL优化专题】
一.知识回顾 学习本篇文章之前呢,我们可以先看一下【强烈建议收藏:MySQL面试必问系列之SQL语句执行专题】,看完这篇文章再来学习本篇文章可谓是如虎添翼。好的,那我们也不讲太多的废话,直接开始。 二.如何做慢SQL查询优化呢&…...
windows,liunx,java实现apk解压,去签名、重新签名,重新打包apk
背景:由于项目需要,需要将apk包加入服务端返回的静态资源文件到apk中,形成离线apk包供下载安装。经过调查研究,决定使用apktool实现。关于apktool的资料可以参考 https://blog.csdn.net/quantum7/article/details/124060620 htt…...
【Linux】进程信号
🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉信号入门&…...
SpringBoot 集成Junit单元测试
学习文章: https://www.cnblogs.com/ysocean/p/6889906.html 开发工具: IDEA 2022.1.4 目录 目录 1. 概述 2. 实现步骤 2.1 maven导入依赖 2.2 随意代码演示(不推荐) 2.3 规范代码演示(推荐) 3. Junit相关其他注解 4. 注意事项 5. 结语 1. 概述 接触到Junit,…...
Android开发之简单控件
文章目录一 文本显示1.1 文本设置的两种方式1.2 常见字号单位类型2.2 设置文本的颜色三 视图基础3.1 设置视图的宽高3.2 设置视图的间距3.3 设置视图的对齐方式四常用布局4.1 线性布局LinearLayout4.2 相对布局RelativeLayout4.3 网格布局GridLayout4.4 滚动视图ScrollView五 按…...
树状数组讲解
树状数组 文章目录树状数组引入例题AcWing241.楼兰图腾思路代码AcWing 242. 一个简单的整数问题思路代码AcWing 244. 谜一样的牛思路代码总结引入 树状数组主要维护的是这样一个数据结构: tr[x]表示以x为终点的长度为lowbit(x)的前缀和、最大值、最小值、最大公约数…...
每个Android开发都应需知的性能指标~
无论你是发布一个新的 Android 应用,还是希望提高现有应用的性能,你都可以使用 Android 应用性能指标来帮助你。 在这篇文章中,我将解释什么是 Android 应用性能指标,并列出8个需要考虑跟踪的维度和建议的基线。 什么是 Android…...
MSYS2安装
最近在学习windows上编译FFmpeg,需要用到msys2,在此记录一下安装和配置过程。 点击如下链接,下载安装包: Index of /msys2/distrib/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 我下载的是:ms…...
3/3考试总结
时间安排 7:30–7:50 看题,怎么感觉三道构造,T3 貌似有网络流背景。 7:50–8:30 T1,有一些简单的性质,缩减两端点后枚举一下翻转的区间就可以了。然后花了一点时间写 spj 调试。 8:30–10:20 T2,比较纯粹的构造题。有网络流做法,…...
Spark Streaming DStream转换
DStream上的操作与RDD的类似,分为Transformations(转换)和Output Operations(输出)两种,此外转换操作中还有一些比较特殊的算子,如:updateStateByKey()、transform()以及各种Window相…...
水果商城,可运行
文章目录项目介绍一、技术栈二、本项目分为前后台,有管理员与用户两种角色;1、管理员角色包含以下功能:2、用户角色包含以下功能:三、用户功能页面展示四、管理员功能页面展示五、部分代码展示六、获取整套项目源码项目介绍 一、…...
LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像
LiveGBS国标GB/T28181国标视频流媒体平台-功能报警订阅配置报警预案告警截图及录像1、报警信息1.1、报警查询1.2、配置开启报警订阅1.2.1、国标设备编辑1.2.2、选择开启报警订阅1.3、配置摄像头报警1.3.1、配置摄像头报警通道ID1.3.2、配置摄像头开启侦测1.3.3、尝试触发摄像头…...
软件测试---测试分类
一 : 按测试对象划分 1.1 可靠性测试 可靠性(Availability)即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示。 1.2 容错性测试 行李箱 , 四个轮子 , 坏了一个 , 说明这个容错…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
