从Parse服务器转移到dynamoDB.有哪些可预见的障碍



众所周知,我是成千上万依赖Parse的开发人员之一,现在被迫寻找Parse替代方案。在将Parse Server转移到AWS+MongoDB时,我发现了DynamoDB。我正在考虑将我的整个服务器端逻辑转移到DynamoDB。Parse没有的问题中有哪些可能存在于DynamoDB?

由于Parse包含一个web服务器,您可以通过简单的HTTP请求与它进行交互。DynamoDB只是一个数据库,因此您需要通过AWS SDK直接连接,或者在其前面构建一个API,可能使用API网关和Lambda。

此外,由于Parse是一个功能齐全的后台即服务,而DynamoDB只是一个数据库,因此如果您直接从iOS应用程序使用DynamoDB,Parse中的一些功能将不可用。例如,用户密码重置需要向用户发送电子邮件。DynamoDB没有"密码重置"功能,也不能直接发送电子邮件。你必须使用Lambda和SES之类的东西自己构建这个功能。

Parse还处理文件上传和文件托管,如果您只是直接从iOS使用DynamoDB,这些功能将不再存在。您必须自己构建这些特性,可能需要使用S3。

如果您只使用Parse作为数据存储,那么直接使用DynamoDB当然可以为您工作,但MongoDB或任何其他NoSQL数据库也是如此。在提交到DynamoDB之前,您应该先研究一下数据库模式在DynamoDB中的外观,因为索引类型和查询类型存在某些限制,这可能会使转换当前模式变得困难。

AWS+DynamoDB将是您的选择。

我在DynamoDB和MongoDB系统中都做了大量的工作,可以给你一个简短的建议摘要。

MongoDB非常容易使用,在查询结构方面具有无与伦比的灵活性,在设置系统之前几乎不需要思考。

DynamoDB将提供无与伦比的可扩展性,为创建模式提供更严格(非常严格)的规则集,并且在进行设置之前需要进行大量规划。但是,您不需要担心设置或管理数据库环境,不需要担心主/从体系结构,也不需要担心扩展数据库。

这些天我和迪纳摩一起去,感觉很棒。

刚刚完成了从Parse到AWS Dynamo的迁移(这里发布了一些想法:https://www.linkedin.com/pulse/parse-aws-migration-server-less-mobile-backend-mike-kirkwood?trk=prof-后

我的经验是DynamoDD是Parse的一个可以接受的替代品。然而,它需要一些数据模型更改,因为DynamoDB不像Parse那样支持指针或关系。因此,在应用程序中,必须调整一些写入操作,以便向DynamoDB中的记录添加更多数据。这确实在查询中提供了一些不错的好处。

DynamoDB还允许您添加索引以匹配特定查询。

而且,就我的使用而言,DynamoDB已经被证明是比Parse更快的查询。

DynamoDB只是一个数据库服务,所以你可以使用它来存储Parse数据,但你仍然需要一个服务器来处理数据和托管API等。在AWS上,你可以启动一个EC2实例来运行服务器,或者试着让它在Lambda上运行。

Parse Server在本机上既不支持Lambda作为托管环境,也不支持DynamoDB作为存储后端,但幸运的是,社区成员最近已经开发出了这两者的集成:

  • https://www.npmjs.com/package/parse-server-dynamodb-adapter
  • https://github.com/parse-community/parse-server/issues/483

最新更新