SimpleDB,OpenID和Cloud可以走多远?

时间:2009-10-20 23:39:34

标签: architecture openid amazon-simpledb

我有一个ASP.NET MVC应用程序(非事务性,社交性)我正在工作。我开始使用.NET授权提供程序来完成这项工作,但是当我想知道我可以推动多少时,Cloud的衬里变得更加闪亮。

最终,我想取消我的ISP托管的SQL Server数据库,并在我的内容增加时逐步开始使用S3。

我正在考虑使用OpenID进行身份验证,使用SimpleDB来存储用户详细信息。如果我理解正确的话,用户添加的任何内容都可以在ClaimedIdentifier上键入。

这样做有哪些优点/缺点?这种方法的显示有哪些?

有没有人有任何纯云架构的例子可以用来支持/反对的论点?

1 个答案:

答案 0 :(得分:2)

我认为使用OpenID的好处是众所周知的。使用SimpleDB存储用户详细信息的优点包括:

  • 灵活的架构允许您以一种对RDBMS来说很麻烦的方式直接支持某些类型的动态用户数据。例如,用户定义的配置文件字段,或任意长的列表,如果值类似电子邮件地址。可以直接存储数据,而无需另一个表加入。
  • 您没有需要调整的设置和配置选项,因此很简单。您基本上是外包服务器维护和数据库维护任务。如果您继续使用托管的SQLServer解决方案,那么您在较小程度上也在做什么。我不知道共享的SQLServer托管,但我在共享MySQL托管方面遇到了一些关于性能和可用性问题一致性的错误经验。
  • SimpleDB声称的另一件事:更好的可用性,所有数据都可以跨数据中心自动复制,集群中的所有服务器都可以独立处理读写操作。如果整个数据中心变暗或路由器确实融化,您的应用程序可能仍会嗡嗡作响。也许服务水平下降,但如果计划得好,则功能齐全。当问题得到解决后,数据会自动在后台同步备份。
  • 表现不错。它没有没有负载的本地托管的SQLServer实例那么快,但开箱即用它对于用户数据(以及更多)来说非常快,并且可以很好地扩展。
  • 如果您在Amazon EC2 Windows服务器上运行ASP.NET应用程序,您可以在服务器和SimpleDB之间快速进行数据传输。典型的往返ping时间介于2ms和7ms之间。
  • 免费使用套餐包括1GB带宽,1GB存储空间和每月25小时的盒子使用量。根据应用程序的不同,您可以免费使用。

缺点包括:

  • 没有任何关系或约束或架构,因此您必须在一定程度上进行非规范化。您要检查的约束必须在代码中完成,并且您要执行的连接将需要后续查询来进行模拟。加入后续查询和主键并不像听起来那么糟糕,因为SimpleDB具有可靠的查询API并针对并发请求进行了优化。很多时候甚至复杂的连接都可以在(往返)两次往返SimpleDB的过程中进行模拟。
  • 您没有可进行调整的设置和配置选项。
  • 您必须能够处理最终的一致性。您始终可以在项目级别应用原子更新和删除,但在正常操作期间,更新可能不会在读取请求中显示一整秒(根据我的经验,而不是保证)。在故障情况下当然要长得多。 “处理它”通常必须在会话级别进行。如果用户更新了她的个人资料(使用你的应用程序),其他任何人都可以看到这个变化几秒钟就可以了,但如果她的视图恢复到旧状态几秒钟就会很糟糕。有一些简单的方法可以解决这个问题,但你必须考虑这些问题并处理它们。
  • 你受亚马逊的支配。没有什么不好的事情可能发生,并且它不一定比受SQLServer托管公司的支配更糟糕。但它可能引起一些人的关注。比SQLServer更糟糕的情况:如果你与亚马逊分开公司(当地运行的M / DB实例除外),SimpleDB应用程序将无法在其他地方运行。