首页 > 其他分享 >DevOps 概念

DevOps 概念

时间:2023-03-01 23:32:06浏览次数:45  
标签:集成 交付 部署 代码 持续 DevOps 概念 测试

DevOps是什么

Development和Operations的组合词;

DevOps 概念_持续集成

DevOps 概念_持续交付_02

DevOps: Development 和 Operations 的组合

  • DevOps 看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。
  • 突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、 发布更 加快捷、频繁和可靠。
  • DevOps 希望做到的是软件产品交付过程中 IT 工具链的打通,使得各个团队减少时间损 耗,更加 高效地协同工作。专家们总结出了下面这个 DevOps 能力图,良好的闭环可以大大 增加整体的产 出

CICD是什么

基本理念

DevOps 概念_持续交付_03

持续集成(Continuous Integration)

持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现 其中的错 误。“持续集成”源自于极限编程(XP),是 XP 最初的 12 种实践之一。

CI 需要具备这些:

  • 全面的自动化测试。这是实践持续集成&持续部署的基础,同时,选择合适的 自动化测试工具也极 其重要;
  • 灵活的基础设施。容器,虚拟机的存在让开发人员和 QA 人员不必再大费周 折;
  • 版本控制工具。如 Git,CVS,SVN 等;
  • 自动化的构建和软件发布流程的工具,如 Jenkins,​​flow.ci​​;
  • 反馈机制。如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本。
  • 持续交付(Continuous Delivery)

持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」 (production-like environments)中。持续交付优先于整个产品生命周期的软件部署,建立 在高水平自 动化持续集成之上。

灰度发布。

持续交付和持续集成的优点非常相似:

  • 快速发布。能够应对业务需求,并更快地实现软件价值。
  • 编码->测试->上线->交付的频繁迭代周期缩短,同时获得迅速反馈;
  • 高质量的软件发布标准。整个交付过程标准化、可重复、可靠,
  • 整个交付过程进度可视化,方便团队人员了解项目成熟度;
  • 更先进的团队协作方式。从需求分析、产品的用户体验到交互 设计、开发、测试、运维等角色密 切协作,相比于传统的瀑布式软件团队,更少浪费。

持续部署(Continuous Deployment)

持续部署是指当交付的代码通过评审之后,自动部署到生产环境中。持续部署是持续交付的最高阶段。 这意味着,所有通过了一系列的自动化测试的改动都将自动部署到生产环境。它也可以被称 为“Continuous Release”。

“开发人员提交代码,持续集成服务器获取代码,执行单元测试,根据测试结果决定是否部署到预 演环境,如果成功部署到预演环境,进行整体验收测试,如果测试通过,自动部署到产品环境, 全程自动化高效运转。

持续部署主要好处是,可以相对独立地部署新的功能,并能快速地收集真实用户的反馈。

“You build it, you run it”,这是 Amazon 一年可以完成 5000 万次部署, 平均每个工程师每天部署 超过 50 次的核心秘籍。

5000/365 = 15 万次

开发人员代码敲完。可以 release 的时候,提交代码, 剩下的全部一站式自动搞定

最佳实践

内循环与外循环

DevOps 概念_生产环境_04

  • 内循环(开发要做的事情):
  • 编码、测试、运行、debug、提交
  • 代码推送到代码仓库(svn,git)【代码回滚】
  • 进行CI过程(持续集成),万物皆可容器化。打包成一个Docker镜像
  • 镜像推送到镜像仓库
  • 测试
  • 持续部署流程(CD),拿到之前的镜像,进行CD。怎么放到各种环境。uat、test、prod
  • 外循环()
  • 运行时监控
  • 生产环境的管理
  • 监控
  • 线上反馈到开发

来到内循环

MVC:Model(bean,entity,to,po......) View(thymeleaf、前后分离....) Controller(xxxxx)

实践流程

DevOps 概念_生产环境_05

新功能,bug修复。

  • 创建分支来做这个事情(开发功能)
  • 提交分支的代码改变
  • 进入持续集成流程
  • 当前分支代码功能性自动化构建和测试
  • 自动工具推送这次提交
  • 自动化集成测试
  • 可以看到效果
  • 人工确认此次功能是否发布到生产环境
  • 代码合并
  • 进入持续部署流程
  • 构建、测试、发布......

CICD LandSpace

禅道

DevOps 概念_持续交付_06

标签:集成,交付,部署,代码,持续,DevOps,概念,测试
From: https://blog.51cto.com/u_15222272/6094387

相关文章

  • 网络通信基本概念
    通信人与人、人与物、物与物之间通过某种媒介和行为进行信息传递与交流网络通信指终端设备之间通过计算机网络进行的通信数据通信网络由路由器、交换机、防火墙、无线......
  • k8s基础概念
    k8s组件组件架构图Master组件kube-apiserverk8sApI,集群的统一入口,各组件的协调者,以RESTfulAPI提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提......
  • 33 个重要的 JavaScript 概念
    33个重要的JavaScript概念原创2022-12-2418:21·程序媛最幽默 了解这33个JavaScript概念绝对会让你将来的职业生涯受益无穷。话不多说,直接进入主题!1.调用栈......
  • #yyds干货盘点#【愚公系列】2023年02月 .NET/C#知识点-区块链概念和实现
    前言区块链是一种分布式数据库,使用密码学技术进行安全的数据记录和验证。它可以被用来创建可信赖的记录,并确保记录不可篡改。区块链的原理其实是一个又一个区块组成的链条......
  • CSS基础概念
    原文链接:​   ​​https://note.noxussj.top/?source=51cto​​定位相关相对定位.my-content{position:relative;}绝对定位​​#​​.my-content{position:a......
  • 相关概念整理到这里
     DDR,双倍速率同步动态随机存储器Cache是介于CPU与主内存之间、或者主内存与磁盘之间的高速缓冲器,其作用是解决系统中数据读写速度不匹配的问题,它能将CPU用过的数据,以及......
  • 企业如何落地DevOps(上)
    这是devops系列的第四篇文章。前面几篇文章,分别从devops的定义和价值、落地路线图以及落地三要素进行了分析。这篇文章开始,我会分享devops在企业或团队中具体的落地实践......
  • Laravel 核心概念
    Laravel核心概念配套视频地址:https://www.bilibili.com/video/av76060293核心概念简介、服务容器、服务提供者、facade、contract、生命周期。简介我叫Laravel。......
  • vue中的几个高级概念
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0NEJeurD-1677552905427)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bf111c39bc87422......
  • 密码学基础概念
    把一段原始数据通过某种算法处理成另外一种数据(原始数据为明文,处理后的数据为密文)。明文->密文:称之为加密。密文->明文:称之为解密。图1在加密过程中我们需要知道下面的......