Archetypes

Software and configuration packages come in many different flavours form source packages like Red Hats SRPMS to binary packages such as Suns Solaris PKG and Microsofts MSI. Configuration packages like those created with Debian’s config-package-dev utility and other application archives such as WAR’s and EAR’s bear testimony to proliferation and variety of package types. With this in mind its easy to see the value of a single tool and approach to create all these types of archives.

Genesis works on some basic assumptions that allows it create these types of packages. Namely that these archives typically contain the file types listed below:

  1. Source Code – Software sources.
  2. Binaries – Compiled source code.
  3. Build Instructions – build.xml files.
  4. Configuration – The software’s logical set-up.
  5. Content – External data provided to the application to use, mange or serve.

An archetype is a template of an applications configuration files. Generally any non binary or non content application artefact will be included in an application archetype. Application archetypes implement the designs, standards and specifications defined in an organisations standard build for the application and Genesis maintains archetypes for all the applications that exist in an enterprise stack.

To create a deployable software of configuration package, Genesis draws custom configuration data and combines it with the application archetype in a process called transcription. Since the same application archetype is used to build the packages for different environments there will be a high degree of standardisation across all the deployed instances of the application.

In order to maintain standardisation across the enterprise the best practice is to maintain one archetype for any single version of an application. In reality this may not be achievable, and you may find that you need to maintain two or three archetypes per application, however the more archetypes you use for a given application the less standardised the deployment of that application becomes. Under these circumstances you should review the causes of variation and make sure they are justified.

Transcription

The process by which configuration data is combined with the application archetype is called transcription. Transcription produces an application configuration package (e.g. RPM, Tar ball, Zip file) of the application that can deployed by third party orchestration tools such as those provided by HP or BMC. The transcription process also conducts compliance testing on the package to ensure it is configured in accordance with organisational standards.

Genesis Archetype Product Catalogue

Genesis application archetypes are maintained as a product catalogue. Each archetype comes with a standard build document that details it’s design decisions, standards and specifications used to create it.