如何做监控?Google SRE 解密

SRE:Google运维解密(笔记)2 监控与告警 SSRE:Google运维解密(笔记)2 监控与告警1、什么是监控?2、为什么要监控?3、4个黄金指标4、长尾问题5、设计监控需要简化6、告警误报 1、什么是监控? 2、为什么要监控? 最初我对监控的目的想的比较简单,以为只是监控有没有问题,有问题就发告警。 3、4个黄金指标 后来我了解的稍微多点,就知道,“有没有问题”这个几个字说的太轻飘飘了。 怎么才算有问题,服务挂掉,或者机器挂掉?还是... 阅读详情

监控值班室:

    @隔壁老王头 SQL执行耗时时间过长,达到了报警阈值【5000ms】

隔壁老王头:

    @监控值班室 少量报警请忽略,批量关注即可。

监控值班室:

    @隔壁老王头 订单号【88886666】状态为处理中,是否需要关注?

隔壁老王头:

    @监控值班室 请忽略,稍后运营会处理。

如果上面的对话,每天都会高频出现在 QQ、微信之中,你是否会炸毛,尤其是深夜梦正香甜时。

如果上面的报警,你是否会怒火,尤其是当报警邮件撑爆了你的邮箱时。

其实,这就是宁可错杀一千,不可放过一个的监控系统设计理念,千万别怒火。

今天,结合《SRE Google运维解密》,尝试提炼出所有关于监控系统设计的精髓,希望能捕捉到对现有系统有建设性的改进意见。

脑图整理的很详细,若图看不清,想办法放大,下面开始重点讲解。

为什么要做监控?

在远程办公的当下,你所负责的系统,能正常提供服务显得尤其重要。倘若没有一套监控机制,犹如系统在线上裸奔,时不时需要靠人肉去判断系统是不是崩掉了,你肯定忍不了,你肯定会想要是打造一款监控系统。

监控为什么重要?Google SRE 解密,离开了监控系统,我们就没法辨别一个服务是不是在正常提供服务;没有一套设计周全的监控体系,就如同蒙着眼睛狂奔;监控系统是服务运维中不可或缺的一部分。

无论是研发、运维,估计几乎每天都会发问几句:什么东西出故障了?为什么出故障?

其实,什么东西出故障了,是问题的现象;为什么出故障,是问题的原因。例如,网站正在返回 HTTP 500 或者 404,究其原因是数据库服务器拒绝链接;接口响应速度很慢,分析原因是 CPU 被某个排序操作占满啦。

监控解决啥问题?Google SRE 解密,监控系统应该解决现象与原因两个主要问题。

为什么要监控呢?Google SRE 解密,监控一个系统有多个原因,主要包括如下几项。

1、分析长期趋势。例如数据库目前的数据量,以及增长速度;每日活跃用户的数量增长的速度等。

2、跨时间范围的比较。增加节点后,memcache 的缓存命中率是否增加;网站速度是否比上周速度要慢等。

3、报警。当某项东西出现故障了,需要立刻有人修复,或者需要有人尽快查看。

4、监控台页面 dashboard。用来回答有关服务的一些基本问题。

5、临时性的回溯分析。

做监控要搞懂哪些术语?

2020 年计划在 AIOps 上有所建树,相关概念性的东西还是要普及,底盘还是要打扎实一些。

有关监控的部分相关术语,脑图中整理的很详细了(一定要好好看图呦),不再赘述。

在这里,要重点说一下服务质量术语,尤其是当我们想在指标监控上有所尝试时,这些术语显得尤其重要。

什么是服务质量指标呢?服务的某项服务质量的一个具体量化指标,例如系统吞吐量,每秒请求数量;请求延迟,处理请求所消耗的时间。

如图中整理所示,不同类型的系统,指标也略有不同。例如,用户可见的服务系统的指标,通常关心可用性、延迟,以及吞吐量;存储系统的指标则强调延迟、可用性和数据持久性;大数据系统的指标,通常关心吞吐量和端到端的延迟。

Google SRE 建议我们,在设计时,要考虑指标的标准化,构建一套可以重用的指标模板。设计监控系统时一定要追求简化,指标简化,直到不能再简化。

什么是服务质量目标呢?服务质量目标说的是服务某个指标的目标值或者范围。

