云应用设计全解析
1. 故障设计
在云环境中,要假定各种故障会发生,如硬件故障、云数据中心中断、数据库故障或性能下降、交易流量超出预期等。在自动扩展环境中,节点可能因负载恢复正常而关闭,云平台也可能重启节点,还会有意外的应用程序故障。设计目标是优雅地处理这些错误情况,减少对用户体验的影响,同时尽量减少人工干预。
可以使用云平台提供的服务来实施策略,降低故障发生的可能性或实现自动化恢复。例如,使用 AWS CloudFormation 在 Amazon EC2 实例上安装、配置和启动应用程序,它包含基于 cloud - init 的辅助脚本,可从 AWS CloudFormation 模板调用这些脚本来自动化应用程序的安装、配置和更新。
以下是一些关键设计原则:
- 避免在服务器上存储应用程序状态 :如果服务器出现问题,存储在其上的应用程序状态会丢失。会话不应存储在本地文件系统中,这在服务器故障和扩展时都很重要,以免在缩容过程中丢失信息。
- 集中式日志记录 :日志应记录到集中位置,如数据库或第三方日志服务。若需临时存储信息用于后续处理,云平台的可靠队列服务是不错的选择。
- 日志包含额外信息 :日志记录应包含实例 ID、区域、可用区、租户 ID 等云特定信息,还可包含故障前的应用程序特定调用或请求序列,以帮助追踪问题根源。对于多租户的集中式日志记录,可使用工具查看、搜索和过滤日志记录。
- 实现重试逻辑 :请求在到达服务器端处理组件的过程中可能在任何地方出错,通常会导致服务器错误(5xx 系
超级会员免费看
订阅专栏 解锁全文
1398

被折叠的 条评论
为什么被折叠?



