如果我们在部署Web应用程序后发现问题,常见做法?

Win*_*hen 4 java deployment logging

我最近有一个问题,我的java代码在我的本地机器上工作得很好,但是当我将它部署到Web服务器上时,它就不起作用了,尤其是数据库部分.最糟糕的是服务器不是我的机器.所以我不得不来回检查软件版本,数据库帐户,设置等等......

我不得不承认我在系统中没有做好日志记录机制.然而,作为一个经验不足的新手程序员,我不得不接受我的学习曲线.因此,这是一个非常普遍但重要的问题:

根据您的经验,当它在开发机器上完美运行时,它最可能出错的地方,但在生产机器上完全让您感到惊讶?

感谢您分享您的经验.

Oll*_*lly 5

生产中但不是在开发中出现问题的绝对首要原因是环境.

您的生产机器很可能配置与开发机器完全不同.例如,您可能正在Windows PC上开发Java应用程序,同时部署到基于Linux的服务器.

尝试针对与生产中部署的相同的应用程序和库进行开发非常重要.这是一个快速清单:

  1. 确保您在开发中使用的JVM版本与生产计算机上的JVM版本完全相同(java -version).
  2. 确保应用程序服务器(例如Tomcat,Resin)与您在开发中使用的版本相同.
  3. 确保您使用的数据库版本与开发中的版本相同.
  4. 确保生产计算机上安装的库(例如数据库驱动程序)与您在开发中使用的版本相同.
  5. 确保用户在生产服务器上具有正确的访问权限.

当然,你不能总是得到一切 - 许多Linux服务器现在都在64位环境中运行,而对于标准的开发人员机器来说,情况并非总是如此.但是,规则仍然存在,即如果您可以尽可能地使您的环境尽可能匹配,您将最大限度地减少此类问题的可能性.

理想情况下,您将构建一个临时服务器(可以是虚拟机,而不是真实服务器),它与生产服务器具有完全(或尽可能接近)相同的环境.

如果您可以负担临时服务器,则部署过程应该是这样的:

  • 确保应用程序在开发中本地运行,并确保所有单元和功能测试都通过开发
  • 部署到登台服务器.确保所有测试通过.
  • 很高兴,部署到生产