Google SRE 建议我们,在实践时,应该从思考用户最关心的方面入手,而非从现在能度量什么入手;另外,与其选择指标,再想出对应的目标,不如从想要的目标反向推导出具体的指标。

监控的四个黄金指标

监控系统的四个黄金指标分别是延迟、流量、错误和饱和度。

如果我们度量所有这四个黄金指标,同时在某个指标出现故障时,或者对于饱和度来说,快要发生故障时,能发出警报,若能做到这些,服务的监控就基本差不多了。

监控的三类重要输出

如开篇对话场景对应的系统,设计时采取的便是针对某个特定的情况或者监控值,一旦出现情况或者监控值超过阈值就触发 E-mail 警报,也就是所谓的最普遍和传统的报警策略。

SRE 解密:这样的报警策略并不是非常有效:一个需要人工阅读邮件和分析警报,来决定目前是否需要采取某种行动的系统,从本质上就是错误的。监控系统,不应该依赖人来分析警报信息,而是应该由系统自动分析,仅当需要用户执行某种操作时,才需要通知用户。

这或许就是现有很多监控系统可以优化改进之处。

另外,一个好的监控系统应该只有下列三种输出。

Google SRE 建议我们:每当收到紧急警报时,应该立即需要我执行某种操作;每天只能进入紧急状态几次,太多就会导致「狼来了」效应;每个紧急警报都应该是关于某个新问题的,不应该彼此重叠。

实践才是硬道理

十年磨一剑,Google 的监控系统 Borgmon 仍在不断的改进和完善。

虽然 Borgmon 仍是 Google 内部工具,但是近年来,监控系统也经历了爆发式增长:Prometheus、Riemann、Heka、Bosun 都是开源软件中与 Borgmon 理念类似的系统,尤其是 Prometheus。

所以,我们可以利用开源软件,尝试落地监控和报警的理念。

好了,本次的分享就到这里,码字不易,整理脑图更不易,建议收藏,如果感觉有点帮助,就点个”在看“。

推荐阅读:

这些技术轮子,让监控落地成为现实!

监控实战Prometheus+Grafana

基于Qt C++开发一套大疆农业无人机的AI飞控系统 如果需要补充**多机协同作业代码**、**农田测绘数据导出**、**作业数据统计大屏**或**移动端地面站适配**功能,可以告知具体需求,我会针对性完善。"开启" : "关闭") << "喷洒,流量:" << flowRate << "L/min";emit errorOccurred(QString("SDK初始化失败,错误码:%1").arg((int)ret));report += QString("问题区域数量:%1\n").arg(info.problemAreas.size()); 阅读详情

相关推荐

破解拼多多网页字体加密的Python实现(静态)

爬取或者复制粘贴出来发现数字不是6372,而是这样的一个东西 ""从上图我们可以看出数字是一行的空白,后面被浏览器渲染后才展现的数字。我们可以用这个代码查看十六位进制对应的十进制,为什么要看十进制呢?​,而字体文件中的字符映射关系(cmap)也是以十进制存储的。我们搜索这个属性我们可以看到第一个这样的属性有一个URL,这个就是解密的字体包。然后我们构造一个这样的映射字典 key就是对应的十进制,后面的值就是对应的数字。然后我们需要封装一个函数,将加密文字和映射字典传入,返回解密后的数字。

weixin_64179111的博客 3543

各大厂分布式链路跟踪系统架构对比

随着互联网架构的扩张,分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如微服务、消息收发、分布式数据库、分布式缓存、分布式对象存储、跨域调用,这些组件共同构成了繁杂的分布式网络,那现在的问题是一个请求经过了这些服务后其中出现了一个调用失败的问题,只知道有异常,但具体的异常在哪个服务引起的就需要进入每一个服务里面看日志,这样的处理效率是非常低的。 分布式调用链其实就是将一次分布式请求还原成调用链路。显式的在后端查看一次分布式请求的调用情况,比如各个节点上的耗时、请求具体打到了哪台机器上...

meser88的博客 1761

利用Python暴力破解邻居家WiFi密码

如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀!

weixin_45841831的博客 6万+

服务端监控要怎么做?

在一个项目的生命周期里,运行维护占据着很大的比重,在重要性上,它几乎与项目研发并驾齐驱。而在系统运维过程中,能够及时地发现问题并解决问题,是每一个团队的本职工作。所以,你的垂直电商系统在搭建之初,运维团队肯定完成了对于机器 CPU、内存、磁盘、网络等基础监控,期望能在出现问题时,及时地发现并且处理。你

