浅谈Devops

1.什么是Devops

        Devops=Dev(Development)+Ops(Operation)

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

        传统的软件组织将开发、IT运维和质量保障设为各自分离的部门,在这种环境下如何采用新的开发方法(例如敏捷软件开发),是一个重要的课题。按照从前的工作方式,开发和部署,不需要IT支持或者QA深入的跨部门的支持;而现在却需要极其紧密的多部门协作。而DevOps考虑的还不止是软件部署,它是一套针对这几个部门间沟通与协作问题的流程和方法。

2.DevOps 如何运作?

        DevOps 团队包括开发人员和 IT 运营人员,他们在整个产品生命周期中进行协作,以提高软件部署的速度和质量。这是一种全新的工作方式,也是一种文化转型,对团队及其工作的组织具有重大影响。

        在 DevOps 模式下,开发和运营团队不再是“孤立”的。有时,这两个团队会合并为一个团队,合并后工程师会参与整个应用生命周期中的工作(从开发和测试到部署和运营),并具备多学科的技能。

        DevOps 团队使用工具实现流程自动化,并加速流程,这有助于提高可靠性。DevOps 工具链可帮助团队处理重要的 DevOps 基础事项,包括持续集成、持续交付、自动化和协作。

        DevOps 的价值有时也会应用于开发团队以外的团队。当安全团队采用 DevOps 方法时,安全性则成为开发过程中一个活跃的组成部分。

3.DevOps发展历程

4.DevOps文化

        DevOps文化可以在开发和运维团队之间建立一种合作机制。

在传统的 Dev 和 Ops 分离下,Dev和 Ops 有着不同且相反的目标。

在应用DevOps后,开发和运维协同工作,共享相同的项目成果。

5.传统研发模式存在的弊端

Dev和 Ops 互为黑匣子,这会导致相互指责·

(1)研发团队认为运维工作是一个黑箱,因此不信任。
(2)运维团队任务认为开发团队“代码烂”,因此不信任。

开发和运维有不同的优先级,这使它们相互竞争:

(1)运维人员认为开发人员频繁的版本迭代破坏了稳定性。

(2)开发人员也将运维视为交付代码的障碍。
即使他们想一起工作,也是困难重重,因为:

(1)开发是通过交付功能来衡量工作绩效的,这意味着需要部署、变更。

(2)运维是通过项目的正常运行时间来衡量工作绩效的,频繁变更不利于业务稳定

6.DevOps 生命周期

        由于 DevOps 的连续性,从业人员使用无限循环来展示 DevOps 生命周期各个阶段之间的相互关系。尽管看似是按顺序进行的,但此循环实际表示需要在整个生命周期进行持续协作和迭代改进。

         DevOps 生命周期由八个阶段组成,它们分别代表开发(循环的左半部分)和运营(循环的右半部分)所需的流程、功能和工具。团队会在每个阶段进行协作和沟通,以保持一致性、速度和质量。

6.1发现

        构建软件是一项团队运动。为即将到来的冲刺做准备,团队必须举行研讨会,以探索、整理想法并确定其优先顺序。创意必须与战略目标保持一致,并能够对客户产生影响。敏捷开发可以帮助指导 DevOps 团队。

6.2计划

        DevOps 团队应采用敏捷开发实践来提高速度和质量。敏捷开发是一种用于项目管理和软件开发的迭代方法,可帮助团队将工作分解成更小的部分,从而提供增量价值。

6.3构建

        Git 是一个免费的开源版本控制系统。Git 可为分支、合并和重写存储库历史记录提供出色的支持,而这已为开发构建流程带来了众多极具创新且功能强大的工作流和工具。

6.4测试

        持续集成 (CI) 允许多个开发人员将各自编写的代码存储到单个共享存储库中。将代码变更内容合并时,将运行自动测试,在集成之前确保代码正确无误。合并和测试代码通常有助于开发团队确保部署后的代码质量和可预测性。

6.5部署

        通过持续部署 (CD),允许团队自动频繁地将功能发布到生产环境中。团队还可以选择部署功能标记,从而稳定、有条不紊地向用户交付新代码,而不是一次性全部交付。这种方法提高了软件开发团队的速度、生产力和可持续性。

6.6运营

        管理面向客户的端到端 IT 服务交付。这包括设计、实施、配置、部署和维护支持组织服务的所有 IT 基础架构过程中涉及的实践。

6.7观察

        快速识别并解决影响产品正常运行时间、速度和功能的事务。自动通知您团队有关变更、高风险操作或故障的信息,以便保持服务的运行。

6.8持续反馈

        DevOps 团队应对每个版本进行评估,并生成报告以改进未来版本。通过收集持续反馈,团队可以改进其流程,并采纳客户反馈以改进下一个版本。

7.Devopos开发运维的优势

7.1更好的协作

        培养协作文化和消除孤岛可以使开发人员和运营团队的工作更加紧密地联系在一起,从而提高效率,并减少由于工作流程的组合而产生的工作量。由于开发人员和运营团队共同承担许多责任,因此随着项目的进展,意外会越来越少。DevOps 开发运维团队在开发代码时确切地知道代码在什么环境中运行。

