可靠Web应用程序模式概述
微软发布了可靠Web应用程序模式的源代码和文档,该模式是一套最佳实践,帮助本地部署的Web应用开发者在Azure上创建安全、可靠且成本优化的云端应用,且只需对核心业务代码进行最小改动。
该模式基于Azure良好架构框架,该框架旨在提升云工作负载的质量。可靠Web应用程序模式通过应用该框架,使开发者能够以最小的改动实现应用向云端的迁移,并为企业开发者提供了明确的迁移指南。
参考应用与资源
该模式通过一个参考应用实现,该应用是一个面向内部员工的票务购买系统,属于虚构公司Relecloud。该应用最初为本地部署设计。微软提供了架构文档、生产就绪的源代码以及六个学习视频,以缩短开发者的学习时间。
架构与设计模式
该模式通过重试和断路器设计模式实现应用的弹性。重试功能利用Azure SDK的内置机制和Polly瞬态故障处理库实现;断路器模式则用于处理非瞬态故障,同样通过Polly库实现。
性能优化
为提高性能,该模式推荐使用缓存机制,特别是结合Cache-Aside设计模式与Azure Cache for Redis服务。参考应用中还包含本地分布式内存缓存的实现,以降低成本和复杂性。
在发布博客中,Madhusudana B.S指出,Cache-Aside模式并不足以应对所有场景,开发者还需采取措施防止缓存雪崩。Jody Donetti建议使用LazyCache、CacheTower或他开发的FusionCache。
成本优化与基础设施
该模式包含成本优化措施,如自动扩展、单一缓存源和合理配置的Azure服务。其基础设施即代码(IaC)使用Bicep模板,并通过参数进一步定制参考实现的成本和配置。环境部署通过GitHub Actions实现,遵循Azure良好架构框架中的可重复基础设施原则。
安全性
该模式强调云环境中的安全性,建议使用托管Azure身份标识来实现Web应用与其他Azure服务的通信,并遵循最小权限授权策略。托管身份标识还提供了可追踪和可审计的Azure资源访问方式。若托管身份标识不支持,则建议使用Azure Key Vault等集中式密钥管理服务。
对于入口流量,该模式利用Azure Front Door服务,并通过Web应用防火墙(WAF)防范机器人攻击和安全探测。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。