Home

SRE建设之事前建设

背景 稳定性的重要性,在VUCA约束下,达到稳定性,是对工程师全方位能力的锻炼。 VUCA V: Volatility 易变性 U: Uncertainty 不确定性 C: Complexity 复杂性 A: Ambiguity 模糊性 CAP理论 C:Cost 成本 A:Quality 质量 P: Productivity 效率 不稳定的原因 人为因素 mindmap root((人为因素)) 代码编写 代码逻辑错误 异常处理不合理 第三方库使用不正确 未遵循开发规范 死循环 配置问题 超时时间...

Read more

supervisor python multiprocessing 监听信号 实现所有进程同时退出

supervisor 多进程管理 使用 supervisor 管理进程,如果被管理的项目是多进程模式,就需要注意一下:   1、程序内是否有接收处理 kill -15 | SIGnal。   2、python 程序无法监听 kill -9 信号(其他编程语言没有了解,但按理说应该是一样的),也无法拒绝(kill -9 是立马强制结束进程),所以不要随便使用 kill -9 结束一个进程(kill params[pid], 会允许程序延迟退出,所以程序内可以监听 kill -15 | SIGnal),如果使用 kill -9 结束了一个主进程,那么它的子进程就会成为孤儿进程,使用 kill -9 结束某个子进程,就会有可能导致其成为僵尸进程。   3、如果确实有需要强制结束某个进...

Read more

稳定性之heinrich’s law

海因里希法则和稳定性 海因里希法则是美国著名安全工程师海因里希提出的300:29:1法则。意思是:当一个企业有300起隐患或违章,非常可能要发生29起轻伤或故障,另外还有一起重伤、死亡事故。”海因里希法则”原是通过分析工伤事故的发生概率,为保险公司的经营提出的法则。 对于稳定性方面的启发是:如果能在发生第一个隐患时找到事情的根因,就可以避免后续的故障和事故。即在一件重大的事故背后必有29件“轻度”的事故,还有300件潜在的隐患。可怕的是对潜在性事故毫无觉察,或是麻木不仁,结果导致无法挽回的损失。了解“海因里希法则”的目的,是通过对事故成因的分析,让人们少走弯路,把事故消灭在萌芽状态。 根因探查 5Why模型 https://en.wikipedia.org...

Read more

软件工程冰山一角

初生牛犊 对于年轻的、刚入行的计算机学生来说,代码在他们眼中是这样的: 稍有小成 当然,实习生们都很聪明,他们知道学术界和工业界的代码有哪些不同,他们会花点儿时间给代码加上注释,做点测试,code review…… 但是,他们依然不会意识到这座冰山有多深。 A11Y: accessibility,是指设计和创建可以被所有人,包括那些有残疾的人,使用的网站和应用程序。例如让盲人通过语音方式使用软件。 l10n : localization(本地化), 类似的还有i18n (国际化)。 GDPR:General Data Protection Regulation(通用数据保护条例),这是一项在2018年5月25日生...

Read more

敏捷项目管理评估方法

T-Shirt Size Estimation Amazon用一种T-Shirt Size 估计的方式来做项目。 产品经理会对每一条需求评估上业务影响力的尺寸,如:XXXL 影响一千万人以上或是可以占到上亿美金的市场,XXL,影响百万用户或是占了千万金级别以上的市场,后面还有XL,L,M,S,这样下来。 开发团队也一样,要评估投入的人员时间成本,XXXL表示要干1年,XXL干半年,XL干3个月,L干两个月,M干一个月,S干两周以下。等等。 于是, 当业务影响力是XL,时间人员成本是S,这是最高优先级。 当业务影响力是M,时间人员成本是M,这是低优先级。 当业务影响力是S,时间人员成本是XL,直接砍掉这个需求。因为是亏的。 当业务影响力是XXL,时间人员成本是XXL,需要简化需...

Read more

Google自我评分卡

Google评分卡 Google要求应聘人对自己的技能做出评估的工具,它可以看出应聘人在各个领域的技术水平。我们可以参考Google的这个评分卡来给自己做评估,并通过它来不断地提高对自己的要求。 0 - you are unfamiliar with the subject area. 1 - you can read / understand the most fundamental aspects of the subject area. 2 - ability to implement small changes, understand basic principles and able to figure out additional details with mini...

Read more

指标监控模型

4个黄金指标 Four Golden Signals是Google针对大量分布式监控的经验总结,4个黄金指标可以在服务级别帮助衡量终端用户体验、服务中断、业务影响等层面的问题。主要关注与以下四种类型的指标:延迟,通讯量,错误以及饱和度: 延迟 Latency:服务请求所需时间。 记录用户所有请求所需的时间,重点是要区分成功请求的延迟时间和失败请求的延迟时间。 例如在数据库或者其他关键祸端服务异常触发HTTP 500的情况下,用户也可能会很快得到请求失败的响应内容,如果不加区分计算这些请求的延迟,可能导致计算结果与实际结果产生巨大的差异。除此以外,在微服务中通常提倡“快速失败”,开发人员需要特别注意这些延迟较大的错误,因为这些缓慢的错误会明显影响系统的性能,因此追踪这些错误的延...

Read more

Latency监控指标

什么是Latency 延迟是指一个操作发生所需的时间。这意味着每个操作都有自己的延迟——如果有 100 万个操作,就会有 100 万个延迟。因此,延迟不能按工作单元/时间来衡量。我们感兴趣的是延迟的行为。为了有效地描述延迟,必须描述延迟的完整分布。延迟几乎从来不遵循正态、高斯或泊松分布,因此查看平均值、中位数甚至标准差是没有用的。 延迟往往是多模态的,这部分是由于响应时间的“间歇性卡顿”。间歇性卡顿类似于周期性的冻结,可能由多种原因引起,例如:垃圾回收暂停、虚拟机暂停、上下文切换、中断、数据库重索引、缓冲区刷新到磁盘等。这些间歇性卡顿从来不会遵循正态分布,并且模式之间的转换通常是快速而异质的。 如何有效地描述延迟分布?必须看分位数,但这还不止于此。许多人会陷入一个陷阱,就是只...

Read more