DevOps该怎么做?

news2024/12/20 20:32:05

年初在家待了一段时间看了两本书收获还是挺多的. 这些年一直忙于项目, 经历了软件项目的每个阶段, 多多少少知道每个阶段是个什么, 会做哪些事情浮于表面, 没有深入去思考每个阶段背后的理论基础, 最佳实践和落地工具. 某天leader说你书看完了, 只有笔记没有总结, 你就写个总结讲讲吧.


1 软件系统研发现状

软件研发主要有设计、研发、上线运维这几个过程, 有想过这些问题:

1) 需求该怎么收集?

2) 产品规划该怎么规划?

3) 迭代开发怎么管理? 计划怎么执行?

4) 怎么上线?怎么运维?

5) 每个阶段该怎么协作?

2  要解决哪些问题

 从以上问题中, 大概可以梳理出研发过程中需要解决的问题,

1) 研发生命周期管理

2) 研发过程中的产出物

3) 业务领域知识

4) 如何提升效率

5) 如何让研发过程可视化

3 评估

3.1 DevOps 评估三原则

3.1.1 流动原则

       建立从开发到运维之间快速的、平滑的、能向客户交付价值的工作流,要为这个全局目标进行优化,而非围绕一系列局部目标,如功能开发的完成度、测试中问题的发现率和修正率、运维维护的可用性等。通过持续加强工作内容的可视化,减小每批次大小和等待间隔,内建质量以防止缺陷向下游传递,从而增强流动性。通过加快流动,缩短前置时间,进一步提高质量。

3.1.2  反馈原则

        反馈原则使得在从右向左的每个阶段中能够快速、持续地获得工作反馈,目标是建立安全和可靠的工作系统。通过在整个价值流和组织中建立快速、频繁、高质量的信息流,包括反馈和前馈回路,可以让系统更安全。这样就可以在规模较小、修复成本较低的情况下发布并修复问题,在灾难发生前消除问题,并创造出组织性学习氛围。

3.1.3 持续学习与实验原则

      技术价值流的核心是建立高度信任的文化,强调每个人都是持续学习者,必须在日常工作中承担风险,通过科学的方式改进流程和开发产品,从成功和失败中积累经验教训,从而识别有价值的想法,摈弃无用的想法,所有局部的经验都会快速转化为全局性的改进,从而帮助整个组织尝试和实践新技术。通过建立持续、动态的学习机制,帮助团队快速并自动地适应不断变化地环境,进而帮助企业在市场竞争中脱颖而出

 3.2 评估项

      从devops的三个原则出发, 构建如下简要评估项, 仅供参考:

业务响应性
端到端价值流
频繁小批上线
依据带宽限制需求量
全功能团队
团队协作各角色协作
过程透明
工程效能需求变更
构建
架构
自动测试
部署

4 设计

基于项目现状画出价值流图,  仔细思考每个阶段需要做什么, 有哪些流程, 上下有之间的关系咋样, 现阶段有么有瓶颈, 怎么改进, 如果要改进需要哪些资源, 需要谁的支持才能做成这件事.

 

5 实施

5.1 选型

选择合适的工具实现项目价值流的运转, 可以选择使用华为、阿里、腾讯等厂商的一体化平台, 也可选择工具软件自己搭建.

5.1.1 Jira

Jira Software 是位居榜首的敏捷项目管理工具,团队可使用该工具放心地规划、跟踪、发布和支持出色的软件。它是您整个开发生命周期的单一数据源,为自主团队提供情景信息,助力团队在与更大的业务目标保持关联的同时快速采取行动。无论是用于管理简单的项目,还是用于支持 DevOps 实践,Jira Software 都能让团队轻松推进工作、保持一致并在情境中进行沟通。

官网地址: Collaboration software for software, IT and business teams

5.1.2 Jenkins

jenkins 号称“万物皆可自动化”, 它是一款开源的自动化服务器, 是持续集成/持续交付的事实标准, 其中有数千款插件连接您所知的各种平台,支持自动化构建、部署、交付和任何类型的项目。

官网地址:Jenkins中国

5.1.3 Git

Git是一个免费开源的分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。Git易于学习,占地面积小,性能闪电般快。它以廉价的本地分支、方便的暂存区和多个工作流等功能胜过了Subversion、CVS、Perforce和ClearCase等SCM工具。

