我开始使用Python 2.7.11 |Anaconda 2.4.1 (64-bit)
>>> import google.protobuf
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named protobuf
>>>
和node.js
开发大型应用。我使用Git,可能会使用CI服务器。
我需要一个尽可能接近生产环境的测试环境(服务器端)。我在测试时对数据库所做的更改不应反映在生产中。实现它的最佳方法是什么?有一个数据库的副本进行测试?当我的应用程序在Elastic Beanstalk中运行时,我应该如何实现测试环境?
答案 0 :(得分:0)
永远不要在生产环境中进行开发或测试。始终制作环境副本以进行测试和开发。
Elastic Beanstalk允许您创建应用程序的多个副本。因此,很容易启动应用程序的第二个(或第三个或第四个)副本来进行开发和执行测试。
如果您对开发中所做的更改感到满意,请以受控方式将这些更改应用到您的生产环境中。希望在部署期间出现问题时,您的更改是可逆的。
答案 1 :(得分:0)
Elastic Beanstalk允许您轻松管理应用程序中的多个环境。有关详细信息,请参阅here。
对于DynamoDB,您必须提出自己的解决方案。一种可行的方法是使用CloudFormation模板管理DynamoDB表。这将允许您定义表,主键,JSON模板文件中的任何索引。如果你这样做,你将有:
如果这听起来太复杂,那么更简单的方法就是在DynamoDB中使用“dev-”前缀或类似的东西来复制你的表格,但是当你有很多表格时,CloudFormation会非常方便。
答案 2 :(得分:0)
我意识到你想要一个尽可能接近生产的环境,但我建议你检查一下DynamoDB Local,以防你没有听说过。以下是文档的链接:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
它允许您拥有本地版本的DynamoDB。这意味着您可以在不使用读/写单元的情况下进行测试它与生产DynamoDB服务之间存在一些差异,但您可以在本地版本上执行大多数测试用例。