effective engineer-减少运行成本

2019-02-16  本文已影响6人  MontyOak

这里的运行成本指的不仅是新功能开发的成本,还包括后期维护、扩展、修复bug、运维等等成本。

保持运维简洁

引入过多不必要的技术栈往往带来额外的复杂度:

作者给出了以下几条建议:

作者建议保持简洁,先去尝试最简单的解决方案。

构建快速失败的系统

系统设计架构中有两种思想,一种提倡即使在有错误的情况下,也要尽可能保证系统运行,以保持系统的“鲁棒性”和“可靠性”,这种思想叫做安全失败;另一种则提倡降低对于错误的容忍,一旦有系统错误就抛出错误,停止运行,以尽快将错误暴露出去,这种思想叫做快速失败
这里的快速失败原则有益于缩短验证周期,获得快速反馈(虽然是失败的消息反馈)。现实系统设计中往往会在两种思想中做出权衡,对于非必要的错误保持鲁棒性(代价是可能会提高问题的定位和debug的成本),对于必要的错误采取快速失败的原则(以便快速暴露问题-快速修复)。

构建自动化流程

尽可能使用自动化流程而不是人工处理,一来可以降低时间成本;二来减少人工低级失误。

保证批任务幂等

这时批任务的设计原则之一,任务处理幂等以方便任务失败重试。

构建快速恢复能力

这也是系统设计的原则,既然选择了快速失败的设计原则,相对应的,就应该建立快速恢复的能力。

上一篇 下一篇

猜你喜欢

热点阅读