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

effective engineer-减少运行成本

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

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

保持运维简洁

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

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

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

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

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

构建快速失败的系统

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

构建自动化流程

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

保证批任务幂等

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

构建快速恢复能力

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

相关文章

  • effective engineer-减少运行成本

    这里的运行成本指的不仅是新功能开发的成本,还包括后期维护、扩展、修复bug、运维等等成本。 保持运维简洁 引入过多...

  • effective engineer-权衡质量和成本

    这节内容作者主要介绍如何在项目质量与成本之间做权衡。 建立可持续的代码评审流程 Code review在很多公司都...

  • effective engineer-优化学习

    这节主要讲保有持续成长的心态是能力提升的先决条件,作者给出了关于一个公司或者团队对于个人学习的影响的几个关键因素。...

  • effective engineer-关注迭代周期

    大多数互联网公司的发布系统都提供了CI/CD(持续集成/持续发布)的功能,这使得每天多次发布成为了可能。有比较完备...

  • effective engineer-快速验证想法

    这节讲了高频的验证自己的工作能够让整体的工作不偏离方向。 寻找低成本的验证方法 简单来说,投入小的成本来获取相关数...

  • effective engineer-关注高杠杆事物

    这一节讲述为什么杠杆是效率的衡量标准以及三条提高杠杆的有效方式: 使用杠杆作为效率的衡量标准 在这里先简单给出杠杆...

  • effective engineer-提高项目预估能力

    这节内容中,作者主要着力于项目进度预估的工具。 利用精确的预估推动项目进度 实际工作中,我们经常被要求给出一项具体...

  • effective engineer-为团队成长投资

    团队的效率增长不仅仅是团队领导的责任,也是团队中的高级工程师的职责。在团队成功的建设上,作者给出下面几天建议: 把...

  • effective engineer-时常调整优先级

    这节内容作者着重介绍如何适时地调整自己所关注的工作,因为相比于有限的时间,工作是明显多出来的。 维护一个简明清晰的...

  • 波思餐饮咨询

    【作业成本法】多投广告,就可以减少其他动作。减少动作,就是减少成本。所以广告投入越大,成本越低,风险越小。一个创意...

网友评论

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

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