从SRE视角透视DevOps的构建精髓

UE5动画革命:如何用Motion Matching技术让你的游戏角色动作更流畅(附实战配置) 本文深入解析了UE5中Motion Matching技术的实战配置与应用。通过对比传统动画状态机的局限,详细阐述了如何构建动画数据库、在UE5中配置Pose Search Database及动画蓝图,并探讨了与IK融合、性能优化等进阶策略。该技术能显著提升游戏角色动作的流畅度与真实感,是下一代动画解决方案的核心。 阅读详情

 SRE 侧重系统稳定性,DevOps 强调开发运维协作。SRE 实践助力DevOps,提升系统稳定性与团队协作效率。

SRE 运用软件工程的原理,将系统管理员的手工任务自动化,负责运维由系统组件构成的服务,确保服务稳定运行。SRE职责涵盖监控开发、资源规划、紧急事件处理及事故根源追踪等,致力于消除重复性、手工性操作。

DevOps强调开发与运维的协同合作,通过工具链和流水线实现高效衔接,持续反馈以优化研发到运维的流程。

两者虽各有侧重,但SRE的实践正是DevOps建设思路的体现,通过自动化和智能化手段提升运维效率,促进开发与运维的紧密合作,共同推动系统稳定性与业务价值的提升。

一、理解 SRE 和 DevOps 异同

有人说 SRE 就是 DevOps,DevOps 等于 SRE,其实是不对的。DevOps 是一种协调开发和运维之间协作关系的思想理念,SRE 是在 Google 类似于 DevOps 思想理念的一种实践。SRE 更关注站点或产品或应用服务等运行的稳定性,以 “错误预算” 协调开发和运维之间的利益关系,所以 SRE 其实更多是在 Ops 端。但关注 “运维 Ops” 这无疑是正确的,和我们习惯于更关注 “开发 Dev” 是不一样的。SRE 强调用工程化的手段应对运维问题。软件运维问题达到一定规模时,也确实只能通过软件工程化的手段来解决。

SRE 团队替代了很多研发 Dev 的工作,使 Dev 更专注于业务应用或产品的研发,而不再关注软硬件基础设施和中间件工具,所以研发的工作就聚焦化了。同时通过 SRE 团队所构建的自动化工具链、流水线等提升了研发效率。

DevOps 和 SRE 的关系类似于 SOA 和 ESB 的关系。SRE 是 DevOps 思想落地的一种方式。SRE 模型成功的关键在于对工程的关注,如果没有持续的、工程化的解决方案,运维的压力就会不断增加,也就需要更多的人来完成工作。SRE 的终极目标是推动整个系统趋向于无人化运行,也就是智能化,不仅仅是自动化。“如果系统正常运转中需要人工干预,应该将此视为一种 bug”。

SRE 既做运维也做开发。其开发时间不少于 50%。既保障 SRE 有足够的时间和精力去进行真正有创造性的、自主性的研发工作,同时也保障了 SRE 团队有足够的运维经验,深度理解运维的需求,从而让他们设计出切实解决问题的系统。但 SRE 只是关注于运维工具和流程自动化的研发,而不做业务应用或产品的研发。这也从实践说明了 DevOps 的建设是需要靠自己而不是靠外部厂商。因为这是一个持续的,不断变化改进的过程。

二、研发和运维之间的利益冲突

企业中研发 Dev 和运维 Ops 之间最主要的矛盾就是应用服务迭代创新的速度与应用服务稳定运行程度之间的矛盾。我们总是强调敏捷研发、敏捷交付,但是研发之后交付之后改怎么运维却考虑的比较少。虽然目前智能运维 AIOps 等很多人都在讲,但个人觉得目前更多只是噱头,远未到智能运维的阶段。试想基本运维都没做好就去做智能运维,就像让不会走的小孩就要跑起来,有点可笑。要解决 Dev 和 Ops 双方的利益冲突,则需要同时能关注矛盾双方的诉求、保障矛盾双方的利益。既要保证 “速度”,更要关注 “稳定性”。但任何软件系统都不应该一味追求 100% 可靠。对最终用户来说,99.99%、99.999% 和 100% 的可用性并没有实质的区别。因此 DevOps 建设就是追求这种矛盾的统一。

