美文网首页
effective engineer-减少运行成本

effective engineer-减少运行成本

作者: MontyOak | 来源:发表于2019-02-16 23:47 被阅读6次

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

    保持运维简洁

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

    • 工程师需要解决在不同系统中的问题。
    • 引入额外的依赖项会增加故障的可能性,降低可用性。
    • 对于新加入的工程师,需要更长的时间来了解系统的运行方式。
    • 系统优化会变得更加困难。

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

    • 把新技术引入生产环境之前,至少应该考虑这几个问题:团队中其他成员对于这门新技术掌握成本如何?能否招聘到能够掌握这门技术的员工?等等
    • 进行技术选型的时候,可以参考一些其他公司的项目技术选型,有没有什么潜在的问题,有没有比较好的已有解决方案等等。

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

    构建快速失败的系统

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

    构建自动化流程

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

    保证批任务幂等

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

    构建快速恢复能力

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

    相关文章

      网友评论

          本文标题:effective engineer-减少运行成本

          本文链接:https://www.haomeiwen.com/subject/jjqweqtx.html