Installation

CRK anvender NSP's Continuous Integration og Continuous Deployment miljøer til byg og leverance af komponenten.

Jenkins

CRK bygges med NSP's Jenkins server via følgende jobs:

  • CRK_build - Bygger koden (sker automatisk ved commits)
  • CRK_push_snapshot - Pusher det nyeste snapshot image til NSP Docker Registry

NSP er selv ansvarlige for at pushe release versioner af CRK til NSP Docker Registry gennem Jenkins.

Docker

CRK består af et Docker image som pushes til NSP Docker Registry under navnet: registry.nspop.dk/components/crk:<tag>

Docker Compose

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:


configurationHer ligger alle de konfigurationsfiler som det forventes af driften tilretter til det anvendte miljø.
databaseHer ville alle de databasefiler som det forventes at driften lægger på en NSP database ligge, hvis der var nogen
developmentHer ligger en Docker Compose fil til brug for udvikling. Se Guide til Udviklere.
testHer ligger en Docker Compose fil der kan starte CRK i en standalone test konfiguration.
releaseHer ligger den Docker Compose fil som det forventes driften anvender på både test og produktionsmiljøerne.


Konfiguration

I folderen https://svn.nspop.dk/svn/components/crk/trunk/compose/configuration findes følgende konfigurationsfiler:


crk-config.xmlOverordnet Spring-konfiguration
crk-db.xmlSpring databasekonfiguration
crk-ds.xmlDatasource definition
crk-jobs.xmlDefinition af scheduled jobs.
crk-logging.xmlSpring logningskonfiguration
crl.skipSkip-liste til CRL-tjek.
dks-example-http.xmlEksempel på konfigurationfil (bruges til tests, skal ikke deployes i produktion)
log4j-crk.xmlLog4j konfiguration
log4j-nspslalog-crk.propertiesLog4j SLA-log konfiguration.
module.xmlJBoss modul-definition.
nspslalog-crk.propertiesSLA-log konfiguration.


Filerne skal tilrettes til de forskellige miljøer hvorpå de installeres. Filerne indeholder en konfiguration der passer i en standalone test konfiguration.

DataSource

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.

Logning

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.

Database-replikering

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

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.

Generel opsætning

CRK anvender Spring xml configuration. Konfigurationen er bredt ud på følgende filer:

  • crk-config.xml
  • crk-db.xml
  • crk-logging.xml
  • crk-jobs.xml

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.

Opsætning af datasource og transaktioner

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.

Opsætning af logning

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.

Opsætning af jobs

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.

  • resource: Fortæller hvilken kilde endpoint-definitionen skal indlæses fra.
  • 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).

Database

Der bruges en database til caching af data og vedligehold af adgangsinformation, så følgende skridt er nødvendige før CRK kan startes:

  • Opret database
  • Opret tabeller


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).

Afvikling

CRK startes og stoppes med Docker Compose kommandoer.

Standalone test

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".

NSP Miljø

På et NSP miljø hentes "compose" folderen for den ønskede version med Subversion og kommandoen "docker-compose up" køres i folderen "release".


  • No labels