Changes between Initial Version and Version 1 of Doc/SCDB/Design


Ignore:
Timestamp:
Jul 27, 2006, 10:01:13 AM (19 years ago)
Author:
/C=FR/O=CNRS/OU=UMR8607/CN=Michel Jouvin/emailAddress=jouvin@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Doc/SCDB/Design

    v1 v1  
     1= Subversion based CDB =
     2[[TracNav]]
     3
     4[[TOC(inline)]]
     5
     6SCDB stands for Subversion Configuration Database. '''It is a complete and entirely compatible replacement for the original CVS based CDB'''. There is no change involved in any other Quattor component.
     7
     8The only difference between SCDB and CDB is from the user (administrator) point of view : there is no longer any specific command to manage the configuration database (like `cdbop`). SCDB is managed using any [http://subversion.tigris.com Subversion] client, command line or GUI (like Eclipse). This brings a lot of flexibility, compared to  `cdbop`.
     9
     10In fact original CDB is a layer over CVS to implement all the lacking features required in the context of a configuration database that may be accessed/modified by several users at the same time : transactional commit, compilation synchronization, easy access to modification history... [http://subversion.tigris.com Subversion], a replacement for CVS that emerged a few years ago (but after CDB design), has all these features built-in. Thus there is no need for any specific tool.
     11
     12From the administrator point of view, main differences between SCDB and CDB are :
     13
     14 * The configuration database is nothing more than a Subversion repository/
     15 * Use of a Subversion client to checkout/update/commit changes from/to the configuration database.
     16 * Use of a unique tool, `ant`, to compile and deploy the configuration. `ant` is a Java replacement for `make` and brings portability : you can run it on every platform, including Unix, MacOS, Windows.
     17 * Everything except deployment is done locally, on the administrator local copy of the configuration datase. That means that configuration changes can be prepared and validated disconnected from the network ([http://subversion.tigris.com Subversion] being able to do many operations, '''including reverting changes''', disconnected).
     18
     19Deployment of a new configuration is a 3 phases process :
     20 1. Edit template modifications and compile with  `ant`. When compilation is successful, you have a new version of the configuration that is valid (that means it can be successfully deployed). This can be done without any network connection.
     21 1. Commit your changes to the configuration database using a [http://subversion.tigris.com Subversion] client.
     22 1. Deploy the new configuration with `ant deploy`. This involves recompiling the new configuration on the Quattor server, after `tagging` it (the tag is a unique timestamp). Tagging and compilation on the server are done only after successful checking of :
     23   * Successfull local compilation of the new configuration
     24   * All the local changes have been committed to the repository
     25   * All the changes made to the repository since last update of local copy have been incorporated into the local copy (using `svn update`).
     26
     27As the server compile a tagged version (a specific ''copy'' of the configuration database `trunk`), any changes made to the `trunk` after the tag don't affect the deployed version (until they are deployed).
     28
     29To ensure that no change will break any part of the configuration, there is no choice but doing a recompile of all the machine profiles affected by changes (`ant` always take care of recompiling only profiles with a dependency on changes but it requires all templates present in the configuration database to have a valid syntax, whether they are used or not).
     30
     31SCDB supports all PAN features, including ''namespaces''. Unlike original CDB, 'namespaces' bring no additionnal complexity : namespaces are matched to directory in template hierarchy.
     32