【问题标题】:Standard practice for development and production servers? [closed]开发和生产服务器的标准做法? [关闭]
【发布时间】:2013-06-12 18:34:59
【问题描述】:

好的,首先我是使用服务器和 RESTful 客户端的新手。我目前正在做的是开发一个 RESTful 客户端 api,我意识到当我一直在努力时,有时 api 会由于代码不同部分的错误而完全失败。我在 Amazon EC2 服务器上使用 Django。

我的问题的重点是:在不经常导致失败的情况下建立一种在 api 上工作的方法有什么好的做法?我曾想过有一个变量根据请求是否为测试来引导流经客户端,但这仍然不能解决可能出现的更大问题的问题。

感谢您提供建议、线索和阅读材料。我环顾四周,询问了一些人的建议,但我仍然很迷茫。在这一点上,最简单的选择似乎是制作一个完整的复制环境进行测试(所以是一个全新的服务器),并且只有在开发稳定时才推送更改。不过,这似乎真的很低效。

【问题讨论】:

  • 实际上,拥有多个环境(通常是开发/登台/生产)的做法可能是最常见和最安全的一种。
  • 但是我该如何设置呢?我是否应该创建具有相同配置的全新服务器实例来进行开发?我看到有人说本地工作,其他人说拥有另一个服务器实例纯粹用于测试是要走的路,我觉得有点迷茫。
  • 这取决于你的环境/堆栈,但是有很多工具可以管理开发环境。我在开发盒中经常使用Vagrant
  • 我正在调查,谢谢您的指导。

标签: amazon-ec2 client-server restful-architecture


【解决方案1】:

restful 系统应该使用入口点 URI 并从返回的表示中发现其他 URI。此外,URI 结构对客户端应该是不透明的,因此应该可以定义两个 URI,例如,

http://acme.com/prod/api

http://acme.com/dev/api

客户端应该接受这些 URI 之一,只要服务器在表示中返回的 URI 尊重目标环境,那么一切都应该正常工作。

超媒体和不透明 URI 的想法旨在让客户端不了解任何特定的服务器实现,因此您尝试实现的目标变得非常容易。

【讨论】:

  • 好的,所以这种方法肯定是有道理的,但是修改共享功能时最好的方法是什么?是否会为每个端点复制所有功能,并且其中一个副本是“开发”功能?明确地说,假设有一个共享的 Python 脚本服务于某个目的,那么最好为开发调用制作一份副本,然后将其推送到产品端?根据我在网上可以找到的内容,这似乎是一种方法,但是在 Python 环境中,很难控制可能会整体破坏它的事情。这就是virtualenv的目的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 2013-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多