CRK anvender NSP's Continuous Integration og Continuous Deployment miljøer til byg og leverance af komponenten.
CRK bygges med NSP's Jenkins server via følgende jobs:
NSP er selv ansvarlige for at pushe release versioner af CRK til NSP Docker Registry gennem Jenkins.
CRK består af et Docker image som pushes til NSP Docker Registry under navnet: registry.nspop.dk/components/crk:<tag>
CRK leveres samtidig som et sæt af Docker Compose filer i folderen https://svn.nspop.dk/svn/components/crk/trunk/compose.
For release x.y.z af CRK findes Docker Compose filerne i folderen https://svn.nspop.dk/svn/components/crk/tags/release-x.y.z/compose
Compose folderen indeholder 5 underfoldere:
configuration | Her ligger alle de konfigurationsfiler som det forventes af driften tilretter til det anvendte miljø. |
database | Her ville alle de databasefiler som det forventes at driften lægger på en NSP database ligge, hvis der var nogen |
development | Her ligger en Docker Compose fil til brug for udvikling. Se Guide til Udviklere. |
test | Her ligger en Docker Compose fil der kan starte CRK i en standalone test konfiguration. |
release | Her ligger den Docker Compose fil som det forventes driften anvender på både test og produktionsmiljøerne. |
I folderen https://svn.nspop.dk/svn/components/crk/trunk/compose/configuration findes følgende konfigurationsfiler:
crk-config.xml | Overordnet Spring-konfiguration |
crk-db.xml | Spring databasekonfiguration |
crk-ds.xml | Datasource definition |
crk-jobs.xml | Definition af scheduled jobs. |
crk-logging.xml | Spring logningskonfiguration |
crl.skip | Skip-liste til CRL-tjek. |
dks-example-http.xml | Eksempel på konfigurationfil (bruges til tests, skal ikke deployes i produktion) |
log4j-crk.xml | Log4j konfiguration |
log4j-nspslalog-crk.properties | Log4j SLA-log konfiguration. |
module.xml | JBoss modul-definition. |
nspslalog-crk.properties | SLA-log konfiguration. |
Filerne skal tilrettes til de forskellige miljøer hvorpå de installeres. Filerne indeholder en konfiguration der passer i en standalone test konfiguration.
Det forventes at en datasource kan slåes op i JNDI. Dette kan tilvejebringes vha. en JBoss datasource descriptor. Hvis installationsvejledningen allerede er fulgt findes sådan en allerede i `/pack/jboss/server/default/deploy/crk-ds.xml`. Deri findes password, brugernavn og database-navn til database-forbindelse.
Disse skal ændres, såfremt bruger og database er opsat anderledes end i de vedlagte database scripts.
Logging i CRK er konfigureret i filen log4j-crk.xml. Det vedlagte eksempel logger til filen crk.log.
Derudover anvendes NSP-util til at sla logge. Konfiguration heraf findes i filerne log4j-nspslalog-crk.properties` og nspslalog-crk.properties.
Afstemning af log-niveauet, rotation samt placering af logfiler overlades til NSP driften.
Data i MySql skal være tilgængelig for alle NSP miljøer. Der skal derfor opsættes MySql replikering af tabellerne endpoints og actions.
Integration med DCC foregår ved at DCC aflæser tilstand i databasen, som forudgående er skrevet af CRK og replikeret rundt i NSP-miljøerne. Der vil her kun være behov for læs- (select-) adgang til disse tabeller.
CRK anvender Spring xml configuration. Konfigurationen er bredt ud på følgende filer:
crk-config.xml refererer til de øvrige filer, og det er således ved at rette i denne muligt fuldstændigt at erstatte indholdet af en anden konfigurationsfil med andet indhold - f.eks. definition af indlæsnings jobs.
Konfigurationen indlæses ved opstart af CRK webapplikationen. En genindlæsning kan således fremprovokeres ved genstart af jboss.
Der er mange aspekter af funktionaliteten der kan ændres i disse xml filer, og ikke alle er driftsorienteret. I det følgende bruges følgende syntax for at referere til en delmængde af indeholdet af en given konfigurationsfil: config:dataSource. Hermed refereres til en bean i filen crk-config.xml med id=dataSource.
Overalt i spring-konfigurationen er det muligt at referere til System-properties sat i Jboss, f.eks. placeringer af konfigurationsfiler osv.
I det følgende vil konfigurationen blive gennemgået i detalje.
CRK kræver en dataSource med adgang til MySQL. Denne findes som udgangspunkt ved JNDI-opslag som specificeret i db:dataSource.
Transaktioner håndteres af spring. I tilfælde af (Runtime) fejl vil transaktioner automatisk blive rullet tilbage. Dette er konfigureret i db:txManager. Der forventes ikke at være behov for at ændre denne opsætning.
Logkonfigurationen er opsat i logging:log4jInitialization, som fortæller om placering af log4j konfigurationsfilen.
SLA-logging er opsat i logging:slaLogConfig.
Der SLA-logges fra en applikation ved navn 'crk'. Den detaljerede konfiguration af SlaLog følger de sædvanlige retningslinjer -- her er det alene muligt at slå SLA logning til eller fra.
De enkelte jobs er opsat i filen crk-jobs.xml. Hvert job er defineret som en selvstændig bean. Udover id konfigureres denne bean med:
configId: Et unikt id som vil optræde i databasens endpoint-tabel. Vil typisk svare til bean-definitionens eget id.
enabled: Er jobbet aktivt eller ej. Her er det muligt midlertidigt eller permanent at suspendere opdateringer af dette job.
Resourcen kan enten være en absolut sti til en fil i filsystemet, eller en ekstern url (http eller https). Ved anvendelse af ekstern URL skal denne være tilgængelig.
Endvidere er der for hvert job opsat schedulering af dette. Her konfigureres hyppigheden af genindlæsninger (cron-syntaks).
Der bruges en database til caching af data og vedligehold af adgangsinformation, så følgende skridt er nødvendige før CRK kan startes:
Scripts til oprettelse af database og tabeller tabeller kan ses under /compose/database. Scriptet antager databasenavn='crk' samt brugernavn/password= 'crk'/'crk'. Men dette kan frit ændres (kræver tilsvarende ændring af datasource).
CRK startes og stoppes med Docker Compose kommandoer.
For en standalone test af CRK hentes "compose" folderen for den ønskede version med Subversion og kommandoen "docker-compose up" køres i folderen "test".
På et NSP miljø hentes "compose" folderen for den ønskede version med Subversion og kommandoen "docker-compose up" køres i folderen "release".