为什么微服务团队难以独立交付?

主要观点:

  • 微服务虽有独立团队能快速移动、更频繁部署和更有效扩展系统等好处,但很多团队未实现其承诺,原因是流程未同步进化。
  • 批量发布存在隐藏成本,如合并多个 PR 进入暂存环境会导致长测试周期、减慢反馈循环等。
  • 智能团队陷入此陷阱通常由测试资源密集和环境稀缺这两个潜在约束导致,虽拆分单体为微服务但测试和发布实践仍强迫团队一起行动。
  • 为快速且不牺牲质量,团队需独立测试每个更改, sandbox 测试是一种实用且可扩展的方法,能创建真实且隔离的测试环境,带来诸多好处。
  • 一些工程组织使用 sandbox 测试报告了显著改进,如加快交付速度、使调试更精准、让开发者全程负责等,且无需大规模基础设施改造。
  • 阻碍微服务快速交付的是行为和程序方面,而非技术,打破批量发布习惯有助于恢复微服务的原始承诺。

关键信息:

  • 批量发布的隐藏成本包括交付时间延长、调试变慢、上下文丢失、所有权模糊等。
  • 测试每个更改需独立且在上下文中进行,mock 策略在生产级系统中常失效。
  • sandbox 测试通过创建孤立的轻量级服务来进行针对性测试,能快速获得反馈,缩短反馈循环。
  • 多个工程组织使用 sandbox 测试取得显著成效,如加速交付、精准调试等。
  • 要打破批量发布习惯,需重新评估流程,从小规模开始尝试 sandbox 测试。

重要细节:

  • 测试每个更改时,mock 无法捕捉网络条件等问题且维护成本高。
  • sandbox 测试中,只隔离更改的服务,其他服务为真实共享的,无需改变全局环境。
  • 一些工具可支持按需创建临时环境,与现有系统无缝集成。
  • 阻碍微服务交付的行为和程序方面的阻塞因素,如批量部署等。
阅读 10
0 条评论