yangyanping20108的博客 843

【阿里云大模型高级工程师ACP习题集】2.5 优化RAG应用提升问答准确度(⭐️⭐️⭐️ 重点章节!!!)

【摘要】这是我精心整理出对应的习题集,里面足足有 30 道题目,从基础概念到深度拓展,全方位覆盖章节重点、难点。不管你是想检验自己的学习成果,还是想针对薄弱环节进行强化训练,它都能完美适配!

davidkorhenn的博客 1107

mac(apple silicon)arm64安装spm12详细教程

3.下载matlab runtime R2023b for macOS (macA64),注意必须下载这个,只下载matlab是不可以的。默认安装目录是/Applications/MATLAB/MATLAB_Runtime/R2023b。注意最后的命令,路径根据自己的matlab_runtime安装位置进行调整,然后就可以安装成功了。5. 解压spm12.zip,解压后将文件夹拖到应用程序下(Applications)2.下载spm12,这个版本可兼容mac芯片!6.打开mac终端,输入。

weixin_62332001的博客 2025

SRE-Google运维解密随记-3-分布式系统的监控

收集、处理、汇总,并且显示关于某个系统的实时量化数据,例如请求的数量和类型,另外一方面,针对那些还没有发生,但是即将发生的问题,黑盒监控通常是没。优化系统的时间,所以经常会牺牲一些短期内的可用性和性能问题,以换取未来系统性。这里的两个术语是可以互换的:指在物理机、虚拟机,或者容器内运行的某个实例。与白盒监控最简单的区别是:黑盒监控是面向现象的,代表了目前正在发生的而非。来说,他们看到的是网站缓慢,数据库读操作的缓慢则是原因。●该规则是否能够检测到一个目前检测不到的、紧急的、有操作性的,并且即将发。

砚墨 639

数字IC行业笔试面试全攻略

数字IC行业迎来快速发展,国产替代加速,技术创新活跃,应用领域持续扩展,但人才缺口扩大。职业发展路径清晰,从初级到首席工程师/架构师的技术路线,或转向管理岗位。薪资待遇优厚,应届生起薪25-35W,5-10年经验可达70-110W,架构师年薪超百万。薪资受公司平台、技术方向、学历背景、项目经验和地域因素影响。AI芯片、汽车电子等热门方向溢价明显,成功流片经验尤其重要。

2301_79143213的博客 760

SRE Google运维解密——第10章 基于时间序列数据进行有效报警

第10章 基于时间序列数据进行有效报警 一个大型的系统不应该要求运维人员持续关注其中使用的无数个小组件,而是应该汇总所有的信息,自动抛弃其中的异常情况。 监控系统应该从高级服务质量目标层次进行报警,但是也应该保持足够的力度,可以追踪到某个具体组件 Borgmon 的起源 依靠一种标准数据分析模型进行报警。使得批量,大规模,低成本的数据收集变得可能 ,成为白盒监控 报警规则使用简单的数学表...

Hcode4的博客 848

YOLOv13结合Sobel边缘检测算子,实现EIEM(Edge Information Enhancement Module,边缘信息增强模块),强化空间特征提取

EIEM模块通过巧妙地结合Sobel边缘检测算子和现代卷积网络架构,实现了显式边缘信息增强的创新设计。这种方法不仅提高了网络对边缘特征的敏感性,还保持了良好的计算效率和模块化特性。 从技术实现角度看,EIEM展示了如何将经典计算机视觉算法无缝集成到深度学习框架中,为构建更强大、更可解释的视觉模型提供了新的思路。随着对边缘信息重要性认识的不断深入,以及对网络可解释性需求的增长,EIEM这样的显式特征增强模块将在未来的计算机视觉研究中发挥越来越重要的作用。

FJN110的博客 908

大语言模型应用指南:幻觉和偏见问题

大语言模型应用指南:幻觉和偏见问题 1. 背景介绍 1.1 大语言模型的发展历程 1.1.1 早期的语言模型 1.1.2 Tr

AI天才研究院 959

《SRE Google 运维解密》笔记

