gpt4 book ai didi

c# - Azure 上有多个应用程序 - 每个服务一个应用程序还是一体式应用程序?

转载 作者:行者123 更新时间:2023-12-03 03:18:09 25 4
gpt4 key购买 nike

我们正在开发一个大型应用程序,它由多个 Web 应用程序(在不同的域下)以及一个后台调度程序(使用 Quartz.net)组成,该程序将在辅助角色上运行(目前它是一个 Windows 服务,但并不'在 Azure 上没有意义)。我试图找出对我们来说最好的方法是什么:为每个应用程序单独托管服务或在单个托管服务/角色下运行所有​​应用程序。我想还有第三种选择,即在单个托管服务下运行多个 Web 角色,但我需要利用 ARR(应用程序请求路由),我不确定它会给我带来什么好处(如果有的话)。对我来说听起来像是更多的开销,但我很可能是错的?

我的项目是:

  • 面向公众的网站 - 低负载
  • 私有(private)仪表板 - 中等负载
  • 跟踪(分析)应用,用于跟踪展示次数、点击次数等 - 高负载 - 每月超过 5 百万次点击
  • API - 负载也很高,因为跟踪应用依赖它
  • Quartz.net 调度程序(辅助角色)

公共(public)网站和仪表板可能应该位于单个 Web 角色上,但我不确定跟踪和 API 项目是否应该使用自己的云服务,以便它们可以独立扩展,或者我是否应该使用在单个 Web 角色上运行所有内容托管 header (当然调度程序除外)并立即缩放所有内容。所有托管服务都将运行多个实例,因此我不担心部署期间出现问题(因为 Azure 一次转换一个实例)。

此外,在单个角色上运行是否会给我在客户端应用程序(Web、仪表板、跟踪)和 API 之间提供更好的延迟,或者亲和性组和虚拟网络是否会使这一点变得无关紧要?

我一直在寻找最佳答案,但还没有找到足够确凿的答案。

我主要关心的是原始性能和可扩展性。价格对我们来说不是决定因素。

谢谢

最佳答案

这取决于...

对于您的问题,您需要考虑几个方面。

  • 部署和版本控制 - 您是否希望能够单独对系统的某些部分进行版本控制和部署?维护单独的部署会增加成本,但好处是提高了灵 active 和独立部署更改的能力。这是您做出决定时最重要的方面。
  • 团队结构 - 您是否有多个团队负责该系统?我强烈建议按照团队路线将部署和版本控制分开。
  • 可扩展性 - 从性能角度来看,这两个选项都具有同等的可扩展性。
  • UI 性能 - 这不应该是您的部署设计的主要关注点。

我们如何解决这个问题:

  • 每个系统/子系统都有自己的部署和自己的存储帐户。这样可以轻松进行版本控制和运营管理。
  • 我们的系统/子系统旨在履行许多高度一致的职责。
  • 系统间通信基于消息(例如 Azure 队列)。
  • 每个后端辅助角色的职责(我们称之为“角色服务”)都可以根据所需的性能特征,通过配置在不同的 Azure 部署角色之间轻松转移。
  • 所有后端工作都应以辅助角色的形式执行。对于后台进程来说,IIS 是一个糟糕的主机。
  • UI 性能是通过具体化所有 View (进入 Blob 存储或内存)来实现的。也可以使用缓存。

关于c# - Azure 上有多个应用程序 - 每个服务一个应用程序还是一体式应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19062677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com