我们说过,在软件整个生命周期过程中,研发阶段可能只占 20%,大部分时间都是在运维、在持续优化。所以 SRE 关注运维是正确的。解决方式就是通过软件工程化、系统化的方法来解决运维问题,这也就是很多人说的 “研发运维一体化”(这里的研发是 “运维研发”,不是 “产品研发”)。企业 DevOps 建设就需要设法协调研发与运维之间的矛盾,满足双方的利益诉求。SRE 是通过高层所定下的 “错误预算” 来协调双方矛盾的(但错误预算有其局限性,我们将在后续详细讨论 DevOps 效率建设问题)。在 DevOps 建设中,研发关注需求、CI,CD 则需要和运维协作,这也是我们一直反对在容器云平台做流水线做 CICD 的一个原因。运维平台、运维工具、运维方法、运维流程、运维组织和运维思想的首先建立是必要的。做好运维,将会更好的支撑敏捷研发和持续部署发布,真正实现敏捷。

三、DevOps 建设思路

对 DevOps 的错误理解之一就是一个人什么都干。要提升软件工程效率,就必须实现分工。这和社会生产发展规律也是一样的。只有分工才能提升效率。因此 DevOps 建设首先就需要考虑职责分工。从 SRE 实践我们看到,DevOps 建设要关注运维,运维要分层,职责要轮换,体系要简单,追求矛盾的统一。用软件工程化的方式建设软件基础设施来支撑产品研发,提升研发效率。

(1)DevOps 建设重点在运维

Google SRE 虽然也做运维工具和运维组件的研发,但本质上是运维团队。只有运维团队把软硬件基础设施准备好了,应用或产品开发团队才能更好的享受软硬件基础设施所带来的便利。研发的敏捷性往往是由运维的稳定性驱动的。只有持续构建部署稳定可靠的应用服务,研发才能真正地实现敏捷迭代,而不是陷于应对繁琐的基础设施工作中不能自拔。这和我们习惯的关注 CICD 的 DevOps 理念是不同的。只有从整体上考虑 DevOps,从顶层设计考虑 DevOps,才能把 DevOps 建设好。开发和运维的工作量基本上是 2:8,完成开发,应用或产品的生命周期才刚刚开始不久,更长生命阶段是在运维和完善。因此软硬件基础设施的建设和完备是产品研发的基础和巨人的肩膀。

(2)软硬件基础设施运维分层

软硬件基础设施内容众多,这也是 DevOps 建设比较困难的一个地方。从 SRE 来看,其通过团队职责的细化实现了基础设施的分层运维。这涉及到组织架构的优化。和我们传统一个团队什么都运维的思路是不同的。通过专业化的分工使运营效率大幅提升。而通过提供服务化的方式又可以和其他团队平滑合作。

DevOps 建设中运维内容我们可以简单的划分为:硬件基础设施(服务器、存储、网络、DataCenter、机柜、机架……)资源、软件基础设施和通用工具(OS、通信、认证、权限、监控、日志、调度、配置、消息组件……)、数据平台和数据工具(数据库、大数据平台、机器学习平台……)、应用支撑平台(虚拟化、云管、PaaS、服务治理平台、负载均衡器、中台服务……)、业务应用和业务系统等。业务应用和业务系统在这些软硬件基础设施之上部署运行,由各个运维团队来进行日常维护和管理。同时这些团队需要完成日常运维工作所需的工具开发、自动化流程等。

我们可以很容易的看到,软件产品的研发需要考虑的内容很多。如果没有运维的经验,软件产品也很难设计好。比如组件的部署方式、部署位置、部署数量等等。因此要设计研发出真正好的软件产品,需要具备相应的运维意识和能力。

(3)职责轮换,促进理解和提升技能

这里职责轮换包含两个循环:一是 Dev 和 Ops 职责的轮换,二是 Ops 内部开发和运维人员的职责互换,这部分其实就是 google 的 SRE。开发和运维角色互换,更有助于开发理解运维工作,而运维的经验也让开发人员更关注部署、运维的细节,避免开发导致的部署和运行缺陷。

