DevOps——简析

article/2025/8/30 4:26:03

节选自百度等资料

知乎解析连接

一、DevOps的目的

        只有一个:提高开发到运维发布版本的效率。

        1.初级应用:开发运维一体化

        

        2.最高阶的应用:端到端的概念。

         

 

DevOps 的三大支柱之中,即人(People)、流程(Process)和平台(Platform)。即

DevOps = 人 + 流程 + 平台

人 + 流程 = 文化

流程 + 平台 = 工具

平台 + 人 = 赋能

二、DevOps概述

DevOps
产生原因        由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。
定义

        DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称。

        另一种理解:DevOps是一套实践方法,在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间

作用

         用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合

如何理解DevOps

        看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。

        它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

产品交付现状和DevOps
产品交付现状开发和系统管理划分成不同的部门,部门间由于职能存在些许矛盾(特指交付产品过程中存在的沟通衔接等)。
开发

        开发是由功能性需求(通常与业务需求直接相关)驱动的。

        交付代码之前,并不邀请运营人员参与架构决策或代码评审。

        可能对运行时环境缺乏了解,从而难以正确地对代码进行调整。

运营或运维

        由非功能性需求(例如可获得性、可靠性、性能等)驱动的。

        希望尽量避免修改功能,从而降低满足非功能性需求的风险。

        可能对应用程序内部缺乏了解,从而难以正确地选择运行时环境和发布流程。

DevOps方式产品诉求

要做的事

1、更小、更频繁的变更──意味着更少的风险

2、让开发人员更多地控制生产环境

3、更多地以应用程序为中心来理解基础设施

4、定义简洁明了的流程

5、尽可能地自动化

6、促成开发与运营的协作

成功依赖条件
领导层        勇气和无私奉献,需要花费时间和金钱,并且需要在团队成员筛选上做出艰难的决定。
调整考核和激励机制

        应该奖励系统创建和运维的整体团队,并且根据团队工作的全部要素来确定奖励。

        而非只根据敲出代码的生产力来奖励开发人员,或者根据基础设施的可靠性来奖励运维人员。

团队

        待在一起,共同为他们的应用和系统负责。

        应该有开发人员创建代码,从用户界面到业务逻辑和数据结构,也应该有运维人员负责操作自动化和部署

齐全工具箱

        依靠各种 DevOps 工具。

        例如,开发人员编写代码需要工具、QA测试人员需要用工具完成新版软件的部署,环境准备、将新代码在测试系统和生产系统之间迁移也必须用到云资源调度工具。

DevOps视角更全理解
自动化

        工具可以执行从构建、测试到执行的整个过程,针对生产环境或者一些外部规格说明检查操作的有效性,把过程中发生的错误通知适当的人,并且保留操作历史,以用于质量控制、报告和审计等目的。

        脚本和文件也应该进行版本控制,也应该进行错误检查,这个术语通常称为“基础设施即代码”。

开发团队的职责        在DevOps中,开发团队交付、支持并维护服务,这样因为所有所需的知识都保留在开发团队,需要向运维团队和支持人员转交的知识也就少了,就省掉了大量的协作步骤。
协作优势

1、DevOps的一个目标是最大程度减少协作,以缩短推向市场的时间

        理想的协作机制的特点:从是否有延迟、需要做的准备工作以及人们的时间这几个方面讲,是低成本的,从所有相关干系人的可视性、快速解决问题、有效交流所需信息这几个反面,是高收益的。

2、团队协作:自动化图案对协作机制的目的是保护图案对成员不受自身或其他活动的干扰。

3、跨团队协作:跨团队协作是一个最耗时的因素,DevOps过程试图尽量减少这种协作

DevOps团队结构
规模“两个披萨原则”:团队规模应该时两个披萨就够吃的。
团队角色
团队领导        负责协调团队,获取资源、保护团队不受问题的干扰。这个角色包含了项目管理的软技巧,但不包含注入制定计划、安排日程这样的技术能力。这些活动最好留给团队作为一个整体去完成。
退队成员        负责系统创建和交付,包括建模、编程、测试和发布等其他活动。
服务所有者        负责外部协作。服务所有者参与系统范围的需求活动,安排团队工作内容优先级,想团队提供来自团队服务的客户信息和提供给团队的关于服务的信息。服务所有者需要既能与其他干系人交流,又能与团队的其他成员交流。
可靠性工程师

