我正在编写一个用途非常有限的 Web 应用程序,它存储大约 10-20k 用户提交的文章(通常为 500-700 字)。在任何时候,任何用户都应该能够对标签和关键字执行搜索,编辑任何文章的任何部分(元数据、文本或标签),或者下载整个数据库的最新副本. (只要每小时更新一次,它就可以来自缓存。)活动往往会在一天内发生一些不可预测的峰值(其中许多用户同时下载整个数据库,需要 100% 的可用性和快速下载)和间歇性的几周活动。这种使用模式是一成不变的。
GAE 是这个应用程序的明智选择吗?它的低成本(希望是免费的)、规模弹性和对大部分堆栈的专业管理对我很有吸引力。我喜欢将应用引擎作为主机替代品的想法。但是,我担心各种数据存储使用方式的过度限制和配额,以及数据存储的分布式架构强加于强一致性和最终一致性之间的权衡。
有没有办法让这个应用程序适应 GAE?我应该使用 ndb API 而不是普通的数据存储 API 吗?还是要求数据如此密集,以至于 GAE 比 Webfaction 之类的主机更昂贵?