文章目录1. 主旨2. 概览2.1 提出 SRE 的动力?2.2 SRE 聚焦问题点2.3 庖丁解牛2.3.1 你看到了什么?2.3.2 如何管理你看到的?2.3.3 能否站在全局视角上看问题?3. 指导思想3.1 学会拥抱风险3.1.1 如何度量服务的风险?3.1.2 判断服务风险的容忍度?3.1.2 设计合适的「错误预算」3.2 服务质量目标3.2.1 指标在实践中的应用3.2.2 目标在实...

phantom_111的博客 2523

Android Framework AMS面试题及参考答案

比如,应用 B 的 Activity 如果是 “singleTask” 启动模式,AMS 会查找应用 B 是否有包含该 Activity 的任务栈,若有则将这个任务栈切换到前台,并且清除该 Activity 之上的其他 Activity,实现流畅的跨应用跳转体验。如果一个 Activity 的启动依赖于另一个 Activity 的结果,AMS 会暂停当前 Activity 的部分生命周期操作,等待依赖的 Activity 完成相关操作后,再继续当前 Activity 的生命周期进程。

大模型大数据攻城狮的专栏 1863

《SRE:Google运维解密》读后有感

当我们进行体系化的思考的后,我们就会有新的收获,并且在解决方案上更加的完善。框架和SRE平台这种模式,提供了很多的益处,比如说显著的降低运维开销,因为它支持代码结构、依赖关系、测试、编码样式指南等的强合规性测试,内置服务部署、监控和自动化,设计中自带的通用性支持,这种在框架中把基于生产最佳实践的代码模式进行标准化封装,让SRE在管理时降低了认知的负担,同时仍然可以保持服务的质量,每一个标准框架都为问题所在的领域或者问题相关的基础设市以来提供了一个完整的解决方案。,其次SRE的关注焦点在于。...

学无止境 1073

Statistics and Machine Learning Toolbox

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

《SRE:Google 运维解密》读书笔记01: 为什么要学习Google SRE & Google SRE 可以带给我们什么?

SRE:Google 运维解密》是一本教你如何在高速迭代中保持系统稳定的工程圣经。掌握现代高可用系统的构建方法论;具备用工程思维解决运维问题的能力;成为团队中推动可靠性和效率提升的关键人物;在职业发展中拥有 DevOps/SRE/平台工程等热门方向的核心竞争力。建议搭配实践:读完一章后,尝试在你的项目中落地一个概念(比如定义一个 API 的 SLO,或写一个自动化脚本减少重复操作)。PS: 如果你正在构建或维护线上系统,这本书值得反复精读!!!

1560

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

《SRE Google运维解密》散文

文章目录SRE认识运维认识SRE避免琐事工程化自动化监控发布工程oncall团队管理K8S其它章节当前问题 SRE 《SRE Google运维解密》 读书笔记 引言:曾经,觉得写接口改Bug不好玩了,就此带着热情走进了运维世界,探索这奇妙的监控、容器、自动化…。幸得茅哥的引路,让自己在运维的世界越走越远。近些天,我确定了新的方向,再次燃起我眼睛里无限探索的渴望;今天结束或许就是自己人生中最后一个运维相关岗位的工作日。假使将来有时间,我将把这些年的运维笔记整理升华发布于此。 认识运维 软件的生命周期

IMPlove的博客 668

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SRE是什么?

SRE是什么? SRE(Site Reliability Engineering),站点可靠性工程,起源于2003年。在系统管理员模式下,通常是通过人工操作完成任务,而SRE倾向通过设计、构建自动化工具来取代人工操作。SRE的本质是用软件工程的思维和方法解决复杂的运维问题。 DevOps是在2008年年末流行起来,强调自动化替代人工操作,以及利用软件工程手段执行运维任务。DevOps的核心是"全栈交付", SRE的出发点是“保障和提升系统稳定性”,两者要做的事情其实本质上差别不大,但是角度不同。可以认为De

John的博客 1万+

什么是SRE?SRE需要具备什么能力?

对于SRE一词,想必大家已经不陌生了,满世界都在讲SRE,但是SRE到底是个什么角色?负责哪些工作呢?今天来给大家解惑一下。 SRE最早是由Google提出的概念,其大概的意思就是:以标准化、自动化、可扩展驱动维护,用软件开发解决运维难题。这个岗位面世的时候,其根本要解决的问题就是打破传统研发人员快速迭代而引发的业务不稳定性,用以保证业务维护侧重的服务质量以及稳定性之间的平衡。 不同公司的SRE定位是不同的,可能某些公司的运维岗位也是SRE,因此,不能以偏概全,国内的SRE基本是以岗位来区分的,比如,有.

