View on GitHub

modularization-examples

代码防腐实用技术

因为大部分线上故障都是由变更引起的,所以SRE会非常强调部署流程的小心谨慎。 一旦发现有问题,就会被要求立即回滚。这也就导致了搭车上线是非常讨厌的事情,谁知道你搭车进来的改动会不会翻车。 所以拆分成多进程,各上各的就会变成非常强烈的需求。

多进程当然是有其合理性的,替换进程是最简单最可靠的变更形式。 开源的 kubernetes 等项目也提供了完善的基础设施来支持多进程的部署模式。 特别是没有单元测试情况下的PHP应用,是不是有语法错误都无法在部署之前保证,强烈依赖于上线过程的观察。

但是用拆分进程的方式来解决上线慢的问题也会有一些缺点: