views:

23

answers:

1

Hi,

What do you guys use to deploy and application and track their files in production? I mean tracking if the file was not changed directly in the server?

thanks

+1  A: 

I would track those file through a VCS on the server.
Normally (except for simple webapp deployment), you don't have any "unnecessary" tool on a production server past the ones you actually need to run the app (i.e.: certainly not a VCS).

A Version Control System is there up until the pre-production environment, for you to get a specific tag to deploy.
But once that tag is used to get your files, then a deployment process takes place:

  • replace the variables from your generic config files with production-specific values
  • stop the production processes
  • copy and deploy the files onto the production server
  • restart
  • monitor...

So I would set an external (i.e. not directly managed by a VCS) job to compare a versioned file and the corresponding deployed file.

VonC
What about deploying binaries (WAR, EAR, native)?
HGF
@HGF: those files are not in the VCS anyway, and are produced/deployed through a release and deployment management process. A system which would monitor their integrity (i.e. "have they been changed on the server?") would likely compare the SHA1/MD5 key of those files between the ones published on the server and an artifact repository like Nexus, where said binaries can be stored and referenced (with a SHA1/MD5 key automatically generated upon storage).
VonC