加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 应用程序的一个大型实例,或许多中型应用程序?

发布时间:2020-12-16 07:14:37 所属栏目:asp.Net 来源:网络整理
导读:我们为一个客户编写的Web应用程序将被产品化并出售给数十家公司,我们将进行托管. 我可以使用一些关于为每个客户推出单独实例与使用单个(或非常少数)多租户实例的优缺点的指导. 首先,随着我们的提升,我将不得不为每个新客户推出一个单独的应用程序实例(它们将
我们为一个客户编写的Web应用程序将被产品化并出售给数十家公司,我们将进行托管.

我可以使用一些关于为每个客户推出单独实例与使用单个(或非常少数)多租户实例的优缺点的指导.

首先,随着我们的提升,我将不得不为每个新客户推出一个单独的应用程序实例(它们将一次上线一个),因为它是唯一的直接选项.我认为,就维护而言,这不会很好地扩展 – 一旦有超过4或5个实例,推出更改将变得非常繁琐并且可能容易出错.除非我们以某种方式自动化.

此外,如果人们需要自定义,单实例哲学似乎可能导致一堆分叉.避免这种情况会很好.

那你有什么经验呢?

奖金问题#1:10个记录每个记录2m的SQL Server与20m记录的巨大记录之间的性能差异是什么?假设它们都在一个表中,我们主要在单个记录上进行插入和选择.有时,选择位于索引的varchar(12)或日期字段上.

奖金问题#2:我想,为避免分叉,我们必须使自定义可配置,或构建插件架构.但是,这可能会增加进行自定义的成本,而且我不想成为需要一周时间来调整文本框大小的商店之一,而且我不想过度投资基础架构.有什么想法吗?

比例细节

每个客户将拥有相当数量的数据 – 高达数百万条记录.

将会有非常少量的并发用户,每个客户只有少数用户,以及我们最终的少数内部代表.

目前还不清楚每个客户是否需要定制,但我想其中一些可能会定制,也许其中一些变化将是其他客户不希望看到的东西.

解决方法

我没有看到你的两个选择中的任何一个的充分理由.我认为真正的答案在于中间的某个地方:拥有多个实例,每个实例都托管多个客户端.

这增加了另一层自动化处理,但这意味着你可以保持托管的便宜(你不需要很快出去购买Cray)和(希望)这种心态意味着你可以很容易地进行故障转移备份.

但是,让我们不要超越自己…我们正在谈论一个webapp,对吗?在不同的机器上获取您的数据库和aspnet.集群您的数据库,您可以更快乐地玩各种前端场景.你也可以将任何一个区域放大到最后用完.

通过它的声音,如果不是十几台数据库机器和只有几个前端机箱,你最终会有一个集群数据库超过一半.

至于自定义,你已经钉了它.您要么提供完全由数据库托管的可编辑模板集,要么必须自定义哪些实例.我是第一个.这是一项很多的工作(没有太多的回报),但它非常值得,因为你只需要在(你将会!)进行升级时更改核心代码.通过一百个客户的自定义实例进行搜索以确保它们安全升级将会扼杀开发人员!模板就是答案.至少,你可以在没有太多痛苦的情况下允许自定义CSS(但是他们需要知道他们的东西的人).

编辑:我看过一些帖子用于一体化方法.将实例拆分到多台计算机上可以使您免受以下几种情况的影响:

>如果您引入了未在测试中发现的错误,则一次只会影响少数客户端>硬件失败.让一台巨型服务器倒塌会立刻惹恼很多人.拥有故障转移大型服务器非常昂贵.每三个或四个正在运行的服务器上有一个备用故障转移盒要便宜得多,并且会减少人数.>可以在逐个客户端的框之间平衡性能,因此您可以将一些轻量级客户端放在一个繁重的客户端上,或者只填充一些中等用户的盒子等.>基于同样的想法,使用峰值或其他减速仅影响同一个盒子上的客户端.当然,对于数据库而言,这并不意味着相同,但是当您到达那里时,可以将其拆分为群集.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读