您是否可以推荐一些关于软件体系结构模式的文献,以便在处理软件更新/版本时组合可提供高度“连续性”的服务。服务连续性体系结构
例如,在一个企业中,有多个应用程序相互连接,并且依赖于它们的资源,当然,就像数据库一样,执行更新/发布时如何实现零停机?典型场景包括一次更改DB设计和多个服务合同。
您是否可以推荐一些关于软件体系结构模式的文献,以便在处理软件更新/版本时组合可提供高度“连续性”的服务。服务连续性体系结构
例如,在一个企业中,有多个应用程序相互连接,并且依赖于它们的资源,当然,就像数据库一样,执行更新/发布时如何实现零停机?典型场景包括一次更改DB设计和多个服务合同。
无状态可能是构建服务层的唯一最重要的因素,可以通过零宕机进行升级。这使您可以启动新版本的软件,执行负载平衡器切换,并关闭旧版本。
这可以通过有状态系统来实现,但是您必须能够监视它们的现有连接,并在等待现有会话过期时更仔细地控制负载平衡器。
数据库设计的变化要复杂得多,通常只包含规划,以便变更始终向后兼容。您需要确保您的数据库允许同时运行旧版本和新版本的服务。
这并不意味着你不能做出突破性改变,它只是意味着你通常需要分两步进行。例如,重命名一个字段变为:
这是一个巨大的疼痛,BU对于某些您确实需要的系统需要这种正常运行时间要求。当需要很长时间(有时几周)将数据移动到新位置时,我也必须这样做。
最后,这部分是非常重要的。确保你的服务是自治的。没有多个服务读取/写入同一张表。这是一个巨大的混乱,同时迁移多个服务是一场噩梦。