云应用设计的多维度考量与实践
在云环境中进行应用设计时,需要考虑多个关键方面,以确保应用的可靠性、性能和成本效益。以下将详细介绍云应用设计的几个重要维度。
1. 故障设计
在云架构设计中,应假设各种故障可能发生,如硬件故障、云数据中心停电、数据库故障或性能下降、交易数量超出预期等。在自动扩展环境中,节点可能因负载恢复正常而关闭,也可能被云平台重启,还可能出现意外的应用程序故障。设计目标是优雅地处理这些错误情况,尽量减少对用户体验的影响。
- 减少人工干预 :优先使用云平台提供的服务来实施策略,以减少故障发生的可能性或实现自动恢复。例如,可以使用 AWS CloudFormation 在 Amazon EC2 实例上安装、配置和启动应用程序。AWS CloudFormation 包含一组基于 cloud - init 的辅助脚本,可以从 AWS CloudFormation 模板中调用这些脚本来自动执行应用程序的安装、配置和更新。
- 关键设计原则
- 避免存储应用状态 :不要在服务器上存储应用程序状态,因为服务器故障或扩展时可能会丢失这些状态。会话不应存储在本地文件系统中。
- 集中式日志记录 :日志应记录到集中位置,如数据库或第三方日志服务。临时存储信息可选择云平台的可靠队列服务。日志记录应包含云特定信息,如实例 ID、区域、可用区、租户 ID 等,还可包含应用特定的调用序列以帮助追踪问题。同时,使用工具查看、搜索和过滤日志记录。
- 重试逻辑 :请求在到达服务
超级会员免费看
订阅专栏 解锁全文
1410

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



