From the perspective of a user/developer versus someone who maintains servers; here are the things I do and would practice given your situation.
Data would be kept separate, using something like RAID drives, some method to protect that data from loss.
Operating System State
Likely your kernel is not changing; therefore the root file system is where any changes occur; such as changes to modules loading, their settings, user accounts, network settings, and so forth. Backing up your root file system can be done via a few means; using dd, using cp -a (into a target file system, file which you've mounted as -o loop.