Amazon AWS上的测试和生产环境

时间:2016-05-02 03:36:03

标签: node.js amazon-web-services amazon-dynamodb

我开始使用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中运行时,我应该如何实现测试环境?

3 个答案:

答案 0 :(得分:0)

永远不要在生产环境中进行开发或测试。始终制作环境副本以进行测试和开发。

Elastic Beanstalk允许您创建应用程序的多个副本。因此,很容易启动应用程序的第二个(或第三个或第四个)副本来进行开发和执行测试。

如果您对开发中所做的更改感到满意,请以受控方式将这些更改应用到您的生产环境中。希望在部署期间出现问题时,您的更改是可逆的。

答案 1 :(得分:0)

Elastic Beanstalk允许您轻松管理应用程序中的多个环境。有关详细信息,请参阅here

对于DynamoDB,您必须提出自己的解决方案。一种可行的方法是使用CloudFormation模板管理DynamoDB表。这将允许您定义表,主键,JSON模板文件中的任何索引。如果你这样做,你将有:

  • JSON中的CloudFormation模板,用于定义和自动创建DynamoDB表。
  • 您可以将这些模板的副本保存在git存储库中,您可以在每个环境中拥有一个分支,从而更轻松地管理您的环境。

如果这听起来太复杂,那么更简单的方法就是在DynamoDB中使用“dev-”前缀或类似的东西来复制你的表格,但是当你有很多表格时,CloudFormation会非常方便。

答案 2 :(得分:0)

我意识到你想要一个尽可能接近生产的环境,但我建议你检查一下DynamoDB Local,以防你没有听说过。以下是文档的链接:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html

它允许您拥有本地版本的DynamoDB。这意味着您可以在不使用读/写单元的情况下进行测试它与生产DynamoDB服务之间存在一些差异,但您可以在本地版本上执行大多数测试用例。