青牛踏雪御苍穹的博客 8604

SRE Google运维解密pdf

下载地址:网盘下载自动化对Google SRE 的价值 62自动化的应用案例 63Google SRE 的自动化使用案例 63自动化分类的层次结构 64让自己脱离工作:自动化所有的东西 66舒缓疼痛:将自动化应用到集群上线中 67使用Prodtest 检测不一致情况 68幂等地解决不一致情况 69专业化倾向 71以服务为导向的集群上线流程 72Borg :...

weixin_30945039的博客 2017

《Sre google运维解密》笔记

Sre是什么

不才的专栏 1462

《SRE:Google 运维解密》读书笔记11: 基于时间序列数据进行有效报警 - 新型的监控

在正式进入第10章之前,有必要对“具体实践”这一部分的整体结构有所了解。章节主题核心内容第10章基于时间序列数据进行有效报警Borgmon、时间序列数据库、报警规则设计第11章on-call 轮值多地团队、轮值频率与生产环境熟悉度第12章有效的故障排查手段假设-排除法、常见陷阱第13-14章应急事件管理降低影响范围、管理事故响应第15-16章事后总结与根源分析无指责文化、事故跟踪系统第17章测试避免已知类型问题重复发生第18-22章容量规划与负载均衡Auxon、GSLB、BwE、连锁故障。

1932

SRE Google 运维解密读书笔记一:SRE 方法论概述

SRE Google 运维解密,是 SRE 领域的启蒙之作,讲述了 Google 的 SRE 实践,SRE 就是从 Google 流传出来的。本文是读书笔记,第一篇,概述 SRE 方法论

n9ecommunity的博客 616

GOOGLE SRE 运维模式解读

Google SRE文化的精髓在于将软件开发和运维相结合,实现了自动化运维,从而提高了服务的可靠性和可维护性。SRE团队通过对生产环境的监控和分析,不断改进服务的性能和稳定性。此外,SRE团队还积极参与软件开发和架构设计,为产品的可靠性和可扩展性提供支持。

wangjye99的博客 922

《SRE:Google 运维解密》读书笔记03: SRE 理念 - 从“零故障”到“理性风险”

本文摘要:SRE(Site Reliability Engineering)是一种用软件工程方法解决运维问题的实践,核心是让软件工程师负责运维工作。与传统运维不同,SRE强调自动化、50%开发时间、拥抱风险(通过错误预算机制)和消除重复性工作。Google的SRE团队分为产品SRE、基础设施SRE和共享平台SRE三种形态,要求成员具备软件开发能力。SRE七大原则包括:拥抱风险、设定SLO目标、消除琐事、监控系统、自动化、发布工程和追求简单性。SRE与DevOps互为补充,前者提供具体方法论,后者提供文化框架

1650

《SRE:Google 运维解密》读书笔记06: 少琐事 - SRE的隐形敌人

琐事就是运维服务中手动性的、重复性的、可以被自动化的、战术性的、没有持久价值的工作,而且,琐事与服务呈线性关系的增长。一个经典案例:运维人员收到"磁盘目录满"告警后,手动登录服务器清理日志文件。这件事手动、重复(下次磁盘还会满)、可以被自动化、没有持久价值(清理完服务状态没有任何改进),且随着服务器数量增长,这类工作的频次会线性增加。另一个琐事密集场景:周期性报表和周期性巡检。这类工作虽然看似"有必要",但如果每次都需要人工执行,就完全符合琐事的定义——重复、可自动化、缺乏持久价值。

1578

Google SRE 读书笔记 扒一扒SRE用的那些工具

写在前面 最近花了一点时间阅读了《SRE Goolge运维解密》这本书,对于书的内容大家可以看看豆瓣上的介绍。总体而言,这本书是首次比较系统的披露Google内部SRE运作的一些指导思想、实践以及相关的问题,对于我们运维乃至开发人员都有一定的借鉴意义。 书中的一些思想也令我印象深刻,例如SRE工程师要保证投入50%的时间在项目上、错误预算、命运之轮、事故总结等等,对于从业者有很大的启发。...

aifeier1982的博客 1267
上一篇: 雪崩之下,没有一片雪花是无辜的
下一篇: Metrics:如何让线上应用更加透明?
一猿小讲
博客等级 码龄15年 294粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值