asp.net-mvc – 我应该选择云吗?
我即将开始开发一个具有非常不确定的负载/流量细节的项目.当它被释放时,肯定会有非常低的负载,可以通过单个桌面四代码机轻松处理.
问题是(在一些邀请期限之后)会对产品进行强有力的宣传,因此我预计会出现相当大的流量/负载峰值. 我还没有充分了解云提供商,而且我主要倾向于亚马逊或Azure以获得这两家公司的信誉,而不是像其他人那样检查它们(即Rackspace,我认为它也是云服务提供商). 我想要的是 我想创建一个普通的Asp.net MVC Web应用程序,可以在内部单机低成本服务器上运行.它将运行Web服务器以及数据库(关系,也可能是文档)和全文搜索(不是SQL FTS,而是像Lucene或Sphinx这样的高速分离产品).但在最初的邀请期后,我想将此应用程序移至云端,以使其更加流量/负载需求友好. 据我所知,亚马逊提供了一种虚拟机托管服务,据我所知,您将其设置为普通服务器,但在负载功率方面可能具有灵活的资源.我不确定是否可以在Azure上完成. 问题 >您在应用程序过渡到云的过程中有什么经验?您选择了哪一个?为什么? 解决方法
“云”是一个模糊的术语.不过,我认为这是一个非常好的问题.
基本上,IaaS云托管不会神奇地使您的应用程序扩展.它实际上是一个虚拟私人服务器,合同/取消期很短. 对于可伸缩性,主要不在于托管,而在于应用程序代码本身的水平可伸缩性.这与所有分布式计算挑战有关.例如,添加更多应用程序服务器并不总是很容易:您必须确保不在服务器应用程序中保留任何用户状态(而是在数据库中,静态可能是邪恶的),缓存可能会有问题,因为本地缓存可以如果你使用循环策略等,情况会更糟.
基本上,您不必在EC2或Azure上进行任何不同的操作.但当然,事情发展并不容易. 例如,EC2实例存储相当有限.但是,EBS上的额外存储不提供可比较的性能特征,并且可能比磁盘更滞后.这里的重点是EBS确实神奇地扩展,它可能比IaaS更多PaaS;但它不是一个简单的硬盘,因此它的行为不像硬盘.我不知道Azure块存储.通常,期望额外的抽象层引入自己的问题,无论他们做什么.
典型的云提供商比通常的“拐角VPS提供商”更昂贵,但根据我的经验,它们也更加可靠和专业. EC2有一个免费套餐(但它非常小),Azure为您提供了一个免费的小实例3个月. 做正确的计算是相当棘手的;例如,如果你因任何原因不得不关闭你的服务,那么能够现在取消而不是再支付一年是很好的 – 你可能想把这个风险放到你的计算中.另一方面,如果您注册6或12个月,而不是按小时付费,EC2和Azure都会相当便宜. 您可能想要查看免费的Azure计划,因为它很好地开始摆弄而不需要任何费用.云提供商的一大优势是您可以非常轻松地纵向扩展:购买16核,64GB RAM服务器的机器非常昂贵,但如果您的网站上有如此多的流量,升级您的计划将不会是一个大问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 我心中的ASP.NET Core 新核心对象WebHost(一)
- 如何在ASP.net中获取页面中的主页?
- asp.net – 我何时可以在Response.WriteFile()中使用它后删
- asp.net – 是否可以通过Windows服务中的自托管Web API提供
- 在asp.net mvc中生成javascript文件
- 如何将应用程序从经典ASP迁移到ASP.NET MVC?
- asp.net-mvc – 使用Web Deploy发布ASP.NET MVC2站点
- asp.net – 用于Active Directory帐户的Oauth 2令牌
- asp.net – 滚动的Log4Net日志文件中的自定义文件名?
- asp.net-mvc – Visual Studio 2010未将.CSHTML(Razor View
- asp.net-mvc-3 – MVC3 WebGrid是否支持水平滚动
- asp.net-mvc – asp.net mvc ajax post – redir
- asp.net-mvc – Autofac,MVC(带ActionFilters),W
- asp.net – 在遇到性能问题之前,一个azure实例上
- asp.net-web-api – ASP.NET Web API – 具有多个
- asp.net scriptbundle多个include vs single inc
- asp.net – 对良好的自动化Web负载测试工具的任何
- asp.net – 电子邮件CSS
- asp.net – 如何使用queryString将值从一个asp页
- asp.net-mvc – 如何在Controller外访问RequestC