How to use the hub cr » History » Version 5
Henning Blohm, 20.07.2013 15:27
1 | 2 | Henning Blohm | h1. How to use the Hub Component Repository (beta) |
---|---|---|---|
2 | 1 | Henning Blohm | |
3 | 3 | Henning Blohm | h2. Principles |
4 | |||
5 | 2 | Henning Blohm | (See also "Z2V2.1 is out – working on v2.2":http://www.z2-environment.net/blog/2012/12/z2v2-1-is-out-working-on-v2-2/) |
6 | |||
7 | By default, a Z2 installation (a z2 Home) accesses the version controlled storage that holds the system definition directly to download and prepare (and compile) modules as needed. This is the underpinnings of the system centric, pull-deployment based approach. In some situations however, it is not desirable to have source code on production servers at any time. This may be for compliance reasons or for fear of risking theft of intellectual property. |
||
8 | |||
9 | This is where the HubCR comes in. As a principle, all modules, all component resources, essentially anything the Z2 runtime knows about is served by component repository implementations. There are implementations for Subversion, Git, file system folders, development workspaces and now, the latest addition, for another Z2 server that provides a consolidated, source-code free and pre-compiled view onto production resources (the HubCR provider). |
||
10 | |||
11 | So, instead of having production systems read and process source code directly, an intermediate node provides a semantically equivalent but pre-processed view onto the system definition: |
||
12 | 1 | Henning Blohm | |
13 | 4 | Henning Blohm | p=. !{width:600px;}hubcr2.png! |
14 | 3 | Henning Blohm | |
15 | The way the HubCR does that is by maintaining a pre-compiled and source-code stripped snapshot of the original production configuration. At the same time, the HubCR is just a regular z2 Home that runs the production config. |
||
16 | |||
17 | To the real production nodes (on the right in the diagram) however, the HubCR presents everything but the HubCR and other remote component repositories. |
||
18 | |||
19 | As a result, production systems can be completely separated from the source level details of the system definition. They don’t even see authentication details to the configuration store – only those necessary to access the HubCR service. At the same time, the pull semantics are preserved and updates can flow in and will be distributed consistently as for any other Z2-based system. |
||
20 | |||
21 | h2. How to configure and use |
||
22 | 5 | Henning Blohm | |
23 | The HubCR consists of three parts: For once, there is a repository client implementation that is now part of the Z2 core (necessarily so that bootstrapping from a HubCR is possible). Secondly there is a z2-base level module that implements the serving side and thirdly there are some important rules that allow to implement the HubCR in a system that can be used in the default development flow as well. |
||
24 | |||
25 | The latter is a crucial cool feature: Just because a production system makes use of the HubCR, from where we do have access to the configuration source (i.e. the left side of the picture), we can still supply, implement and verify hot fixes without going through the HubCR. |