当前位置: 首页 > news >正文

DevOps 笔记

01 总论

"DevOps"是一个术语,它是“Development(开发)”和“Operations(运维)”两个单词的组合。这个概念是为了强调并促进开发人员(构建产品)和IT运营团队(负责产品部署和管理)之间的沟通、协作与整合。通过DevOps,组织力求快速、高效地开发高质量软件,并在整个构建与部署过程中实现自动化、持续监控和快速反馈。

以下是DevOps主要特点和组成部分的简要概述,以及具体例子:

  1. 持续集成(Continuous Integration):开发人员经常将代码集成到共享的仓库中(例如Git),每次集成都可以通过自动构建和自动测试来验证,从而早期发现问题。例如,一家公司的开发人员可能每天要提交代码多次到Git,每次提交都触发了自动测试,确保新代码与现有代码的兼容性。

  2. 持续交付/持续部署(Continuous Delivery/Deployment):这确保了软件可以随时随地为发布做好准备(持续交付),甚至是自动发布到生产环境中(持续部署),使得整个软件发布过程更快更高效。例如,开发团队使用Jenkins、GitLab CI/CD或GitHub Actions等工具自动部署每个已通过测试和审核的构建到生产环境。

  3. 微服务架构:通过将应用分解为小的、独立的服务单元,可以独立部署和扩展,每个服务单元只做一件事,做到极致。这提高了系统的弹性和可维护性。例如,一家电商平台可能将用户管理、商品目录、订单处理等功能分别构建在不同的微服务中,每个服务可独立更新和部署,而不影响其他系统。

  4. 监控和日志记录:DevOps鼓励持续监控应用和环境,以及积极响应反馈。例如,使用Prometheus或ELK堆栈(Elasticsearch、Logstash、Kibana)等工具,团队可以实时监控应用程序的性能指标,查看日志并设置警报,确保问题可以在影响用户之前得到解决。

  5. 自动化和配置管理:使用工具(如Ansible、Chef、Puppet等)自动设置和管理环境,确保环境一致性,减少手动错误和部署时间。例如,自动化脚本可以被用来一键配置需要部署的服务器环境,或者自动部署安全补丁到全公司的计算机上。

  6. 团队协作和沟通:DevOps强调跨职能团队的协作,包括开发、IT运营、质量保证和安全(也称为DevSecOps)等。例如,通过日常站立会议、使用Slack或Microsoft Teams等即时通讯工具,以及共享看板(如Jira、Trello)等,不同团队成员可以紧密协作,共同解决问题。

通过这些实践,DevOps帮助公司加快开发周期,提高部署频率,实现更可靠的部署,并更快地从市场反馈中学习和调整。

02 jenkins是如何控制发布到开发环境,测试环境,还是生产环境

Jenkins是一个流行的持续集成和持续交付(CI/CD)工具,它可以用于自动化构建、测试和部署软件项目。在Jenkins中,您可以设置不同的任务和管道来控制发布到不同环境(如开发、测试和生产环境)的过程。以下是一个简单的示例,说明如何使用Jenkins来控制不同环境的发布:

项目示例:一个Web应用的CI/CD流程

假设您有一个Web应用,希望将其部署到开发、测试和生产环境中。以下是如何使用Jenkins来管理这个过程:

  1. 创建Jenkins Job

    首先,在Jenkins中创建一个CI/CD任务(Job)。此任务将包括构建、测试和部署阶段。

  2. 代码提交

    开发团队在代码库(例如Git)中进行代码更改。每次提交代码时,Jenkins可以配置为自动触发构建任务。

  3. 构建阶段

    Jenkins在构建阶段中执行以下操作:

    • 从代码库中获取最新的代码。
    • 编译代码。
    • 创建可执行文件或构建产物(例如WAR或JAR文件)。
  4. 测试阶段

    在测试阶段,您可以运行各种自动化测试,包括单元测试、集成测试和端到端测试。如果测试失

相关文章:

DevOps 笔记

01 总论 "DevOps"是一个术语,它是“Development(开发)”和“Operations(运维)”两个单词的组合。这个概念是为了强调并促进开发人员(构建产品)和IT运营团队(负责产品部署和管理)之间的沟通、协作与整合。通过DevOps,组织力求快速、高效地开发高质量软件,…...

基于食肉植物优化的BP神经网络(分类应用) - 附代码

基于食肉植物优化的BP神经网络(分类应用) - 附代码 文章目录 基于食肉植物优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.食肉植物优化BP神经网络3.1 BP神经网络参数设置3.2 食肉植物算法应用 4.测试结果…...

Docker部署SpringBoot +Vue项目流程详解(含域名 + HTTPS)

文章目录 前言1、选购服务器2、部署 Docker3、前端、后端项目打包4、配置 Dockerfile5、配置 Nginx6、配置 DockerCompose6、启动 DockerCompose 完成部署7、【可选】域名 SSL证书 前言 本次整体部署操作使用阿里云服务器,这里我选择的是香港地区的2核2G ECS&…...

需要在 MySQL 服务器中监控的重要指标

MySQL是一个开源的关系数据库管理系统,它基于客户端-服务器模型运行,使用SQL作为其通信模式。它具有灵活性和可扩展性、高安全性、易用性以及无缝处理大型数据集的能力,由于其广泛的功能,MySQL 被用作数据库管理系统的一部分。 什…...

Hadoop之HDFS

目录 1.HDFS概述 1.1HDFS产出背景及定义 1.2 HDFS优缺点 1.3 HDFS组成架构 1.4 HDFS文件块大小 2. HDFS的Shell操作 2.1 基本语法 2.2 命令大全 2.3 常用命令实操 2.3.1 准备工作 2.3.2 上传 2.3.3 下载 2.3.4 HDFS直接操作 3. HDFS的API操作 3.1 客户端环境准备…...