很多开发人员从来没做过运维,没有运维经验和体会,不理解应用服务和产品的稳定性运维运营问题,所以也很难设计出满足稳定性的产品和应用来,在稳定性、客户体验等众多方面都达不到要求,也使很多开发人员难以虚心求教,反而自以为是,带来大量的产品问题。

以 Ops 内部小循环带动 DevOps 大循环,真正理解软件工程生命周期过程,减少设计和编码缺陷,提升系统稳定性和用户体验,这才是建设 DevOps 的意义,也是软件人员快速成长的捷径。不过这样的方式无疑改变了传统的项目管理方式和组织管理方式。组织改进最严重的阻碍是来自于组织文化、领导想法和领导魄力。打破传统守旧的文化和思维体系,可能难于上青天。不过若要获得成功,就必须在整个组织里培养一种生机型的文化和组织战略。

(4)保持简单

软件工程的一个关键思想是保持简单。把复杂的系统简化,是一个合格的软件架构师、工程师必须考虑的问题。软件系统本质上是动态的和不稳定的。需求在不断的变化,软件系统在不断的改进和调整。唯一不变的是变化。DevOps 的工作就是在系统灵活性和稳定性之间选择平衡,在敏捷研发部署和系统稳定运行之间达成一致。最简单的流程和步骤将会是最高效的。软件的简单性是稳定性的前提。

大道至简,保持简单就需要从软件工程的各个阶段各个层次以最简单的方式解决最复杂的问题。至简源码、最短链路、最小依赖、自动化、自服务等首先软件工程和业务系统的简单化,从而实现可预期的稳定性。

1. 最简化源码

删除不需要的源码和注释,使代码最简化。我们知道添加到项目中的每行代码都可能引入新的缺陷和错误。敢于剪除多余的冗枝,绿植往往会长的更好。没有什么可以去掉的时候,往往才是最好的、最合适的。所以在编码阶段就要敢于删除冗余不用的代码,不要想着某一天还会用到。不删除,基本上这些代码永远也用不上了。

2. 最短链路

我把最短链路作为微服务设计的一个原则。一方面是效率考虑,一方面也是简单化。避免复杂链路的容易出现的循环调用。最短链路在 DevOps 建设中也可以作为一个原则,指导研发人员服务的设计和系统架构。

3. 最小化依赖

最短链路原则会减少服务、系统之间的依赖关系。但不仅仅是服务之间。其实我们在讨论容器云平台设计时也说过,引入的不必要组件导致了整个平台的复杂化、资源浪费和不稳定。

4. 自动化

自动化是 DevOps 建设的基本要求之一。自动化才能消除众多的人工重复性操作,从而减少人为错误,提升工作效率。最简单的例子,我们有数百台容器节点,每三个月需要按要求修改密码。如果人来做,是很大的工作量,而自动化,几分钟就可以按规则修改完毕。Google SRE 就是通过软件工程的方法实现自动化运维,把人工运维工作降到最低。

5. 自服务

首先团队需要实现自给自足。这在团队职责划分、团队服务能力抽象整合、标准化信息服务 API 等建设都需要有合理的规划和设计。SRE 开发工具、自动化流程、平台等一方面实现自身运维运营需求,另一方面支撑产品研发团队可以自己掌控和执行自己的发布流程。

四、总结

我们可以把 SRE 看作是 DevOps 理论的一项具体实践。SRE 的很多方法和做法是值得我们思考和尝试的。同时也不能完全照搬 SRE 的实践,不能把它当作最佳实践神化。SRE 以软件工程化、系统化思路是用错误预算来解决开发运维之间的协作问题,有其合理性,也有局限性。不过其关注运维、限制 SRE 运维总时间投入以确保研发能力、保持简单化、运维分层等思想是非常值得吸收的实践经验,值得我们在建设 DevOps 中思考和采用。

slew dreate,slew threshold与transition计算 ​只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:​。如下示例,在.lib库中有定义以下内容。 阅读详情

相关推荐

基于ESP32与PCM5102的WiFi无损音频传输系统设计与实现

本文详细介绍基于ESP32与PCM5102的WiFi无损音频传输系统设计与实现。通过I2S接口直接传输PCM数据,避免SRC重采样,实现真正的HIFI级音质。涵盖硬件连接、软件架构、网络传输优化及实际音质对比,为音频爱好者提供高性价比的无损无线音频解决方案。

