【k8s】:DevOps 模式详解

1.什么是DevOps模式?

DevOps 是当下非常火爆的一个概念,受到了很多互联网巨头的推崇。那么什么是 DevOps?它的全称是:集成开发与运维。至于它到底是干什么用的,为什么现在这么火爆,还得从源头说起。

1.1 瀑布模型

一个软件从零开始到最终交付,大概会经历规划、编码、构建、测试、发布、部署、维护等几个阶段:

运维嵌入grafana 运维devops_敏捷开发

最初,程序比较简单,工作量也不大,程序员一个人就能完成各阶段的工作。

随着软件行业的不断发展,软件的规模也逐渐庞大,软件的复杂度不断提升,一个人已经无法应付自如,因此开始出现精细化的分工。

程序员的数量扩大,工种增多,除了软件开发工程师,还有软件测试工程师、软件运维工程师等等。

运维嵌入grafana 运维devops_运维_02

软件开发人员花费数周甚至数月的时间编写代码,然后将代码交给 QA(质量保证)团队进行测试,然后将最终版本交给运营团队进行部署。全部三个阶段:开发、测试、部署。

早期采用的软件交付模型称为“瀑布模型”:

运维嵌入grafana 运维devops_devops_03

简而言之,瀑布模型意味着等待一个阶段的所有工作完成后再进入下一个阶段。

这种模式适合条件比较理想的项目(用户需求非常明确,开发时间非常充足),大家按照流程,轮流做事,各司其职。

1.2 敏捷开发

但是项目不可能是单向运作的,客户也有需求,产品也有问题,需要改进,随着时间的推移,用户对系统的要求不断提高,而与此同时,用户给出的时间周期却越来越短,在这种情况下,大家发现繁琐、缓慢的瀑布式开发已经不再合适。

因此,软件开发团队引入了一个新概念,即著名的“敏捷开发”。

敏捷开发在 2000 年左右开始受到关注,是一种能够应对快速变化需求的软件开发能力。简单来说就是把大项目变成小项目,把大时间点变成小时间点,然后:

运维嵌入grafana 运维devops_devops_04

与 DevOps 经常出现的两个词是 CI 和 CD。CI 代表持续集成 (Continuous Integration),而 CD 则对应多个英文单词,持续交付 (Continuous Delivery) 或持续部署 (Continuous Deployment)。

说是“连续”,其实就是“加速-重复-加速-重复……”,就像这样。画个图大家可能更明白:

运维嵌入grafana 运维devops_运维_05

敏捷开发大大提高了开发团队的工作效率,版本更新更加快捷。

很多人可能会想:更新速度快的话,风险不是更大吗?

事实上,事实并非如此。

敏捷开发可以帮助更快地发现问题,更快地将产品交付给用户,更快地得到用户的反馈,因此团队可以更快地做出响应。而且 DevOps 小步子、快跑带来的版本变更相对较少,风险也较小(如下图所示),即使出现问题,也会相对容易修复。

运维嵌入grafana 运维devops_敏捷开发_06

1.3 DevOps开发与运营一体化

敏捷开发虽然大大提高了软件开发的效率和版本更新的速度,但是其效果却仅限于开发阶段,研发人员发现运维端依然是一块坚实的阻碍,成为了新的瓶颈。

运维工程师和开发工程师的思维逻辑完全不一样,运维团队的座右铭很简单,就是“稳定压倒一切”,运维最核心的诉求就是避免出现问题。

什么时候最容易出现问题?当发生变化的时候,最容易出现问题。所以运维是非常排斥“变化”的。

于是,两人的矛盾就爆发了:

运维嵌入grafana 运维devops_敏捷开发_07

这时候,DevOps出现了。DevOps这个词,其实是Development和Operations两个词的组合,它的英文发音是/de'vɒps/,类似“迪沃普斯”。

运维嵌入grafana 运维devops_运维_08

DevOps 是一组流程、方法和系统,旨在促进开发、技术运营和质量保证 (QA) 部门之间的沟通、协作和集成:

运维嵌入grafana 运维devops_运维_09

从目标上来看,DevOps就是为了让开发人员和运维人员能够更好地沟通和协作,并通过自动化的流程让整体软件流程更加快捷、可靠。

运维嵌入grafana 运维devops_微服务_10

很多人可能觉得,所谓的 DevOps,无非就是 Dev+Ops,只要把两个团队合并起来,或者把运维划归到开发,就可以了,简单粗暴。

注意,这种观点是错误的,这也是近年来DevOps难以落地的主要原因。

想要真正把 DevOps 做到极致,首先要做的就是转变思维方式,或者说“洗脑”。不但运维人员需要洗脑,开发人员也需要洗脑,员工需要洗脑,领导更需要洗脑。

DevOps 不只是组织架构的改变,更是企业文化和思维模式的改变,如果思维模式不能改变,就算员工拼凑在一起,也不会擦出火花。

