我目前正在编写一个大型的ASP.Net网络应用程序。
我无法找到的一个方法是如何证明何时使用云。例如。我什么时候应该使用google app engine / azure?
另外,我什么时候想在标准的dbms上使用bigtable,比如Sql Server?
由于
答案 0 :(得分:1)
云计算就是可扩展性。它允许您向上扩展和缩小,而无需重新设计您的设计。
它适用于小型网站,因为您只需为所使用的资源付费,但如果您需要扩展,它只是自动发生(假设您的应用程序是为云设计的)。
此外,理论上有更好的工具可用于维持云中的正常运行时间和可靠性。例如,系统升级可以在不停止服务的情况下进行,因为云计算平台可以自动启动或关闭服务器来为您的应用程序提供服务。
很多关于Azure开发者的讨论。
此外,使用云可能有财务动机。使用托管云架构比管理传统站点所需的多个服务器(数据库,Web等)要便宜,至少在前面。随着使用量的增加,成本随之而来,但从理论上讲,它可以更具成本效益。
答案 1 :(得分:0)
这个问题与今天提出的另一个问题密切相关: “When shouldnt-you-use-a-relational-database?”
关系数据库和非关系数据库(如BigTable)可满足不同的需求。不仅在规模和性能方面,而且在数据的结构和使用方面。
据我所知,“云”主要是关于可扩展性。也就是说,架构指的是以可扩展的方式增加容量的能力。
此外,云经常用于参考软件即服务(SaaS)模型,其他人负责处理服务器,但这是云架构的独立问题。即您可以在云架构中运行自己的一组服务器。
因此,使用云架构的理由是您拥有一个对计算容量有可变需求的应用程序。因此,将N台服务器专门用于匹配您的最高活动水平将是一种过度的做法。随着您的活动水平随着时间的推移而增长(并且减少),云允许您改变服务器的使用情况。
使用SaaS模型的理由是您不希望从事数据中心运营。您愿意放弃某些控制并支付服务费用,以便您可以将操作详细信息留给该技术的专家。它们处理备份,硬件故障,升级,全天候运行等。您可以处理您的应用程序和业务。
答案 2 :(得分:0)
除了app引擎和EC2之外,我对其他任何事情都不太熟悉。
我会尝试在之前的答案中添加一些内容:
关于应用引擎的最佳之处是它是免费的,直到您吸引了一定数量的用户,并且您需要为您的应用程序使用的内容付费,空闲时间不收费。
大表可能与rdbms架构不同,但从使用它的开发人员的角度来看,它并没有那么不同。
另一个好处是支持python。糟糕的是标准库已经瘫痪了。
此外,您无法完全控制云上的数据(appengine),我的意思是您不能完全限制Google的用户查看您存储的内容。
答案 3 :(得分:0)
我建议您订阅并阅读High Scalability blog,特别是一些访问量最大的帖子,例如关于各种大型网站的体系结构的帖子,因为您将从中学到很多可以帮助您做出决定的帖子。关于何时应该或不应该使用云服务或从关系数据库迁移到BigTable等关键值系统,没有严格的规定。
在任何情况下,云服务的一个好处是,如果您使用它们构建应用程序,它将立即可扩展,如果您需要这种性能,则需要更少的返工。但是,鉴于过早优化,在决定在这样的平台上构建应用程序之前,确保您需要这种可扩展性是明智的。
在使用像BigTable这样的数据存储系统时,有几个概念可以解决,例如不能像在关系数据库中一样抨击写入,并且必须预先计算大量数据而不仅仅是基于数据库中的信息。
尽管如此,您可以通过阅读上述博客以及有关Youtube,Plentyoffish,Google等的相关帖子了解很多。
答案 4 :(得分:0)
你说你“正在编写一个大型的ASP.NET应用程序”。如果您已经取得了重大进展,那么您已经超越了可以证明使用Google应用引擎或Azure的理由。由于语言支持,数据库差异和成熟度,两者都需要与使用传统应用程序构建的架构明显不同的架构。
Google App Engine只是Python,所以切换到它需要完全重写
大表不是关系数据库,需要非常不同的编码模式。最初宣布SQL数据服务也是非关系型的,但正在变得更加关系化。我还没有看到它目前的标准MSSQL数据库有多接近。
到目前为止,我认为Google应用引擎是一个相对不成熟的平台。数据库功能有限,您无法运行后台进程,分析和性能调优工具最多也是有限的。 Azure目前在有限的社区预览中,因此甚至无法在今天发布产品。
虽然有许多非常有效的理由使用云架构,但迁移到它需要明显不同的架构。想想改变架构(以及可能等待平台可用性)会对您的发布日期产生什么影响。
如果您处于项目的早期阶段,云计算与非云计算是一个很好的问题。如果你顺利的话,我认为获得运输代码和利用你已经投入的工作的重要性应该胜过你可能看到的云的任何好处。