rnn9storyteller的博客 948

SRE 与 DevOps:你知道它们之间区别吗?

DevOps专注于消除阻碍开发和运维之间协作的隔阂,而SRE致力于设计和实施可扩展、可靠的系统,确保最大可靠性。 这篇文章将探讨DevOps和SRE之间的差异,它们的角色和责任,它们解决的问题以及它们使用的工具。

dweizhao的专栏 1753

用R搞定生态溯源:MixSIAR贝叶斯混合模型从安装到出图的保姆级教程

本文提供了一份详细的MixSIAR贝叶斯混合模型教程,涵盖从R环境配置、数据预处理到模型参数设置和可视化分析的完整流程。通过实战案例和常见问题解决方案,帮助生态学研究者快速掌握混合模型在生态溯源中的应用,提升数据分析效率。

weixin_42531516的博客 466

SRE视角下的DevOps:构建稳定高效的软件交付流程

SRE 和 DevOps 有什么区别和联系?本文对此进行了解读,并着重从 SRE 实践出发阐述了 DevOps 的建设思路。 SRE 就是在用软件工程的思维和方法论完成以前由系统管理员团队手动完成的工作。SRE 的职责是运维一个服务,该服务由一些相关的系统组件组成,为最终用户(可以是内部用户也可以是外部用户)提供服务。SRE 的终极责任是确保该服务可以正常运转。为达成这一目标,SRE 需要完成开发监控系统、规划资源容量、处理紧急事件、跟踪修复事故根源等。SRE 对重复性、手工性的操作有天然的排斥感,并

Xiaohong0716的博客 1500

基于MATLAB的井筒多相流模拟

井筒多相流的模拟可以基于不同的数学模型和计算方法。其中,最常用的模型之一是多相流模型,它基于质量守恒、动量守恒和能量守恒等原理,描述了流体在井筒中的流动行为。对于井筒多相流的模拟和分析可以帮助我们理解和优化油气田开发过程中的流体行为,从而提高产量和效率。在本文中,我们将介绍如何使用MATLAB进行井筒多相流的模拟,并提供相应的源代码。需要注意的是,以上示例是一个简化的模拟,仅用于演示如何使用MATLAB进行井筒多相流模拟。实际应用中,我们需要考虑更多的物理过程和参数,并使用更复杂的数值方法和模型进行模拟。

AtdiHtml的博客 706

【Python爬虫系列】_005.浏览器开发者工具(详解)

Elements(元素)分析当前页面节点,用来辅助书写BS或者XPath这里面的数据与源代码有区别,不一定准确(避坑)Console(控制台)这个除了查看错误信息、打印调试信息(console.log())、写一些测试脚本以外,还可以当作Javascript API查看用例如我想查看console都有哪些方法和属性,我可以直接在Console中输入"console"并执行后续学js逆向的时候需要用到Sources(源代码)与在网页页面,鼠标右键——查看网页源代码 内容一致。

weixin_50296259的博客 422

DevOps 和 SRE

最近有一位朋友和我聊职业发展方向问题,聊了不少 DevOps 和 SRE 话题。 我几年前刚接触这两个概念时也常常将之混淆,可惜当时没有人来解答我困惑。 现在这虽然已经极为流行,但是我发现我这位朋友对这两个职位还存在一些误区。 于是我给了一些见解并整理成文章以饕大众。 最常见的误区: DevOps 新概念,好高级哦 SRE 是高级版 DevOps 运维可以轻松转身 DevOps 工程师 让我一...

weixin_33892359的博客 584

未连接互联网的银河麒麟v10安装g++,各种报错,如何处理?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1803

devops与sre详解

DevOps 和 SRE(Site Reliability Engineering,站点可靠性工程)是现代软件工程中提升系统交付效率和稳定性的重要方法论,二者既有联系又有显著区别。

sre救赎之路 1467

ADS基础教程16 - 存档和导入(workspace、cell、view)

选择workspace_Archive目录作为保存workspace归档的目录,点击打开进行目录选择,点击Finish保存目录。,选择cell_Archive目录作为保存cell归档的目录,点击打开进行目录选择,点击Finish保存目录。,选择view_Archive目录作为保存view归档的目录,点击打开进行目录选择,点击Finish保存目录。(2)在弹框中,可以选择点击Select将参考的条目添加进来,然后点击Next…(2)在弹框中,可以选择点击Select将参考的条目添加进来,然后点击Next…