除了洗脑之外,整个流程的规范和标准都按照DevOps的思维进行重新梳理。

在DevOps流程下,运维人员会在项目开发期间介入开发过程,了解开发人员所使用的系统架构和技术路线,制定合适的运维计划。开发人员也会在运维前期参与系统部署,并为系统部署提供优化建议。

DevOps的推行促进了开发和运维人员之间的沟通,增进了相互的了解。

在转变思维和流程的同时,如果要全面推行DevOps,当然离不开软件和平台的支持。

支持 DevOps 的软件有很多,篇幅有限就不一一介绍了,不过现在 DevOps 这么火也是因为这些软件和平台,你可以趁机卖掉赚钱。

运维嵌入grafana 运维devops_devops_11

在上述关键因素中,技术(工具与平台)最容易落地,其次是流程,而思维方式的转变最难。

也就是说,DevOps考验的不只是一家公司的技术,更考验公司的管理水平和企业文化。

对比上面提到的瀑布式开发与敏捷开发,我们可以明显的看到,DevOps贯穿了整个软件生命周期,并不局限于开发阶段。

运维嵌入grafana 运维devops_运维_12

云计算技术近几年发展很快,虚拟化、容器、微服务等概念大家应该都很熟悉,提到这些概念的时候我们偶尔也会提到DevOps。

它们之间有什么联系?

事实上非常简单。

你可以想象一下,如果我们要将一项任务划分成更小的部分,是加工一大块铁更方便,还是把它分割成几块进行加工更方便?

显然拆分之后会更加方便。

所谓“微服务”,就是将原本黑箱化的整体产品从提供多个服务的整体拆分(解耦)成多个提供不同服务的个体。如下图所示:

运维嵌入grafana 运维devops_微服务_13

在微服务架构下,不同的工程师可以处理他们负责的模块,例如开发,测试,部署和迭代。

虚拟化其实是一种敏捷的云计算服务,它从硬件角度把一个系统“划分”成多个系统,使系统之间相互隔离,便于微服务化。

容器则更加彻底,不再划分到不同的操作系统,而是划分到操作系统上的不同“运行环境”(Container),占用资源更少,部署速度更快。

虚拟化和容器其实为DevOps提供了很好的前提条件,开发环境和部署环境可以得到更好的隔离,减少互相的影响。

这也是为什么DevOps在2009年并不流行,而现在却越来越流行的主要原因之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148564.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vue3 vxe-grid 通过数据库返回的列信息,生成columns,并且其中有一列是img类型,进行slots的格式化处理。

1、一般我们写死的列信息的时候,会这样定义: 2、然后我们在template里面,这样这样写slots格式化部分: 这样表格中就会展示出一张图片,并且,我们点击了可以查看大图。 3、那么我们从数据库中返回的列&#…

二维矩阵的行、列、斜线特征(二维数组)

1. 行特征 二维 n*m 矩阵,用 x[i][j] 表示第 i 行第 j 列的元素。同一行的元素的 i 值是相同的。 例如,上图中绿色格子的数组元素分别是 x[4][1],x[4][2],x[4][3],x[4][4],x[4][5],x[4][6]。 …

IDEA明明模块和环境变量配置的是JDK8但是显示别的版本解决方案

IDEA明明模块和环境变量配置的是JDK8但是显示别的版本解决方案 我目前系统中存在JDK8,JDK11,JDK17等多个版本,方便开发使用,但是有些时候也是比较烦人的,因为不同版本的JDK包有所区别。 需要注意的几个地方。方便自己排查一下。

UML——统一建模语言

序言: 是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件…

信息安全工程师(14)网络攻击常见技术方法

前言 网络攻击的常见技术方法多种多样,这些方法旨在未经授权地访问、破坏或窃取目标系统的信息。 1. 侦察与信息收集 开放源情报收集:利用搜索引擎、社交媒体等公开渠道获取目标的基本信息。扫描技术:包括端口扫描、服务扫描等,以…

UE学习篇ContentExample解读-----------Blueprint_Mouse_Interaction

文章目录 总览描述(Blueprint_Mouse_Interaction)阅览解析1、PlayerControler分析2、拖拽球蓝图分析:3、移动的立方体分析: 新概念总结致谢: 总览描述(Blueprint_Mouse_Interaction) 打开关卡后…

腾讯云负载均衡ssl漏洞(CVE-201602183)解决

绿盟漏洞扫描腾讯云应用,提示有1个高危、1个中危。 看IP是应用服务器前端的负载均衡。 漏洞详细信息如下: 根据腾讯云文档,可以通过设置负载均衡加密算法设置,来缓解漏洞风险。 登录 负载均衡控制台,在左侧导航栏单击…

一篇讲完HTML核心内容

