Frigate:高可靠分布式应用发布系统

版权申诉
0 下载量 80 浏览量 更新于2024-08-12 收藏 153KB DOCX 举报
“App热发布(高可靠的分布式应用发布系统).docx” 本文档详细介绍了Frigate,一个高可靠的分布式应用发布系统,其设计目标是确保应用服务的质量,特别是强调发布系统的稳定性和健壮性。系统支持三种发布模式:分组发布、快速发布和全量发布,以适应不同类型的发布需求。 1. **发布模式** - **分组发布模式(GroupMode)**:适用于常规更新,允许新老版本并存,减少服务中断的影响。 - **快速发布模式(ExpressMode)**:针对Bug修复,旨在快速部署新版本,提高修复效率。 - **全量发布模式(FullMode)**:用于非兼容性更新,需要全部节点升级至新版本,避免版本混杂。 2. **系统架构** - **CI(持续集成)**:负责应用的打包上传,并管理发布流程,包括错误回滚。 - **LBPlugin(负载均衡插件)**:动态调整负载均衡配置。 - **AppRepository(应用仓库)**:存储由CI构建的程序包。 - **AppAgent**:在各个节点上执行发布、启动、停止和回滚操作。 - **AppWatcher**:实时监控应用运行状态。 - **AppHealthCenter**:维护应用健康状态数据。 3. **系统拓扑结构** - **Group-#**:基于特定策略(如IP或用户ID)划分流量组。 - **Cluster-***:将应用集群分为多个应用组,每个流量组对应一个应用组,一个应用组可关联多个流量组。 - **Standby-Cluster**:备用组,发布期间保持在旧版本,发布完成后切换至新版本。 4. **分组发布模式(GroupMode)** - **发布流程**:首先,LBPlugin将流量从Cluster-A切换到Standby-Cluster,AppAgent下载并发布新版本到Cluster-A,然后恢复Cluster-A的流量。 - **验证机制**:AppWatcher监测Cluster-A的状态,包括异常数、WS连接数、HTTP请求失败率和消息延迟,确保新版本的稳定运行。 - **回滚流程**:若AppWatcher检测到异常,将触发回滚,流程与发布类似,将流量从Cluster-A切回Standby-Cluster。 Frigate的设计充分考虑了发布过程中的风险控制,通过细致的验证和回滚机制确保服务的连续性和可靠性。这种架构对于大型分布式应用尤其重要,因为它允许在不影响大部分用户的情况下进行更新,并且能够快速应对可能的问题,降低运维风险。同时,通过动态配置负载均衡,Frigate能够灵活地管理流量分配,实现高效且安全的发布。