官网地址:Git

 

5.1.4 Nexus

Nexus 是一个强大的 Maven 仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用 Nexus 你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个 Artifact。Nexus 是一套 “开箱即用” 的系统不需要数据库,它使用文件系统加 Lucene 来组织数据。Nexus 使用 ExtJS 来开发界面,利用 Restlet 来提供完整的 REST APIs,通过 m2eclipse 与 Eclipse 集成使用。Nexus 支持 WebDAV 与 LDAP 安全身份认证。

5.1.5 Prometheus

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

Prometheus 提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件Prometheus server会定期从静态配置的监控目标或者基于服务发现自动配置的自标中进行拉取数据,当新拉取到的数据大于配置的内存缓存区时,数据就会持久化到存储设备当中。

1.每个被监控的主机都可以通过专用的exporter 程序提供输出监控数据的接口,它会在目标处收集监控数据,并暴露出一个HTTP接口供Prometheus server查询,Prometheus通过基于HTTP的pull的方式来周期性的采集数据。
2.任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示,监控目标可以通过配置信息以静态形式指定,也可以让Prometheus通过服务发现的机制进行动态管理。
3.Prometheus 能够直接把API Server作为服务发现系统使用,进而动态发现和监控集群中的所有可被监控的对象。

5.2 搭建

工具搭建完成后,  按照设计改进的价值流运行,  对项目的整个研发价值流需要持续测试、持续监控、持续改进.

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

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

相关文章

小白必看!轻松理解和解决MySQL幻读问题!

大家好,我是小米!今天我来给大家分享一下关于MySQL数据库中常见的一个问题——幻读,以及如何解决它。相信对于数据库开发和管理的小伙伴们来说,幻读是一个相对棘手的问题,但只要我们掌握了正确的解决方法,它…

网络故障管理

网络故障管理是以最快的方式查找、隔离和排除网络故障的过程。故障管理是网络管理的重要组成部分,它通过快速解决故障来最大限度地减少停机时间并防止设备故障,从而确保最佳的网络可用性并防止业务损失。 网络故障监控是故障管理的第一步,因…

Linux Shell脚本攻略

一、echo命令 1、在echo中转义换行符 默认情况下,echo会在输出文本的尾部追加一个换行符。可以使用选项-n来禁止这种行为。 echo同样接受双包含转义序列的双引号字符串作为参数。在使用转义序列时,需要使用echo -e "包含转义序列的字符串"这…

有哪些测试框架和工具推荐? - 易智编译EaseEditing

在软件测试领域,有许多测试框架和工具可供选择。以下是一些常见的测试框架和工具的推荐: Selenium: 一个用于自动化Web应用程序测试的流行框架。它支持多种编程语言,并提供丰富的功能和灵活性。 JUnit: 一个用于Java应用程序的单元测试框架…

MongoDB(学习笔记1.0)

最近在学非关系型数据库MongoDB,猛地用起来的真的没关系型数据库方便啊。 首先还是数据库的安装: 安装直接去官网安装即可,官网地址:MongoDB: The Developer Data Platform | MongoDB 当前也有免安装版的,这里就不再…

毕业三年,自学软件测试到就业,我用了4个月

我转行的经历 17年毕业,普通专科,通信专业。 当初选择这个专业是因为有一个校企合作,承诺学生毕业之后给学生安排就业,在学校里面混了三年之后,学校也是履行了当初安排就业的承诺,给我“发配”到了上海&a…

chatgpt赋能python:Python同一行输入

Python同一行输入 在Python编程中,你可能需要在同一行中输入多个命令或语句。这可以通过使用分号来实现。 在本文中,我们将介绍如何在Python中使用同一行输入,并探讨其优缺点。 使用分号实现同一行输入 在Python中,分号&#x…

地震勘探基础(九)之地震速度分析

速度分析 在地震资料数字处理中,速度分析是动校正和水平叠加和地震偏移的基础。 在水平界面情况下,共中心点时距曲线方程是一条双曲线。在共中心点时距曲线中,炮检距 x x x 和时间 t 0 t_0 t0​ 都是已知的,只有速度 v v v 是…

30天从入门到精通TensorFlow1.x 第五天,跨计算设备执行计算图-cpu