7.2加速交付

        DevOps 团队通过加强协作,并使用微服务架构创建更有针对性(更频繁)的版本,从而更快地交付新代码。这一过程可推动改进、创新和错误修复,从而加速推向市场。

        它还使组织能够更快地适应市场变化,更好地满足客户需求,从而提高客户满意度和竞争优势。软件发布过程可以通过持续交付和持续集成实现自动化。

7.3更高的可靠性

        持续交付和持续集成包括自动化测试,以帮助确保软件和基础架构更新的质量和可靠性。监控和记录可实时验证性能。

7.4更快的扩展

        自动化(包括代码等基础架构)可帮助管理开发、测试和生产,并以更高的效率实现更快的扩展。

7.5增强安全性

        DevSecOps 可将持续集成、交付和部署集成到开发流程中,以便从一开始便实现内置安全性,而不是进行改造。团队使用“基础架构即代码”将安全测试和审计构建到工作流程中,从而帮助维持控制力并跟踪合规性。

7.6提高工作满意度

        DevOps 方法可以通过自动执行单调重复的任务,让员工专注于推动商业价值、更有成就感的工作,从而帮助提高工作满意度。

8.Devops工具

8.1Devops工具--构建

  • 构建自动化-自动处理代码以准备部署。
  • 用于构建自动化的工具通常取决于编程语言和框架
  • 示例:
  • Java-ant、maven、gradle Javascript-npm、grunt、gup 等打包、构建源代码的工具

8.2.DevOps工具--CI

  • CI持续集成:持续将代码合并到单个分支或主线

  • CI工具通常由与源代码控制集成的CI服务器(如:Jenkins)组成。当源代码更改时,服务器通过执行自动构建来响应
  • 示例:
  • Jenkins、TravisCl、Bamboo-Enterprise 等产品

8.3DevOps工具--配置管理

 配置管理:以一致且可维护的方式管理和更改基础设施各个部分的状态。

8.4DevOps工具--虚拟化

  • 虚拟化:通过创建虚拟机而不是物理机来管理资源
  • 示例:
  • VMWare ESX和ESXi,Microsoft Hyper-V,Citrix XenServer
  • 容器:轻量级、独立的包,包含运行软件所需的一切需要的资源,资源占用相对于虚拟机更少,虚拟机包含整个。
  • 操作系统以及虚拟版本的硬件,而容器只提供运行软件所需的最小依赖。
  • Docker是目前领先的容器技术,对于实现微服务、DevOps非常有用。

8.5DevOps工具--监控

  • 监控:收集和呈现有关应用程序状态和性能的数据,主要分为以下两种:

  • (1)基础设施监控(ISM):重点关注与基础设施相关的事物,如 CPU、RAM、等
  • (2)应用程序性能监控(APM):重点关注响应时间、日志等各个部分的性能和稳定性

8.6DevOps工具-服务编排

  • 目的:将支持流程、工作流程、资源分配的编排任务自动化

  • 如:根据要求扩大和缩小应用程序资源占比、根据使用情况自动缩放应用程序、通过关闭不健康的节点并用新节
  • 点替换它们来实现系统自我修复。
  • Docker Swarm:Docker容器的编排
  • Kubernetes:容器编排服务、实现跨多个主机管理容器化应用程序。
  • Openstack: 编排虚拟机

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过限制访问,实现纯私有Docker镜像

怎么会不过审呢?没有敏感信息呀。 For obvious reasons,Many Docker image repositories are inaccessible,The official warehouse has also been filtered by the firewall,So write about how to build a self use Docker image using CloudFlares Workers and Pages. …

WPF MVVM使用遇见问题

一、遇见问题 1.使用Dictionary绑定ListBox的ItsSource问题 过程: 需要再界面动态显示字典,在循环中添加两条数据时,绑定的字典断点查看有两条,界面上只显示一条,后面再其他数量的都动态不显示,鼠标滚动后…

BUUCTF [安洵杯 2019]easy_serialize_php

这道题题目说easy但是对我来说极其不友好!看了很多wp讲的模棱两可,我尽量来说清楚点 代码解析: 这里$function $_GET[f],是我们通过get方式传递的,因为注释提示有东西先传fphpinfo看看 找到了一个东西,很…

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此,一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中,研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…

STM32-寄存器DMA配置指南

配置步骤 在STM32F0xx中文参考手册中的DMA部分在开头给出了配置步骤 每个通道都可以在外设寄存器固定地址和存储器地址之间执行 DMA 传输。DMA 传输的数据 量是可编程的,最大达到 65535。每次传输之后相应的计数寄存器都做一次递减操作,直到 计数为&am…

电脑屏幕录制软件,分享4款(2024最新)

在今天,我们的电脑屏幕成为了一个多彩多姿的窗口。通过它我们可以浏览网页、观看视频、处理文档、进行游戏……有时,我们想要记录下这些精彩瞬间,与朋友分享,或者作为教程留存,这时,电脑屏幕录制就显得尤为…

