在正确配置了Development服务器和Production服务器后,我想在GoogleAppEngine上设置一个Staging环境,以用于在将新开发版本部署到生产环境之前对其进行实时测试。我知道两种不同的方法:A.第一个选项是修改app.yaml版本参数。version:app-staging我不喜欢这种方法的是生产数据被我的暂存测试污染了,因为(如果我错了,请纠正我):暂存版本和生产版本共享同一个数据存储区暂存版本和生产版本共享相同的日志关于第一点,我不知道是否可以使用新的namespacespythonAPI来“修复”它。.B.第二个选项是通过修改app.yaml应用程序参数
使用GoogleAppEngine管理第三方Python库的最佳策略是什么?假设我想使用Flask,一个webapp框架。Ablogentry说要这样做,这似乎不对:$cd/tmp/$wgethttp://pypi.python.org/packages/source/F/Flask/Flask-0.6.1.tar.gz$tarzxfFlask-0.6.1.tar.gz$cp-rFlask-0.6.1/flask~/path/to/project/(...repeatforotherpackages...)必须有更好的方法来管理第三方代码,特别是如果我想跟踪版本、测试升级或两个库共享一
使用GoogleAppEngine管理第三方Python库的最佳策略是什么?假设我想使用Flask,一个webapp框架。Ablogentry说要这样做,这似乎不对:$cd/tmp/$wgethttp://pypi.python.org/packages/source/F/Flask/Flask-0.6.1.tar.gz$tarzxfFlask-0.6.1.tar.gz$cp-rFlask-0.6.1/flask~/path/to/project/(...repeatforotherpackages...)必须有更好的方法来管理第三方代码,特别是如果我想跟踪版本、测试升级或两个库共享一
您的设置、技巧,尤其是您的工作流程是什么?这些工具很棒,但它们的使用仍然没有最佳实践,所以我不知道使用它们的最有效方法是什么。您使用pip捆绑或总是下载?您是手动设置Apache/Cherokee/MySQL还是自己设置你有那个脚本吗?你把所有的东西都放在virtualenv里了吗?并使用--no-site-packages?您是否将一个virtualenv用于多个项目?你用什么Fabric对于(哪一部分你的部署脚本)?您将Fabric脚本放在客户端还是服务器上?您如何处理数据库和媒体文件迁移?您是否需要诸如SCons之类的构建工具??您的部署步骤是什么?您多久执行一次?等等
您的设置、技巧,尤其是您的工作流程是什么?这些工具很棒,但它们的使用仍然没有最佳实践,所以我不知道使用它们的最有效方法是什么。您使用pip捆绑或总是下载?您是手动设置Apache/Cherokee/MySQL还是自己设置你有那个脚本吗?你把所有的东西都放在virtualenv里了吗?并使用--no-site-packages?您是否将一个virtualenv用于多个项目?你用什么Fabric对于(哪一部分你的部署脚本)?您将Fabric脚本放在客户端还是服务器上?您如何处理数据库和媒体文件迁移?您是否需要诸如SCons之类的构建工具??您的部署步骤是什么?您多久执行一次?等等
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭4年前。Improvethisquestion我一直使用virtualenv在localhost中测试我的应用程序,因为我有隔离环境并且可以安全地测试新版本的软件包。现在是我必须将我的应用程序部署到生产服务器的时候了。我想知道我是否也应该将virtualenv用于生产服务器,或者只是正常安装。由于它是生产服务器,因此我始终可以使用我在开发服务器中测试过的正确版本(在virtual-env下) 最佳答案
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭4年前。Improvethisquestion我一直使用virtualenv在localhost中测试我的应用程序,因为我有隔离环境并且可以安全地测试新版本的软件包。现在是我必须将我的应用程序部署到生产服务器的时候了。我想知道我是否也应该将virtualenv用于生产服务器,或者只是正常安装。由于它是生产服务器,因此我始终可以使用我在开发服务器中测试过的正确版本(在virtual-env下) 最佳答案
我注意到很多项目(DropWizard、Grails等)开始接受“胖”JAR(使用像Jetty或Tomcat这样的嵌入式Web服务器)的概念,而不是传统的WAR部署。两种方法都涉及单个JVM进程(即,无论向Tomcat部署多少WAR,都是同一个JVM进程)。在什么情况下哪一种部署方法比另一种更可取? 最佳答案 以下是一些原因:支持JAR:易于构建和部署。Jetty等嵌入式服务器易于操作。应用程序易于用户启动,也可以在个人计算机上运行,因为它们是轻量级的。与管理网络服务器相比,启动和停止应用程序所需的知识更少。支持WAR或EAR:
我注意到很多项目(DropWizard、Grails等)开始接受“胖”JAR(使用像Jetty或Tomcat这样的嵌入式Web服务器)的概念,而不是传统的WAR部署。两种方法都涉及单个JVM进程(即,无论向Tomcat部署多少WAR,都是同一个JVM进程)。在什么情况下哪一种部署方法比另一种更可取? 最佳答案 以下是一些原因:支持JAR:易于构建和部署。Jetty等嵌入式服务器易于操作。应用程序易于用户启动,也可以在个人计算机上运行,因为它们是轻量级的。与管理网络服务器相比,启动和停止应用程序所需的知识更少。支持WAR或EAR:
在与另一家也使用AppEngine的公司的同事讨论后,他告诉我,他通过以下步骤将应用程序的预热时间从大约15秒缩短到了大约5秒:ConfigureEclipsetobundleclassesproducedduringcompilationintoasingleJARfile.ConfigureEclipsetouploadthissingleJARfileinsteadofhundreds(orthousands)ofseparateJavaclassesduringAppEnginedeployment.他认为,在实例预热期间,由于实例只需要加载单个捆绑的JAR文件而不是数千个单独