一、接前一天 前天学习了,数据流图,今天尝试在不同设备上(cpu或者gpu)来执行计算图。 本次使用cpu来执行,但是不涉及gpu。gpu放在后面学习,这里比较重要。 二、示例 1. 先看看自己的设备 from tensorfl…

My Note of Diffusion Models

Diffusion Models Links: https://theaisummer.com/diffusion-models/ Markovian Hierachical VAE rvs: data: x 0 x_{0} x0​,representation: x T x_{T} xT​ ( p ( x 0 , x 1 , ⋯ , x T ) , q ( x 1 , ⋯ , x T ∣ x 0 ) ) (p(x_0,x_1,\cdots,x_T),q(x_1,\cdots,x_{T…

AcWing 回转游戏 dfs IDA* 剪枝 统一操作 java

🍑 算法题解专栏 🍑 回转游戏 如下图所示,有一个 # 形的棋盘,上面有 1 , 2 , 3 1,2,3 1,2,3 三种数字各 8 8 8 个。 给定 8 8 8 种操作,分别为图中的 A s i m H A \\sim H AsimH。 这些操作会按照图中字母和箭头…

ChatGPT会取代低代码开发平台吗?

编程作为一种高端技能,向来是高收入高科技的代名词。近期,伴随着ChatGPT在全球的爆火,过去通过窗口“拖拉拽”的所见即所得方式的低代码开发模式,在更加智能和更低成本的AI搅局之下,又面临了更深层次的影响。 低代码平…

MySQL redo log、undo log、binlog

MySQL是一个广泛使用的关系型数据库管理系统,它通过一系列的日志来保证数据的一致性和持久性。在MySQL中,有三个重要的日志组件,它们分别是redo log(重做日志)、undo log(回滚日志)和binlog&…

MyBatis深入学习总结

MyBatis总结 MyBatis入门操作 简介 原始jdbc操作(查询数据) 原始jdbc操作(插入数据) 原始jdbc操作的分析 原始jdbbc开发存在的问题如下: 数据库连接创建、释放频繁造成系统资源的浪费从而影响系统性能sql语句在代…

深度学习基础知识-tf.keras实例:衣物图像多分类分类器

参考书籍:《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition (Aurelien Geron [Gron, Aurlien])》 本次使用的数据集是tf.keras.datasets.fashion_mnist,里面包含6w张图,涵盖10个分类。 import tensorflo…

Linux中的ACL以及加固

ACL访问控制 // ACL:Access Control List 访问控制列表 // -p :以原始格式显示 ACL [rootzbx ~]# getfacl -p /root/ // 查看ACL策略 # file: /root/ # owner: root # group: root user::r-x group::r-x other::--- 设置ACL策略 // -m : 修改文件的ACL // -b : 表示删除所有的…

RedisGraph的图存储模型

1 overview 在RedisGraph的整体架构中,非常简略的概括了RedisGraph的图存储模型: RedisGraph使用DataBlock来存储node和edge的属性。RedisGraph使用稀疏矩阵来表示图,稀疏矩阵的存储格式为按行压缩的稀疏矩阵(Compressed Sparse…

同浏览器下多窗口进行跨源通信、同源通信

同浏览器下多窗口进行跨源通信、同源通信 多页面通信运用到了“发布订阅”的设计模式,一个页面发布指令,其他页面进行订阅并进行相应的行为操作! 一、跨源通信 window.postMessage() window.postMessage() 方法可以安全地实现跨源通信。通常…

Qt6之调用Windows下vc生成的动态链接库dll

Qt是跨平台工具,显然能和windows的动态库一起使用。 在Windows操作系统上,库以文件的形式存在,并且可以分为动态链接库(DLL) 和静态链接库两种。动态链接库文控以.dll为后缀名,静态链接库文控以.lib为后缀名。不管是动态链接库还是…

独立站卖家如何应对PayPal风险?3大策略教你安全收款!

PayPal是全球风险控制做得最好的第三方在线支付平台,PayPal付款是钱直接到卖家PayPal账户。但随着外贸交易的日益发展,恶意买家的问题也越来越多。如何防范风险,保证收款安全,成为独立站卖家们所关注的问题。下面为大家分享三种策…