【Matlab笔记_17】查找数组中相同元素

案例一:找到数组中相同元素所在位置索引 方法:使用unique函数用于找到唯一的元素和它们在原数组中的索引。然后,histc函数用于计算每个唯一元素的出现次数,并通过ismember函数找到重复元素在原数组中的索引。最后,通过…...

前端多媒体处理工具——ffmpeg的使用

写在前面 在前端领域,FFmpeg 是一个非常有用的工具,它提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种色彩格式转换、多种采样率转换、多种码率切换等。可以在多种操作系统安装使用。 安装 下载FFmpeg 在网…...

Pandas 数据分析系列1--SeriesDataFrame数据结构详解

Pandas 概述 Pandas 是一个开源的数据分析和数据处理库,是基于 NumPy 开发的。它提供了灵活且高效的数据结构,使得处理和分析结构化、缺失和时间序列数据变得更加容易。其在数据分析和数据处理领域广泛应用,在金融、社交媒体、科学研究等领域都有很高的使用率和广泛的应用场…...

【模型部署】c++部署yolov5使用openvino

1. 推理方式 CPU推理GPU推理(要求电脑具备核显,即CPU中有嵌入显卡) 2. openvino依赖项下载 https://github.com/openvinotoolkit/openvino/releases 直接解压(随便放到哪个路径) 环境配置 ********(…...

DC-7 靶机

DC_7 信息搜集 存活检测 详细扫描 后台网页扫描 网页信息搜集 搜索相关信息 在配置中发现了用户名密码字样 $username "dc7user"; $password "MdR3xOgB7#dW";ssh 登录 尝试使用获取的账密进行登录 网页登录失败 尝试 ssh 登录 成功登录 登陆今后提…...

Mr.Alright---MTK安卓13 抬手亮屏功能的逻辑

该功能在系统设置-显示-拿起设备时唤醒 alps\vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\display\LiftToWakePreferenceController.javapublic boolean isAvailable() {SensorManager sensors (SensorManager) mContext.getSystemServ…...

thinkPHP5.0字符集修改为utf8mb4

Q:为什么要用utf8mb4 A:utf8mb4可以直接保存emoji字符 MySQL修改字符集 // 数据表编码改为utf8mb4 function to_utf8mb4() {$database config("database.database");$sql "ALTER DATABASE {$database} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;&q…...

[架构之路-242]:目标系统 - 纵向分层 - 应用程序的类型与演进过程(单机应用程序、网络应用程序、分布式应用程序、云端应用程序、云原生应用程序)

目录 一、什么是计算机应用程序 1.1 什么是应用程序 1.2 应用程序的分类 二、应用程序架构分类详解与演进阶段 三、应用程序架构(Application Architecture) 3.1 基本类型 3.2 云应用程序架构 一、什么是计算机应用程序 1.1 什么是应用程序 计算…...

Jackson 反序列化失败,出现JSON: Unrecognized field

问题: 这边在灰度发布的时候,其他未发布的机器出现过could not read JSON: Unrecognized field “type”,这个报错,原因是有一个表新加了一个字段,并且灰度发布了一台机器,刚好有请求命中这台机器&#xf…...

vscode代码快捷输入

Vscode代码片段快捷输入 常用的代码片段为了避免重复输入,可以使用Vsco的中用户代码片段进行设置,这样就可以实现快捷输入. 操作流程 如下 打开vscode的设置 2. 找到用户代码片段 3. 选择模板 4. 然后写入代码片段即可 上面的代码片段可以设置多个,看自己 重点关注的是 prefi…...

【微服务】Feign 整合 Sentinel,深入探索 Sentinel 的隔离和熔断降级规则,以及授权规则和自定义异常返回结果

文章目录 前言一、Feign 整合 Sentinel1.1 实现步骤1.2 FallbackFactory 示例 二、Sentinel 实现隔离2.1 隔离的实现方法2.2 Sentinel 实现线程隔离示例 三、熔断降级规则3.1 熔断降级原理及其流程3.2 熔断策略 —— 慢调用3.3 熔断策略 —— 异常比例和异常数 四、授权规则4.1…...

Kurento多对多webrtc会议搭建测试

环境ubuntu18.04 KMS版本6.13.0 多对多通信demo7.0.0 KMS运行起来后,通过运行它的一个个demo,来实现不同的功能,它的demo很多如下: https://github.com/Kurento 里面有一对一,多对多,还有一些特效的demo。…...

蓝桥杯 (饮料换购,C++)

思路&#xff1a; 1、先加上初始的饮料数n。 2、再加上n可以兑换的饮料数n/3&#xff0c;求多余的瓶盖n%3。循环直至瓶盖数无法兑换新的一瓶饮料。 #include<iostream> using namespace std; int main() {int n,a0,sum0;cin >> n;sum n;while (n){n n a;//加上上…...

《java核心卷Ⅰ》知识点总结(可作面试题)

&#x1f6eb; JDK和JRE傻傻分不清?&#x1f6eb; HelloWorld的输出都经历了啥&#xff1f;&#x1f6eb; Java的三个版本都是啥&#xff1f;&#x1f6eb; 关于main方法你都知道啥&#xff1f;main方法被声明为private会怎样&#xff1f;&#x1f6eb; 强制and自动类型转换都…...

发成绩小程序,一键群发成绩给家长,省事

大家好&#xff01;又到了学期末&#xff0c;是不是又开始为了学生的成绩而烦恼了&#xff1f;别担心&#xff0c;今天就给大家带来一款超级实用的成绩查询系统&#xff01;从此告别繁琐的手动操作&#xff0c;一键群发成绩给家长&#xff0c;轻松又愉快&#xff01; 成绩查询系…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...