运维哲学

网友投稿 722 2022-09-26

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

运维哲学

(本文共2049字,大约需要阅读6分钟)

一、复杂与简化

复杂是没有止境的可靠性只有靠不断追求最大程度的简化而得到认识到必要复杂度和意外复杂度之间的区别非常关键。必要复杂度是一个给定的情况所固有的复杂度,不能从该问题的定义中移除,而意外复杂度则是不固定的,可以通过工程上的努力来解解决。简化和梳理:当考虑如何简化一个给定的任务的每一步时,我们并不是在偷懒,相反我们是在明确实际上要完成的任务是什么,以及如何更容易地做到。在没有什么可以去掉的时候,而不是在不能添加更多的时候,才能达到完美。

二、耦合与解耦

如果一个事物A的功能实现需要借助于事物B,那么就称事物B是事物A的依赖,如果在事物A的内部去实现事物B的功能,那么两者之间会出现较高的耦合,一旦事物B出现了问题,事物A也需要进行改造。要解决耦合问题,就要把事物A对事物B的控制权抽离出来,交给一个第三方去做,即解耦, 把控制权反转给第三方,就称作控制反转(IOC ,Inversion Of Control)。控制反转是一种思想,是能够解决问题的一种可能的结果。在面向对象程序设计中的实现称为依赖注入(Dependency Injection),由第三方(我们称作IOC容器)来控制依赖,把它通过构造函数、属性或者工厂模式等方法,将类B注入到类A内,这样就极大程度的对类A和类B进行了解耦。

解耦在运维中应用的例子:

托管IDC:硬件设备与场地的解耦云平台:基础架构与应用软件的解耦垂直应用架构:应用软件模块与软件功能解耦SOA服务架构:应用模块接口关系解耦分布式服务架构:应用模块关系间的解耦网络大二层配置:服务器与VLAN解耦Clos架构:应用网络与基础网络解耦SDN网络:网络控制和流量转发解耦安全云原生:安全服务与安全风险解耦时间序列监控系统:监控项和监控系统解耦基于意图的容量规划:需求变更和容量规划解耦。

三、灵活与稳定

运维的工作最终是在系统的灵活性和稳定性上维持平衡。

四、信任&验证

测试是一个用来验证变更前后系统的某些领域相等性的手段

系统通过某项测试或者一系列测试并不一定能证明系统是稳定的,但是失败的测试通常证明了系统不可靠。

测试是处理MTTR为0的bug,以增加MTBF的时长。

监控系统也可以发现系统中的bug,但是仅限于汇报的层次,不能预先告警。通过监控指标的采样统计数据推断出系统行为是否发生了变化,这些统计数据指出了需要完善和调整测试的区域。

1、可测试性原因

(1)、如果在最近一段时间内,该系统完全没有改变。包括没有任何软件更新以及服务器数量变化。这意味着未来的行为方式应该与过去的行为方式类似。

(2)、如果可以充分描述整个系统的所有改变,这样就可以针对每个系统变化引入的不确定性进行分析

2、信任

信任仍要验证:任何事物都有缺点,一定会存在某种问题,即便你选择信任它。

五、正常与故障

系统正常,只是该系统无数异常情况下的一种特例东西早晚是要坏的,这就是生活。业务体量越大,系统越复杂,问题和故障就越多,出现故障是必然的。我们更应该考虑的是,怎么让系统更健壮,在一般的问题面前,仍然可以岿然不动,甚至是出现了故障,也能够让业务更快恢复起来。系统不但一定会出问题,而且大多会以没有人能够想到的方式出问题。所有的问题都有对应的解决方案,虽然它可能不是那么显而易见。如果你想不到问题的解决办法,那么就在更大的范围内寻求帮助,找到更多团队成员,寻求更多的帮助,做你需要做的一切事情,但是要快。向过去学习,而不是重复它:如果没有一种方法从已发生的事故中学习经验,那么事故就可能循环反复地发生。如果不能解决这个问题,那么随着系统规模和复杂度的增加,事故可能成倍增加,最终导致我们没有足够的资源处理事故,从而影响最终用户。运维和维修的区别:运维有主观性,维修没有。维修即便事后总结也没有办法预防下次的故障。不经常使用的东西一定会在你最需要它的时候出现故障,必须通过不停的使用才能保障它是可用的。演练的意义:只有白天勤劳的进行故障演练,才能晚上酣畅淋漓的睡个好觉。再重要的系统也要演练:日本福岛核电站隔离冷凝器的启动测试40年没有进行,导致现场没人见过猪鼻子冒出来的水蒸汽正常应该是什么状态,导致误判,最终导致核泄漏。

六、纵深防御

理论与工程:完美的理论不代表实现过程也是完美的。最安全的系统也会有实现中的漏洞及人为操作错误。

纵深防御:在一个不断变化的环境中,为了防止漏洞的存在,最好的办法一定是多层的——不同理论范式实现的为同一个保障目的的重叠保障。

七、环境与检查

环境与验证:在一个不断变化的环境中,一个物品在环境变化前是适应环境的,不代表环境变化后也是适应的,环境变化后必须要验证之前对物品操作的假设和流程在新的环境下是否仍然适用,环境变化越快,验证过程也应该越快。演练的意义:环境是否变化在很多时候也是信息不对称的,所以要不断的间隔性验证环境与物品的适应性,间隔越短物品的可靠性越强。毁灭的必然性:任何事物总会出现不能适应新环境的那一刻。

上一篇:运维狗的北京爱情故事......(北京情感故事)
下一篇:天下武功无坚不破,唯快不破!(天下武功无坚不破唯快不破什么意思)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~