Popular choices using SSH:
For serious stuff you really should look at configuration management and server provisioning applications like (in no particular order):
Most revision control systems allows for "after/before-commit" hooks; sometimes I use these hooks to run tests before and automatically deploy to the acceptance environment after commits.
See also Jenkins CI (Continuous Integration is a hot topic).