XZ_ZC的博客 3702

ZED双目相机环境配置

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

qq_53545309的博客 2136

SRE(站点可靠性工程)与DevOps的核心区别与联系

点击进入数据中心资料库概述SRE(站点可靠性工程)和DevOps(开发与运维)是现代IT行业中两个至关重要的概念,它们共同致力于提高软件系统的可靠性、可扩展性和交付速度。尽管两者在某些方面存在相似之处,但它们的核心思想、实践方法和关注重点却有着显著的区别。SRE最早由谷歌提出,旨在将传统的运维工作与软件工程实践相结合。其核心思想是通过软件工程的方法来解决运维中的问题,侧重于自动化与系统性能。SRE...

ITIL之家公众号 1533

YOLO26涨点改进 | 全网独家创新、检测头Head改进篇 | AAAI 2026 | 使用StripConvHead改进YOLO26的检测头,处理小目标、遮挡小目标检测有效涨点,助力高效发论文

🔥本文给大家介绍使用StripConv条形卷积改进 YOLO26的检测头,可以显著提高模型在高纵横比物体检测、目标定位和多尺度物体检测方面的表现。StripConv条形卷积能够更有效地捕捉细长物体的特征,提升定位精度,并通过简化卷积核设计减少计算冗余,优化计算效率。此外,该改进增强了 YOLO26对复杂场景和实时任务的适应能力,特别适用于遥感图像目标检测、小目标检测等领域。具体怎么使用请看全文。摘要:随着遥感物体检测的快速发展,检测高纵横比物体仍然是一个挑战性问题。

Ai缝合怪、助力小伙伴高效发论文 268

SRE 与 DevOps 的不同之处

尽管网站可靠性工程 (SRE) 理念早在 2003 年就由 Google 的 Ben Treynor Sloss 提出,但其近年来却一直受到追捧。随着 DevOps 实践已经在许多组织中牢固确立,两者之间的冲突是否已经显现?SRE 只不过是一种过时的趋势吗?是 SRE 补充了 DevOps,或者是 DevOps 补充了 SRE?

讨论软件开发加速、持续集成/持续交付(CI/CD)、C++、开发者生产力以及所有相关话题。 1685

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

DEVOPS和SRE到底有啥区别

最近有一位朋友和我聊职业发展方向问题,聊了不少 DevOps 和 SRE 话题。 我几年前刚接触这两个概念时也常常将之混淆,可惜当时没有人来解答我困惑。 现在这虽然已经极为流行,但是我发现我这位朋友对这两个职位还存在一些误区。 于是我给了一些见解并整理成文章以饕大众。 最常见的误区: DevOps 新概念,好高级哦 SRE 是高级版 DevOps 运维可以轻松转身 DevOps 工程师 二.DevOps 和 SRE 定义 DevOps 是字面上 Dev 开发 / Ops 运维两者组合, 严格意义上 DevO

weixin_43546282的博客 2601

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

DevOps与SRE:它们之间有什么区别,您是哪一个?

DevOps还是SRE? 我们将讨论这两个概念,重点介绍它们之间的差异,并试图了解每个概念的发展。 DevOps和SRE似乎是同一枚硬币的两个侧面。 这两个标题旨在弥合开发团队和运营团队之间的鸿沟,其统一目标是在不造成任何妥协的情况下延长发布周期。 实际上,在大多数公司中,我们可以看到只需要其中一个职位,职责和能力就会重叠。 这两个标题共存于同一空间,并且都是开发团队的重要组成...

danpob13624的博客 1332

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SRE与DevOps有什么不同?

SRE和DevOps有什么区别?您可能会说这很大程度上是语义问题,实际上,SRE和DevOps工程师扮演着相同的基本角色。尽管如此,SRE和DevOps之间还是存在一些区别,即使是细微的...

后场技术 1956
上一篇: Java版企业电子招标采购系统源业码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
下一篇: Spring Cloud Netflix:构建强大微服务生态系统的利器
m0_67544708
博客等级 码龄5年 3092粉丝 861原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值