[每周一更]-(第62期):SRE 是什么?

在这里插入图片描述

  • 在公司Devops平台搭建,采用了Jenkins+Git+Gitlab+Docker,进行了自动化构建和部署代码,解放了繁杂的代码更改到test/prod环境的问题;
    这部分更多是运维比例极大,少量的开发操作,基本都是配置命令行以及yml配置、docker搭建平台调整参数等等;
  • SRE有点开发和运维结合的意味;
    • wiki解释:

站点可靠性工程(英语:Site reliability engineering,SRE)是一门将软件工程应用于基础设施以及运营的学科,该概念由Google于2003年提出。
站点可靠性工程主要目标是创建可扩展和高可用性的软件系统。

职责
站点可靠性工程师要花50%的时间来参与与软件运营相关的工作,如解决问题、随叫随到和人工干预。由于站点可靠性工程师所负责的软件系统需要高度自动化和自我修复,
所以站点可靠性工程师要将另外50%的时间用于开发工作,如增加新功能等工作

概念

站点可靠性工程(SRE)是 IT 运维的软件工程方案。SRE 团队使用软件作为工具,来管理系统、解决问题并实现运维任务自动化。

SRE是"Site Reliability Engineering"(站点可靠性工程)的缩写,是一种将软件工程和系统运维结合起来的角色和方法论。SRE的主要目标是确保在线服务的稳定性、可靠性和性能,以提供高质量的用户体验。

SRE团队的成员通常是具备软件工程和系统运维技能的专业人士,他们的工作不仅仅是维护和管理系统,还包括编写自动化工具、设计监控系统、优化性能、处理故障和紧急情况等。SRE倡导以软件工程的方式来管理和运维基础设施,通过代码来实现自动化运维、监控和故障恢复,以降低人工操作带来的风险。

SRE的一些核心原则和实践包括:

  • 服务水平指标(SLI)和服务水平目标(SLO):明确量化服务的性能指标和可靠性目标,通过监控来确保这些目标的达成。
  • 自动化:使用代码和自动化工具来管理基础设施,降低人工操作的风险。
  • 容错和故障恢复:设计系统以容忍故障,实现自动的故障恢复机制,保障系统的可用性。
  • 持续改进:通过持续监控、数据分析和迭代优化来不断提升系统的性能和可靠性。

SRE模式的引入,旨在解决传统运维与开发之间的鸿沟,以及保障在线服务的高可用性和稳定性。Google是最早倡导并实践SRE模式的公司之一,其经验和方法论在业界引起了广泛的关注和应用。随着云计算和大规模在线服务的发展,SRE作为一种新型的运维和工程角色,逐渐成为许多技术公司的常见职位和团队。

什么是站点可靠性工程师?

站点可靠性工程师是一个独特的岗位,要么必须具有系统管理员背景、或有运维经验的软件开发人员;要么必须是有软件开发技能的 IT 运维人员。

SRE 团队负责部署、配置和监控代码,以及生产服务的可用性、延迟、变更管理、应急响应和容量管理。

SRE 团队根据服务水平协议(SLA)确定新功能的推出,并利用服务水平指标(SLI)和服务水平目标(SLO)定义系统所需的可靠性。

SLI 测量所提供服务水平的特定方面。关键 SLI 包括请求延迟性、可用性、错误率和系统吞吐量。SLO 基于根据 SLI 而指定的服务水平的目标值或范围。

然后,根据确定可接受的停机时间,确定所需系统可靠性的 SLO。这个停机时间称为误差量,即出错和中断的最大允许阈值。

SRE 并不是要实现 100% 可靠性,而是针对故障做好计划并妥善应对。

一旦建立,开发团队就可以在发布新功能时允许出现这一定量的误差。利用 SLO 和误差量,团队随后可确定产品或服务是否能够在可用误差量的基础上启动。

如果某个服务在运行时处于误差量以内,则开发团队可在任何时间发布它,但是,如果系统当前有太多错误或停机时间超过误差量的允许范围,则必须使错误数减少至误差量以内后才能发布。

开发团队可执行自动化运维测试以验证可靠性。

站点可靠性工程师的时间要均衡分配给运维任务和项目工作。根据 Google 的 SRE 最佳实践,站点可靠性工程师最多只能将一半的时间花在运维上,所以应该监控确保不会超过这个时间。

他们剩余的时间应专注于开发任务上,比如创建新功能,扩展系统,以及实施自动化。

额外的运维工作和表现欠佳的服务应重新指定给开发团队,这样站点可靠性工程师就不用将太多时间花在应用或服务的运维上。

自动化是站点可靠性工程师的重要工作部分。如果他们一直在反复处理同一个问题,就会努力实现解决方案自动化。

保持运维和开发工作之间的平衡是 SRE 的重要组成部分。

DevOps 和 SRE

DevOps 是指对企业文化、业务自动化和平台设计等方面进行全方位变革,从而实现迅捷、优质的服务交付,提升企业价值和响应能力。SRE 可视为 DevOps 的实施。

和 DevOps 一样,SRE 也与团队文化和关系密切相连。SRE 和 DevOps 都致力于搭建开发团队和运维团队之间的互通桥梁,以便加快交付服务。

