发布过程中旧版本和新版本会同时运行。任何只允许单一版本存在的变更,都可能在这个窗口造成错误。
数据库采用扩展再收缩
先添加新字段或新表,让新旧应用都能工作;发布应用并逐步迁移数据;确认旧版本完全退出后,再删除旧字段和兼容代码。重命名字段通常也应拆成多个阶段。
接口和消息格式遵循同样原则:先让消费者理解新旧格式,再让生产者发送新格式。删除字段比增加字段更危险,尤其要检查异步任务和离线消费者。
就绪探针应反映实例是否能接流量,优雅停机负责排空在途请求。发布系统还需根据错误率和延迟自动暂停,而不是只检查进程有没有启动。