一次事故暴露出的三个架构问题

在现代系统架构中,确保系统的高可用性和可靠性是至关重要的。本文通过一个实际案例,探讨系统架构设计中的几个关键概念:韧性(Resilience)、硬依赖(Hard Dependency)和服务降级(Service Degradation)。希望通过对这些概念的深入探讨,帮助读者更好地理解和应用这些原则,提升系统的整体稳定性和用户体验。

案例介绍
应用A是一个商户管理后台,为商户提供查询交易的便利。应用A需要用户登录后才能使用。为了确保登录的安全性,应用A调用了应用K的多因素认证服务(MFA)。MFA在用户名和密码的基础上,通过邮件发送验证Token给用户,邮件使用了宇宙第一软件公司的SMTP服务。当该SMTP服务失败时,MFA无法发送邮件,导致应用A的登录失败。

这个案例揭示了几个架构设计上的不足:
  1. 应用K的MFA没有考虑SMTP服务失败的情况,存在硬依赖的问题。
  2. 应用A假设应用K的服务永远可用,没有设计足够的韧性。
  3. 当应用K无法发送邮件时,没有进行服务降级,导致用户无法登录。

         有问题的架构                          

硬依赖问题(Hard Dependency)
硬依赖是指系统中某个组件必须依赖另一个特定组件,如果该组件失效,整个系统将无法正常运行。在本案例中,应用K的MFA对SMTP服务存在硬依赖,当SMTP服务失败时,MFA无法正常工作,从而导致应用A的登录失败。

系统韧性(Resilience)
系统韧性指的是系统在遇到各种压力、突发事件或故障时,能够维持其功能和服务,并在受损后迅速恢复的能力。应用A在设计时没有考虑到应用K的服务可能会失败,缺乏足够的韧性。当应用K的服务不可用时,应用A应有应对措施,以确保核心功能的正常运行。服务降级(Service Degradation)
服务降级是指在系统压力过大、某些组件失效或外部依赖不可用时,通过限制或关闭某些非核心功能来保证核心服务的正常运行。在本案例中,当应用K的MFA无法发送邮件时,可以考虑进行服务降级,允许用户仅使用用户名和密码登录,暂时取消邮件验证功能。解决方案1. 减少硬依赖
为了解决硬依赖问题,系统应引入冗余和备用机制。例如,可以配置多个SMTP服务提供商,当主要的SMTP服务不可用时,自动切换到其他的备用服务。此外,MFA服务还可以考虑其他验证方式,如短信验证或基于移动应用的验证码。2. 提高系统韧性
应用A应设计为具备足够的韧性,能够应对外部依赖的失败。具体措施包括:
  • 实现服务降级机制,当外部服务不可用时,提供简化的登录方式。
  • 增加故障检测与自动恢复功能,确保在发现问题时能够快速响应和处理。
  • 定期进行压力测试和故障演练,验证系统在各种异常情况下的表现。

3. 实施服务降级策略
当应用K的MFA服务无法正常工作时,应用A可以实施服务降级策略,允许用户仅使用用户名和密码登录,暂时取消邮件验证功能。这种做法可以保证用户仍然能够访问系统的核心功能,而不会因为外部服务的不可用而完全中断。

                        优化之后的架构                                  

结论通过本文的案例分析,我们可以看到在系统架构设计中,考虑到硬依赖、系统韧性和服务降级的重要性。这些原则不仅有助于提高系统的可靠性和可用性,还能在关键时刻为用户提供更好的体验。希望本文能为系统架构师和开发人员提供有价值的参考,帮助他们设计出更稳定和健壮的系统。

----------------------------------


PS:推荐右军专栏《20年职业50个思考与洞察》

相关推荐

  • 徐峥演出了人间真实:面对裁员,hr说人家能熬啊
  • 基于趋势和季节性的时间序列预测实战
  • 没有千亿级也没有百亿级,ToB 大模型如何挖掘不足 1% 的企业数据的价值?
  • vivo蓝河操作系统首届技术沙龙即将举办,邀您共探Rust与AI新时代!| Q推荐
  • K8s 技术人不得不说的考证二三事 | 极客时间
  • 清华大学汪玉:大模型能效提升,有几条必经之路?
  • 软件工程的兴衰轮回:2 年巨变,裁员风暴下小团队逆袭,老技术反迎第二春?
  • 招聘|Anytime AI-机器学习工程师
  • 资料下载:《大语言模型实战宝典》
  • 弱监督建模技术在蚂蚁风控场景中的探索与应用
  • 2024年云中AI工程的三大关键趋势
  • 关于攻防演练,90%企业不知道的3个真相
  • 烧钱抢老司机饭碗?“萝卜快跑”事件辟谣:武汉仅投放400多辆无人车;“萝卜”相关负责人揭秘AI新职业:“云代驾”!
  • 北京内推 | ​度小满金融AI LAB招聘数字人/文生视频方向研究型实习生
  • 当Mamba遇上视觉压缩:首个具有选择性状态空间的视觉压缩网络
  • 生成式模型不只会「模仿」!哈佛、UCSB等最新成果:性能可超越训练集专家水平
  • 斯坦福炒虾机器人原班人马新作!最强大脑Gemini加持,机器人炫技导航玩出新花样
  • OpenAI机密五级AGI路线图曝光!GPT-4仍处L1,内部AI接近博士水平18个月诞生
  • Mamba一作再祭神作,H100利用率飙至75%!FlashAttention三代性能翻倍,比标准注意力快16倍
  • AI Agent满级进化!骑马种田、办公修图,样样精通,昆仑万维等发布通用Agent新框架