DevOps 和 SRE 实践都可以实现更快的应用开发生命周期、改进的服务质量和可靠性,以及缩短的 IT 应用开发时间等优势。

然而,SRE 与 DevOps 有所不同,因为它依赖于开发团队中的站点可靠性工程师,这些工程师也要有解决通信和工作流程问题的运维背景。

站点可靠性工程师本身要求职责重叠,兼具开发团队和运维团队的技能。

DevOps 团队的开发人员常常疲于处理运维任务,需要拥有更专业运维技能,而 SRE 就能派上用场。

在编码和构建新功能时,DevOps 专注于有效通过开发流程,而 SRE 专注于通过创建新功能来平衡站点可靠性。

在这里,基于容器技术、Kubernetes 和微服务的现代化应用平台是落实 DevOps 实践的关键所在,可帮助企业交付安全的创新软件服务。

参考:

  • https://www.redhat.com/zh/services/training/transitional-approach-implementing-pragmatic-site-reliability-engineering-sre-technical-overview
  • https://zhuanlan.zhihu.com/p/22354002
  • https://github.com/singgel/Study-Floder/blob/master/SRE%20%20Google%E8%BF%90%E7%BB%B4%E8%A7%A3%E5%AF%86.pdf

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

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

相关文章

JDK20 + SpringBoot 3.1.0 + JdbcTemplate 使用

JDK20 SpringBoot 3.1.0 JdbcTemplate 使用 一.测试数据库 Postgres二.SpringBoot项目1.Pom 依赖2.配置文件3.启动类4.数据源配置类5.实体对象类包装类6.测试用实体对象1.基类2.扩展类 7.测试类 通过 JdbcTemplate 直接执行 SQL 语句,结合源码动态编译即可方便实现…

模型解释方法

模型生成后需要对模型进行解释 特征权重 importances rfc.feature_importances_ indices np.argsort(importances)[::-1] #[::-1]表示将各指标按权重大小进行排序输出 for f in range(data_train_x[:100].shape[1]):print("%2d) %-*s %f" % (f 1, 30, data_trai…

算法训练营day46|动态规划 part08:完全背包 (LeetCode 139. 单词拆分、多重背包理论基础)

文章目录 139. 单词拆分 (求排列方法)回溯思路分析背包思路分析代码实现思考总结 多重背包理论基础 139. 单词拆分 (求排列方法) 题目链接🔥🔥 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多…

docker 方式安装mysql 主从方式keepalived实现高可用

一、环境介绍 二、MySQL安装 在两台服务器上都安装mysql 1、拉取镜像 docker pull mysql:8.0.272、创建挂载目录 mkdir -p /data/mysql/3、运行容器 主节点 docker run \--restartalways \--name master_mysql -p 3306:3306 \-e MYSQL_ROOT_PASSWORD123456 -d \-v /data/m…

用户权限数据转换为用户组列表(3/3) - Excel PY公式

最近Excel圈里的大事情就是微软把PY塞进了Excel单元格,可以作为公式使用,轻松用PY做数据分析。系好安全带,老司机带你玩一把。 实例需求:如下是AD用户的列表,每个用户拥有该应用程序的只读或读写权限,现在需要创建新的…

SpringMVC笔记

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式:warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

面试:如何实现分布式锁?看清楚,不是实现分布式事务!!

面试复盘:如何实现分布式锁? 目录 面试复盘:如何实现分布式锁? 1.分布式锁要求 2.实现方案 3.数据库分布式锁 3.1 悲观锁 3.2 乐观锁 4.Zookeeper 分布式锁 4.1 引入 Curator 和 ZooKeeper 4.2 配置 ZooKeeper 连接 4.3 编…

【送书活动】畅销书《Kali Linux高级渗透测试》更新版速速查收~

文章目录 每日一句正能量前言本书概况读者对象赠书活动目录 每日一句正能量 其实,人生很多东西无所谓最好的,只要你认为值得就是最好。 前言 对于企业网络安全建设工作的质量保障,业界普遍遵循PDCA(计划(Plan&#xf…

SAP HANA 体系结构,LandScape,规模调整:完整教程

目录 一、SAP HANA 体系结构 二、SAP HANA 景观 三、SAP HANA 大小调整 SAP HANA 数据库是以主内存为中心的数据管理平台。 SAP HANA 数据库在 SUSE Linux Enterprises Server 上运行,并基于 C 语言构建。 SAP HANA 数据库可以分发到多台计算机。 SAP HANA 的优…

SpringBoot-可视化监控

一、添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--采集应用的指标信息&#xff0c;prometheus--> <dependency…

docker容器技术实战-2

03docker hub 首先注册上号&#xff1a; https://hub.docker.com/ 上传自己的镜像仓库 创建自己的仓库 webserver 拉取镜像 配置加速器 04搭建私有仓库 上传镜像 在主机1上 在主机2 上 激活内核选项 激活内核选项文件传输过去 配置使用非加密端口 05 docker私有仓库 仓库加…

界面控件DevExpress WPF TreeMap,轻松可视化复杂的分层结构数据!

DevExpress WPF TreeMap控件允许用户使用嵌套的矩形块可视化复杂的平面或分层结构数据。 P.S&#xff1a;DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&a…