一、HTML 1、 HTML概念 网页,是网站中的一个页面,通常是网页是构成网站的基本元素,是承载各种网站应用的平台。通俗的说,网站就是由网页组成的。通常我们看到的网页都是以htm或html后缀结尾的文件,俗称 HTML文件。 2、…

力扣 困难 154.寻找旋转排序数组中的最小值 II

文章目录 题目介绍题解 题目介绍 题解 题源: 153.寻找旋转排序数组中的最小值 在此基础上,进行二分之前,单独处理一下左指针和最后一个数相同的情况就好了。 class Solution {public int findMin(int[] nums) {int left 0, right nums.le…

pytorch学习笔记二:用pytorch神经网络模型做气温预测、分类任务构建和分类网络构建、卷积神经网络原理介绍

文章目录 一、搭建pytorch神经网络进行气温预测1)基础搭建2)实际操作标识特征和标签3)构建成标准化的预处理数据(做标准化收敛速度更快) 二、按照建模顺序构建完成网络架构1)np.array格式的标签(y)和特征(x…

CORE Kestrel Web、InProcess、OutOfProcess、启动配置、

Kestrel 服务 ASP.NET Core是一个跨平台框架。 这意味着它支持在不同类型的操作系统(例如Windows,Linux或Mac)上开发和运行应用程序。 Kestrel是ASP.NET Core应用程序的跨平台Web服务器。 这意味着该服务器支持ASP.NET Core支持的所有平台和…

Spring MVC 基本配置步骤 总结

1.简介 本文记录Spring MVC基本项目拉起配置步骤。 2.步骤 在pom.xml中导入依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>6.0.6</version><scope>…

RTSP学习

RTSP基本原理 实时流传输协议(RTSP:RealTimeStreaming Protocol1)是一种网络传输协议,旨在发送低延迟流。 该协议由RealNetworks,Netscape和哥伦比亚大学的专家在1996年开发。它定义了应如何打包流中的数据以进行传输。 类似一个控制命令的协议play teardown 负责音视频的数据…

验收测试:从需求到交付的全程把控!

在软件开发过程中&#xff0c;验收测试是一个至关重要的环节。它不仅是对软件质量的把关&#xff0c;也是对整个项目周期的全程把控。从需求分析到最终的软件交付&#xff0c;验收测试都需要严格进行&#xff0c;以确保软件能够符合预期的质量和性能要求。 一、需求分析阶段 在…

数据结构(7.3_5)——红黑树的插入

红黑树的插入 注意&#xff1a;插入时候重点考察“不红红”特性&#xff08;红黑树的性质&#xff09; 染色&#xff1a;哪几个结点有变动就红的变黑&#xff0c;黑的变红 RR、LL、LR、RL从爷结点开始算起 非根结点的插入只需要判断是否违背的“不红红”特性 练习&#xff1…

UG NX二次开发(C#)-建模-根据拉伸体获取草图对象

文章目录 1、前言2、在UG NX中创建基于草图的拉伸对象2.1 在建模模块中进入草图环境2.2 创建拉伸特征2.3 分析拉伸特征父项3 实现代码3.1 基于NXOpen实现3.2 UFun函数实现3.3 效果1、前言 今天在QQ群中,有个群友咨询了根据拉伸体获取草图对象,我今天难得清闲一次,就讲一下吧…

PatrOwl:一款开源可扩展的安全协调运营平台

关于PatrOwl PatrOwl是一款开源可扩展的安全协调运营平台&#xff0c;广大研究人员可以使用该工具完成组织内部的安全协调运营。 该工具是一种可扩展、免费且开源的解决方案&#xff0c;用于协调安全操作。其中的PatrowlManager是前端应用程序&#xff0c;用于管理资产、实时审…

如何进行Ubuntu磁盘空间深度清理?

近期使用AutoDL算力云&#xff0c;发现系统盘只有30G&#xff0c;数据盘只有50G&#xff0c;跑一个稍微大一点的模型&#xff0c;马上空间就拉爆了&#xff0c;现在做一个磁盘深度清理操作&#xff0c;看看效果。 清理前磁盘占用如下&#xff1a; 在 Ubuntu 系统中进行磁盘深度…

云原生|浅谈云原生中的对象存储之MinIO 的使用

一、什么是对象储存 对象存储&#xff08;Object Storage&#xff09;以对象的形式存储和管理数据&#xff0c;这些对象可以是任何类型的数据&#xff0c;例如 PDF&#xff0c;视频&#xff0c;音频&#xff0c;文本或其他文件类型。对象存储使用分布式存储架构&#xff0c;数据…

Centos 8安装VNC及多用户配置详细教程

Centos 8安装VNC及多用户配置详细教程 参考一、安装前准备二、安装三、创建新用户和设置VNC密码四、创建VNC系统服务文件五、多用户映射和配置VNC六、客户端用VNC Viewer登录 参考 1、参考1&#xff1a; VNC安装英文说明&#xff08;英文说明有误且仅适合单用户&#xff09;&a…