亚信安慧AntDB亮相PostgreSQL中国技术大会,获“数据库最佳应用奖”并分享数据库应用实践

7月12日,第13届PostgreSQL中国技术大会在杭州顺利举办,亚信安慧AntDB数据库荣获“数据库最佳应用奖”。大会上,亚信安慧AntDB数据库同事带来《基于AntDB的CRM系统全域数据库替换实践》和《亚信安慧AntDB数据库运维之路》两场精彩演讲&#xf…

【网络】网络编程套接字——UDP、TCP、UDP接口使用、TCP接口使用、UDP程序实例、TCP程序实例

文章目录 Linux网络1. UDP1.1 UDP接口使用1.1 UDP程序实例 2. TCP2.1 TCP接口使用2.2 TCP程序实例 Linux网络 1. UDP 在使用我们的UDP和TCP函数的时候,我们需要理解一些预备的知识: 源 IP 地址和目的 IP 地址: 在网络通信中,IP …

电脑软件:推荐一款非常好用的图片编辑软件——Photo Pos Pro

目录 一、软件简介 二、功能介绍 三、使用说明 四、软件特点 一、软件简介 Photo Pos Pro 4是一款非常实用的图像编辑软件,专为需要修图的用户量身打造而成。软件拥有简洁的用户界面,操作起来也比较简单,能够帮助用户轻松处理图片。软件具…

蚂蚁集团Android一面凉经(2024)

蚂蚁集团Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《蚂蚁集团Android一面凉经(2024)》。 面试职位: 蚂蚁集团-Android/iOS开发工程师-支…

MySQL练手 --- 1174. 即时食物配送 II

题目链接:1174. 即时食物配送 II 思路: 题目要求:即时订单在所有用户的首次订单中的比例。保留两位小数 其实也就是 即时订单 / 首次订单 所以,先求出首次订单,在首次订单的基础上寻找即时订单即可 解题过程&#x…

介绍下PolarDB

业务中用的是阿里云自研的PolarDB,分析下PolarDB的架构。 认识PolarDB 介绍 PolarDB是阿里云自研的,兼容MySQL、PostageSQL以及支持MPP的PolarDB-X的高可用、高扩展性的数据库。 架构 部署 云起实验室 - 阿里云开发者社区 - 阿里云 (aliyun.com) 数…

IDEA新建module后变为普通文件夹

问题描述&#xff1a; 在父项目中创建module并构建子父关系&#xff0c;但在创建module并配置后出现未生效问题 在父项目中的pom.xml文件中添加 <modules><module>***</module></modules>在新建Module中添加 <parent><groupId>com.***&l…

嵌入式中什么是三次握手

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c;点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 在网络数据传输中&#xf…

Qt自定义带前后缀图标的PushButton

写在前面 Qt提供QPushButton不满足带前后缀图标的需求&#xff0c;因此考虑自定义实现带前后缀图标的PushButton&#xff0c;方便后续快速使用。 效果如下&#xff1a; 同时可设置前后缀图标和文本之间间隙&#xff1a; 代码实现 通过前文介绍的Qt样式表底层实现 可以得…

【人工智能】AI绘画:科技与艺术交汇的新时代

文章目录 &#x1f34a;AI绘画:开启艺术创作新纪元AI绘画技术发展&#xff1a;算法与艺术的完美交融AI绘画的工作原理与创意生成AI绘画的应用 AI绘画工具介绍 &#x1f34a;AI绘画:开启艺术创作新纪元 人工智能正以前所未有的力量重塑我们的世界&#xff0c;而AI绘画作为这股科…

0725,进程间传递文件描述符,socketpair + sendmsg/recvmsg

我要碎掉了我要碎掉了我要碎掉了 上课喵&#xff1a; pipe匿名管道的问题 #include <func.h>int main() {int fds[2];pipe(fds);pid_t pidfork();if(pid>0){ //fatherclose(fds[0]);//close readint fdopen("file2.txt",O_RDONLY);printf("father: …

如何安全的申请SSL证书

随着数字化时代的快速发展&#xff0c;互联网政务应用已成为政府服务民众、提升治理效能的重要途径。在这个网络日益复杂的时代&#xff0c;政务网站的安全问题显得尤为重要。2024年&#xff0c;国家出台并从2024年7月1日开始实施执行《互联网政务应用安全管理规定》&#xff0…

常见的CSS属性(一)——字体、文本、边框、内边距、外边距、背景、行高、圆角、透明度、颜色值

一、字体 二、文本 三、边框 四、外边距 五、内边距 六、背景 七、行高 八、圆角 九、透明度 九、颜色值 元素的继承性是指给父元素设置了某些属性&#xff0c;子元素或后代元素也会有作用。 一、字体 “font-*”是字体相关的属性&#xff0c;具有继承性。代码如下&a…

Github 2024-07-26 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-26统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9HTML项目1TypeScript项目1非开发语言项目1JavaGuide - Java 程序员学习和面试指南 创建周期:2118 天开发语言:Java协议类型:Apache…