分离部署与发布:全面金丝雀发布
在渐进式交付兴起的当下,以及此前持续交付中不断提高的要求,能够将服务(及其对应的 API)的部署和发布分离开来是一项强大的技术。通过金丝雀发布服务或进行 A/B 测试,企业不仅能够降低不良发布带来的风险,还能更有效地了解客户需求,从而获得竞争优势。
金丝雀发布
在合适的场景下,金丝雀发布是一个绝佳的选择。因为它可以高度控制暴露于新版本的流量百分比。不过,这也需要系统具备良好的监控机制,以便在出现问题时能够迅速识别并进行回滚(此过程可自动化)。与蓝绿部署等策略相比,金丝雀发布只需启动一个新实例,而蓝绿部署则需要完整的第二套服务栈,这有助于节省成本并降低并行运行两个环境的操作复杂性。
流量镜像
除了使用流量拆分进行实验外,还可以利用流量镜像来复制流量,并将其发送到额外的位置或一系列位置。在流量镜像过程中,复制请求的结果通常不会返回给调用服务或最终用户,而是在带外评估响应的正确性,例如比较重构服务和现有服务生成的结果,或者观察新服务版本处理请求时的一些操作属性,如响应延迟或所需的 CPU 资源。通过流量镜像,可以实现服务的“暗启动”或“暗发布”,即用户不会察觉到新发布,但内部可以观察其效果。近年来,在系统边缘实现流量镜像变得越来越流行,现在服务网格能够在内部服务中有效且一致地实现这一功能。
蓝绿部署
蓝绿部署通常在架构中使用路由器、网关或负载均衡器的位置实现,其后分别是完整的蓝色环境和绿色环境。当前的蓝色环境代表当前的生产环境,而绿色环境代表下一个版本的服务栈。在切换到生产流量之前,会对绿色环境进行检查,上线时将流量从蓝色环境切换到绿色环境。此时蓝色环境停止运行,但如果发现问题,可以快速