多个职责:

        在部署完成后立即对服务进行监控,包括金丝雀测试集的使用和取自服务的各种不同的指标;

        服务执行期间出现问题后的联系人;

        必须深入理解服务的内部,这样才能修复故障或者采用临时解决方案。

看门人        在部署流水线中,决定将服务进入下一步的手动角色。参加决定发布包包含或不包含哪些内容的仲裁会议,了解罚不中包含的所有工作的背景和环境,对缺陷严重程度定级过程中存在的争议进行仲裁,可以批准最新添加的内容,可以坐出取消的决定。
DevOps工程师负责DevOps工具链中使用的各种工具的护理和保养。这个角色可以是个人、团队或组织层面。

三、DevOps岗位职责(招聘节选)

         

devops工作职责

 1. 负责线上服务运维与监控、应急响应、故障处理,支撑业务运维需求,保障业务的稳定运行
          2. 负责线上服务的架构和质量优化,实现高稳定、高可用的同时,达到最佳访问体验
          3. 负责公司自动化运维相关平台的设计和开发,参与公司整体运维体系的构建

企业对devops要求

要求A

1. 设计和实施构建运维自动化系统、提高运维、开发协作效率,规范操作流程。
2. 对性能,安全,故障监控有清晰的理解,并在自动化平台中集成相应的报警监控及日志收集功能。
3. 处理内外部用户在平台使用过程中的问题、收集各种反馈意见,对平台进行持续优化;

要求B

要求B1. Docker、Kubernetes、Mesos等;
2. 熟悉DevOps相关工具


http://chatgpt.dhexx.cn/article/qBMn19CN.shtml

相关文章

DevOps推广实践总结

中大型团队在敏捷DevOps转型过程中常见的实践总结 目录 1、聘用外部DevOps顾问 2、建立DevOps共识 3、采用“DevOps改进”而非“DevOps转型” 4、构建“比学赶超”的组织氛围 5、规范化DevOps实践 1、聘用外部DevOps顾问 小型团队可以不用聘用昂贵的外部教练,因…

DevOps

DevOps 一、DevOps的由来和概念1. 由来2. DevOps概念解析(1)来自不同渠道和来源的定义:(2)其他摘录 二、DevOps 工作流程1. DevOps的好处与价值2. DevOps能力环 三、devops流程工具四、DevOps发展现状哪些互联网公司采…

Devops的概念

1、什么是DevOps? 答:DevOps是产品开发过程中开发(Dev)和运营(Ops)团队之间的灰色区域。DevOps是一种在产品开发周期中强调沟通,集成和协作的文化。因此,它消除了软件开发团队和运营…

DevOps—基本概念

DevOps—基本概念 1. DevOps2. CI/CD 1. DevOps 维基百科定义: DevOps是一组过程、方法与系统的统称,用于促进 开发、技术运营 和 质量保障(QA) 部门之间的沟通、协作与整合。我理解DevOps是一种软件管理思维模式。 为什么会有D…

DevOps简介

一、DevOps定义:Development和Operations的组合,突出重视软件开发人员与运维人员的沟通合作,通过自动化流程使得软件构建、测试、发布更加快捷、频繁和可靠。 它是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成&#xf…

什么是 DevOps?看这一篇就够了!

文章目录 一、前因二、记忆三、他们说……3.1、Atlassian 回答“什么是 DevOps?”3.2、微软回答“什么是 DevOps?”3.3、AWS 回答“什么是 DevOps?” 四、DevOps 文化4.1、什么是文化?4.2、什么是 DevOps 文化?4.3、领…

Devops基本概念和原理

一、什么是DevOps 1、 DevOps概述 DevOps,即Development and Operations,是一组过程、方法与系统的统称,用于促进软件开发、运维和质量保障部门之间的沟通、协作与整合。DevOps的出现是由于软件行业日益清晰的认识到:为了按时交…

DevOps概念及搭建全过程(Jenkins、Harbor、SonarQube、K8s)

