Documentation

Deploy and maintain the product

There are two main taks that are on-going tasks after you finish building a product: backups and documentation.

Backups

Keep backups and practice a data restoration plan. Don't put off this task until after you lose the data! Every computer that has ever been built has either (1) already crashed, burned, been destroyed, or been stolen; or (2) will crash, burn, be destroyed, or be stolen. If you choose to ignore this absolute certainty, your data will be lost when that day comes.

The basic idea: Backups are made automatically by the Axisbase server. Copy these files to a different computer in a different building, or to a CD or other removable media, and then carry the media to a different building. Keep at least two different backups at any one time in addition to the file that you may be overwriting. Never bring the most recent backup back onto the premesis where the live database is located.

Backups often seem complicated, and many people are never quite sure if they are keeping backups the right way. Ask yourself this question: If the computer where your main data is kept is stolen tonight, and all the furniture and files in that building are destroyed, could you be up and running on a new computer by noon tomorrow? If you use an on-line backup service, this may involve keeping the account information for that service off site.

The expanding time-series method: Besides the need to restore a completely lost database, there is another reason to keep backups. That is, to see what data were in your database at a point in time in the past. For example, suppose a user accidentally deleted 300 records on a Monday, and you didn't discover the loss until Thursday. If you only keep two daily backups, and you overwrite the older backup each night, then you would only have Tuesday and Wednesday nights' backups when you discover the problem, and it would be too late to restore from Monday's backup. That doesn't mean you have to keep every daily backup forever, but you should keep some of them indefinitely. For example: keep backups for each day of the past week, then once per week for the last few months, then once per month for the past year, then quarterly. As you go back in time, the time between backups that you keep can expand; thus, the name "expanding time series method".

The Axisbase server automatically uses the expanding time series method. You specify the backup path, and it creates a daily backup, then erases some older backups in order to keep an expanding time series of backups.

Corruption: A database can become corrupt because of a software bug or hardware failure, but the damange caused by the corruption may not be noticed for some time. This is another reason why the expanding time-series method is valuable.

Backing up the configuration database is also important: This is not turned on by default. To include the configuration database in backups, create a new record in the served databases with a blank file path, Axis ID = "AXIS", and check the Backup checkbox.

Documentation

When you need to add features, you will want a current description of the data model and building blocks, and any external code, so that you can repeat a design process for the additional work. Most software projects have little or no useful documentation and suffer because of it.

(c) 2014-2015 Divergent Labs, Inc.