【问题标题】:How to design backend architecture for a worldwide application如何为全球应用程序设计后端架构
【发布时间】:2017-06-03 21:05:26
【问题描述】:

我在一次采访中被问到这个问题。面试官让我为全球应用程序(例如 Yelp)设计后端架构,并问我需要使用哪些技术。

在面试时间段(这个问题预计需要大约 5 到 10 分钟),我需要给出哪些答案(或我需要考虑的方面)?它们可以推广到类似应用程序的架构设计吗?我找到了答案here,但对于面试问题的答案来说太过分了,而且对应用程序来说太具体了。

【问题讨论】:

    标签: architecture backend


    【解决方案1】:

    我想这取决于“全球应用”的含义。它可能表示“很多人使用的应用程序”,也可能表示“在许多不同国家/地区拥有用户的应用程序”。如果您正在面试系统架构师或系统工程师的工作,我想前者可能是预期的;如果你面试的是程序员职位,那可能是后者。

    对于前者,他们正在寻找稳健性和可扩展性类型的答案:跨多个 Web 和数据库服务器的负载平衡;包过滤和流量监控等...

    对于后者,他们可能正在寻找可用性和各种界面类型的答案:语言本地化技术、用于处理地址和电话号码的不同格式的数据库模型等...

    【讨论】:

      【解决方案2】:

      你是对的,这是一个非常广泛的面试问题,或者一个广泛的答案可以让你了解你的可扩展性、可用性等技能,或者面试官想看看你如何解决问题,而你不这样做'没有详细信息。在这种情况下,此类问题的一个很好的答案是您对系统的问题,主要是关于非功能性需求的问题。在做出架构决策之前了解有关系统的所有详细信息非常重要,因此,如果您开始提出问题,则意味着您知道如何处理此类任务。

      【讨论】:

      • 感谢您的回答。您能否详细说明我需要问哪些问题(或从哪些方面、方向)来缩小问题范围?
      • 在技术方面,您应该询问许可限制、预算、团队能力、可扩展性和可用性要求。有些工具/产品可能成本太高,有些不支持纵向和横向可扩展性,有些不支持事务。如果我们谈论解决方案设计,您应该主要询问功能需求,例如,如果要存储的数据不是结构化的并且没有严格的格式,您可能会使用 NoSQL,或者如果您需要跟踪系统中的每个事件,您可能会想实现事件溯源等等。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-29
      • 2013-12-08
      • 2012-03-01
      • 2019-02-28
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多