DevOps入门及过程搭建 在如今互联网的格局下,抢占市场变得尤为重要,因此敏捷开发越来越被大家所推崇。于是,慢慢的有了DevOps这个概念,大致意思是开发-运维一体化。 1 DevOps概念 1.1 基本概念 可以看到上图是一个无穷大的一个符…

Hzero数据库初始化

一:获取种子数据: git地址:https://gitlab.flytiger.net/huying-hzero/hzero-resource.git 二:配置数据库信息 打开hzero-resource项目,编辑application.yml配置文件,修改对应的数据库连接信息 三:初始化…

【Python学习笔记】深入剖析随机数种子

深入剖析随机数种子 一、定义1.1 作用 二、实战2.1 同样的随机数种子2.2 不同的随机数种子2.3 不指定随机数种子 三、随机数列的大小是多少呢?3.1 设定为百万,没问题3.2 设定为千万,没问题3.3 设定为亿,没问题3.4 设定为十亿&…

pytorch的主要模块

1. torch模块 torch模块包含了一些pytorch的常用激活函数,如Sigmoid(torch.sigmoid)、ReLu(torch.relu)和Tanh(torch.tanh);同时也包含了pytorch张量的一些计算操作,如矩…

np.random.seed()随机数种子学习笔记

文章目录 np.random.seed()随机数种子为什么使用np.random.seed()什么是np.random.seed() 代码理解np.random.seed()的参数适用情况 np.random.seed()随机数种子 为什么使用np.random.seed() 在机器学习中,有很多的操作和算法带有一定的随机性,所以在复…

种子项目详解

引言 在上一篇文章简单讲解了种子项目搭建,但是项目搭建起来是为了方便我们后续开发的。因此了解整个项目的架构,以及各个Maven模块是如何各司其职、相互依赖,是至关重要的。 这里分成两块介绍 lenosp自带的内容新增扩展的内容 lenosp自带…

【Abp VNext】实战入门(九):DbMigrator 自定义项目所需种子数据

前言: 项目开发过程中难免会涉及到一些业务相关的基础数据,我们称之为种子数据,主要为了方便测试功能或者展示效果; 常规做法是手动到数据库表创建数据,但是随着表结构更改或者数据清空后,又要重新录入基…

区块链模块化的大胆尝试,解读公链Celestia

作为以链游为主的社区,暴躁兔也会时常关注加密行业的其他赛道和方向。对于目前市场而言,公链的机会与红利仍然存在,且相对而言,技术创新较多,同时资本也比较喜欢这样的赛道。今天为大家讲解的是Cosmos生态的项目Celest…

scrapy_redis种子优化

前言: 继《scrapy_redis去重优化(已有7亿条数据),附Demo福利》优化完去重之后,Redis的内存消耗降了许多,然而还不满足。这次对scrapy_redis的种子队列作了一些优化(严格来说并不能用上“优化”…

总结一下Python的模块加载解析

正式的Python专栏第16篇,同学站住,别错过这个从0开始的文章! 学委之前分享了很多代码,也发布了几个库。 新手可以从两篇基础文章入手学习,积累了一些代码,可以考虑做成一个个模块,包装代码有利…

C++ 函数(模块化编程)

目录 函数定义 函数 函数定义的语法形式 函数调用 调用函数需要先声明函数原型 函数调用形式 嵌套调用 例3-1编写一个求x的n次方的函数 例3-2 数制转换 源代码: 例3-3 编写程序求π的值 arctan函数 主程序 例3-4 寻找并输出11~999之间的数M&#xf…

单片机常开常闭检测

单片机检测常开常闭点(干接点信号)的方法:检测干接点的闭合和断开,从而单片机实施一定的操作,它具有两根线,具体步骤:1、引出单片机一个IO口线,连接干接点一端。2、干接点另一端通过…

干海星怎么吃做法 干海星的功效与作用有哪些

干海星是生活中并不常见的一种海鲜类食材,在很多人眼中干海星都是一种中药材,其实它也可以当做一种菜品来食用,那么干海星应该怎么吃呢?接下来我就把自己总结的干海星吃法大全写出来分享给大家。 干海星怎么吃 干海星的功效与作用…