首页 > 其他分享 >DevOps是什么?DevOps能够给我们带来什么?

DevOps是什么?DevOps能够给我们带来什么?

时间:2024-05-04 15:22:24浏览次数:21  
标签:运维 开发人员 部署 代码 DevOps 开发 带来 什么

一、DevOps是什么?
DevOps 是 Development 和 Operations 的组合词。它是一组过程、方法与系统的统称,用于促进开发(应用程序 / 软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。


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

 

在 DevOps 流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。

二、为什么会出现DevOps?
我觉得根本原因有如下几点:

1、容器化技术的发展,微服务架构的发展,直接促进了DevOps的迅速发展
2、敏态需求的增加,即探索性工作的增加
软件开发从传统的瀑布流方式到敏捷开发,再到现在对敏捷开发提出了更高的要求,近些年创新型的应用不断涌现,在这些应用的研发过程中多采用小步快跑、快速试错的方式,这些探索性工作要求运维能够具备一天发布多次的能力,需要企业完成由稳态到敏态的转变。

3、软件开发活动在企业经营活动中占比的不断增加
业务发展对软件的依赖由轻度依赖、中度依赖发展到目前的重度依赖。

4、企业存在对消除浪费的需求
软件开发活动在企业中的位置越来越重要,而像企业经营活动一样,软件开发活动中也存在着许多的浪费,企业管理上必然存在着 「识别并消除浪费」 的需求。
软件开发中的浪费包括不必要和必要的浪费,不必要的浪费有:无人使用的功能、软件bug、等待测试、等待审批等;必要的浪费包括:工作项移交、测试、项目管理等。
三、DevOps的优势
工程效率提升50%,这是一个真实的案例。


DevOps 的主要优势在于,自动化流程可以比人员更快,更可靠地执行重复操作。对于组织而言,让开发人员或其他人员整天构建和部署代码既不可行,也无济于事。使这些重复性任务自动化可以使开发人员腾出精力去做自己最擅长的工作 ~ 修改代码。

这样做是允许在几分钟之内构建和部署代码,这仅受组织选择管理其DevOps管道的方式的限制。这意味着从开发功能或错误修正到向最终用户提供更好的体验之间的时间可以大大缩短,从而使用户更加满意。

它还创建了更好的反馈循环。新功能越早交付给用户,组织就越早可以收集反馈和指标并深入了解用户对其产品的喜好。这使组织保持敏捷并为创新提供了更好的环境。

四、DevOps生命周期
DevOps生命周期主要包括产品(策划、研发、运营、推出)、项目(立项、执行、完工),而敏捷、持续集成、持续部署、持续交付都是 DevOps 的一个局部的阶段。


DevOps 在支持全生命周期的过程,要以产品的视角来看待,真正进行交付的时候,也要以产品为维度进行组织的设立。

DevOps 的核心是一组工具和实践,可帮助组织更可靠,更快地构建,测试和部署软件。DevOps 使组织能够比具有传统开发和发布周期的组织更快地发展和交付其产品,从而可以提供竞争优势。与其每天两周或更长时间发布一次版本,不如每天向用户交付新功能,并且可以在数小时内部署错误修正,所有这些都遵循相同的可重复自动化流程。

五、DevOps三大原则


1、流动原则
「加速」 从开发、运维到交付给客户的流程;

坚持少做,产品开始开发时采用 MVP 原则,产品迭代时要适时做减法;
持续分解问题,大的变更或需求拆解为一系列小的变更,快速解决;
工作可视化,采用 Sprint 看板将工作可视化;
控制任务数量,减少前置时间,降低测试人员的等待时间;
减少交接次数,减少不必要的沟通和等待;
持续识别和改善约束点,提高搭建环境、需求文档、QA、开发、运维的生产力;
消除价值流中的困境和浪费;
2、反馈原则
建设 「安全可靠」 的工作体系;

在复杂系统中安全地工作;
及时发现问题;
在源头保障质量;
为内部客户优化工作;
3、持续学习与实验原则
采用科学的工作方式,将对组织的 「改进和创新」 作为工作的一部分。

建立学习型组织和安全文化;
将日常工作的改进制度化;
把局部发现转化为全局优化;
在日常工作中注入弹性模式;
领导层强化学习文化;
六、快速实现DevOps


开发人员完成了为其小部件的新功能编写代码。他们将代码提交到功能分支,该功能分支在其开发计算机上启动了一些轻量级测试,检查是否存在任何代码样式问题,同时还扫描具有新公开的安全漏洞的软件包。开发人员提交拉取请求以将其代码合并到代码存储库中,该代码存储库向团队聊天发送通知。

团队中的另一位开发人员检查了代码更改,在发现代码中没有问题之后,批准了请求请求。该代码会自动合并到开发分支中,从而开始构建过程。构建服务器将克隆 developer分支,安装所有软件包依赖项并构建窗口小部件。生成服务器会运行单元测试和集成测试,以确保新功能不会在小部件的其他部分引起任何退步。

每个测试都通过了,构建成功。根据代码库中定义的最佳实践配置,将在云中自动配置一个新容器,并部署小部件。

此时,组织有两个选择。他们可以选择将更新后的窗口小部件自动发布到生产环境中,并使所有用户或选择接收最新功能的部分用户可以使用该功能。自动部署到生产中称为连续部署(CD)。

或者,组织可以选择仅将功能发布到用户验收测试(UAT)环境中,然后根据预定义的时间表手动批准将发布发布到生产中。在管道中添加手动审批流程通常称为“持续交付”(CD的另一种形式)。

无论是否涉及手动步骤,一旦将小部件成功部署到生产中,都将执行附加的自动化测试。其他工具收集有关性能和用户行为的指标,这些指标将提供给IT运营和开发团队,以提供实时反馈,突出显示潜在的错误并帮助塑造新功能。

对于基本的 DevOps 管道,这是一个相当典型的过程,但具体细节取决于组织。

一些组织倾向于在生产环境中快速部署,将新功能隐藏在功能标记后面,以允许向用户群分阶段发布。其他人则更喜欢使用更传统的开发,测试和生产环境结构,在此结构中,功能被批量部署并在部署到生产之前通过多个手动门缓慢发布。

DevOps 可以根据组织或项目的特定需求进行定制。

该过程趋于发展,添加其他测试以生成更安全的应用程序,或找到优化管道以加快构建速度并减少人工干预的方法。

标签:运维,开发人员,部署,代码,DevOps,开发,带来,什么
From: https://www.cnblogs.com/exd1189/p/18172352

相关文章

  • 关于矢量瓦片技术支持前端渲染带来的思考
    前言书接上回,此前提到地图瓦片切片技术的发展。矢量切片技术将瓦片的渲染由服务端迁移到客户端,此操作带来的影响力不可谓不大,基于此,完全可以随心所欲的定义地图的表达。那么在实际的应用当中,当渲染从服务端迁移后客户端后,是否会带来一些其他的问题?超20M的瓦片数据此事发生在202......
  • RNN处理语言时,训练集的特征到底什么样?语言模型改为处理时间序列时,输入特征要怎么改?
    模型输入到底是什么样?1、整个小说作为一个序列,分段,窗口滑动一位一个很长的序列,加个随机初始点,舍弃初始点之前的,然后把剩下的长序列,根据步长平均切成多个子序列,把多个子序列起始下标乱序放在list里。一个子序列可能是很多句话,然后再循环所有子序列,每次取batchsize个子序列X矩阵:......
  • python(abi)是什么,有什么作用呢
    python(abi)是一个特殊的提供项,用于指定软件包所支持的PythonABI(ApplicationBinaryInterface)版本。PythonABI是一种约定,用于定义Python解释器和扩展模块之间的二进制接口。它确保了不同版本的Python解释器和扩展模块之间的兼容性。ABI(ApplicationBinaryInterface)是一种二......
  • 什么是形式化方法
    形式化方法是一种基于数学和严格逻辑的方法,用于规范和验证软件系统、硬件系统或其他系统的设计和实现过程。形式化方法通过数学符号和形式化语言来描述系统的规格说明和行为,以确保系统的正确性、一致性和可靠性。形式化方法通常包括以下主要方面:1.形式化规约(FormalSpecification):......
  • 在Linux中,什么是软件仓库,并且如何管理它?
    在Linux中,软件仓库是一个集中存放软件包的在线存储库,这些软件包经过预编译、测试,并按照特定的组织结构归类。每个软件包都包含了应用程序、库文件、配置文件以及其他必要的组件,并且附带有关于软件版本、依赖关系等元数据信息。软件仓库使得用户可以方便地搜索、安装、更新和卸载软......
  • 显卡瓶颈是什么,如何识别显卡GPU瓶颈并解决以提升PC性能
    在数字时代的洪流中,显卡GPU作为计算机视觉体验的核心,其性能好坏直接影响着用户的数字生活质量。显卡瓶颈,这一术语在游戏玩家和专业内容创造者的词汇库中愈发常见,它描述了一个现象:当显卡成为制约整体计算机性能发挥的弱环节时,用户的互动体验便会大打折扣。在这篇文章中,我们将深入探......
  • 预习三 微机结构与操作系统是什么,又有什么关系?
    操作系统是控制计算机硬件与软件资源的程序,它是计算机系统的核心组成部分。微机结构是指微型计算机的硬件结构,包括CPU、内存、输入输出接口等。操作系统需要与微机结构相匹配才能正常运行。不同的微机结构需要安装不同版本的操作系统。例如,x86架构的计算机需要安装Windows操作系统......
  • 都说寒门难出贵子,身为一个普通的母亲,我要做些什么才能让我的孩子这一生过的好一点
    多炖几锅肉,他踢完球回来饿的嗷嗷的时候,盛上热腾腾的大米饭,擓着肉汤夹着肉,又烂乎又黏嘴,一碗接一碗,吃的他放下筷子直犯困。   多包几顿饺子,让他请同学来家,玩玩闹闹一通乱耍以后,一屉一屉的下。看着他们几个,嘴里满满腾腾的塞着饺子,还在那比谁吃的多。   多鼓励他几句,......
  • 什么是价值?
    最近有人问我,有什么好项目可以带一带。我不是超人,没那个时间精力,也不可能把所有看似赚钱的事都去干一遍,这也不现实。很多人会潜意识里认为,我比其他人有更多的信息来源,因为毕竟是做圈子的,所以自然不缺好项目。好项目从来都是稀缺资源,谁tm都想找个好项目、赚很多钱。所以,从这一......
  • Clock Switch,芯片时钟切换的毛刺是什么,如何消除
    背景芯片运行过程中需要时钟切换时,要考虑到是否会产生glitch,小小的glitch有可能导致电路运行的错误。所以时钟切换时需要特别的处理。直接使用MUX进行时钟切换或者采用如下电路结构进行时钟切换:assignoutclock=(clk1&select)|(~select&clk0);或assignoutclock=......