Indhold
Introduktion
Formål
Dette dokument indeholder en beskrivelse af hvordan EAS installeres på et NSP backend miljø.
Læsevejledning
Læseren forventes at have kendskab til Sundhedsdatastyrelsens platform NSP, samt generelt kendskab til WildFly applikation server, Docker, Docker Compose samt Ubuntu Linux operativ system.
Definitioner og referencer
| NSP | Den nationale service platform |
| Driften | NSP Leverandøren og NSP Driftleverandøren |
| SDS | Sundhedsdatastyrelsen |
| EAS | EHMI Sundhedsadresseringsservice |
| EER | EHMI Endpoint Register |
| Keycloak | EHMI Keycloak Authentication server |
Installation
EAS anvender NSP's Continuous Integration og Continuous Deployment miljøer til byg og leverance af komponenten.
Jenkins
EAS bygges med NSP's Jenkins server via følgende jobs:
- EAS build: Bygger koden og pusher det nyeste snapshot image til NSP Docker Registry.
NSP-Leverandøren er selv ansvarlig for at pushe release versioner af DDTV til NSP Docker Registry igennem Jenkins
Docker
EAS består af følgende Docker images, som pushes til NSP Docker Registry:
Docker Compose
EAS leveres samtidig som et sæt af Docker Compose filer i folderen https://git.nspop.dk/projects/COM/repos/sundhedsadresseringsservice/browse/compose
En leverance af EAS består af en compose folder som beskrevet ovenfor samt tilhørende tags af det byggede Docker image.
Compose folderen indeholder tre underfoldere:
| configuration | Her ligger alle de konfigurationsfiler som det forventes af driften tilretter til det anvendte miljø. Se EAS Driftsvejledning. |
| development | Her ligger en Docker Compose fil til brug for udvikling. Se EAS - Guide til udviklere. |
| release | Her ligger Docker Compose-filen, som forventes at driften anvender på både test og produktionsmiljøerne.
|
Krav til miljø
Krav til applikationsservere
Komponenten EAS er udviklet og testet i Docker ved anvendelse af imaget "registry.nspop.dk/platform/nsp:latest".
Komponenten EAS' konfiguration er tilpasset deployment på WildFly 34.0.0 applikationsservere med OpenJDK 21.
Komponenten EAS-Nginx er udviklet og testet i Docker ved anvendelse af imaget ubuntu:22.04
Krav til operativsystem
Der stilles ingen krav til operativsystemet udover, at det skal være Linux, og docker skal være installeret.
Krav til adgang til andre services
EAS kræver adgang til "Personinformation", "SikredeInformation", "SORES" og Keycloak på NSP.
Eksternt kræves adgang til EER, som findes på SDN.
Konfiguration
I folderen "compose/configuration" findes følgende konfigurationsfiler:
| integrations/eer.properties | Konfiguration af EER-integrationen |
| integrations/personinformation.properties | Konfiguration af PersonInformation-integrationen |
| integrations/sikrede.properties | Konfiguration af SikredeInformation-integrationen |
| integrations/sores.properties | Konfiguration af SORES-integrationen |
| application.properties | Konfiguration af EAS-servicen |
| ingress/eas-host.conf | Konfiguration af NGINX til indgående kald - Hostnavn |
| ingress/ingress-nginx.conf | Konfiguration af NGINX til indgående kald |
| egress/ehmi-endpoints.conf | Konfiguration af NGINX til udgående kald - Endpoints mod Keycloak og EER |
| egress/egress-nginx.conf | Konfiguration af NGINX til udadgående kald. |
| log4j2.xml | Konfiguration af Log4J2 |
Alle filer skal tilrettes til de forskellige miljøer som EAS installeres på. Filerne indeholder en konfiguration der passer til EAS i en standalone test konfiguration.
I EAS - Driftsvejledning er de enkelte filer gennemgået i detaljer.
SLA logning
Da NSP SLA-logning i skrivende stund ikke virker med Java 21, er der lavet en primitiv form for SLA-logning i stedet. Der logges tidsforbrug for hver af integrationerne, og skelnes mellem succesfulde og fejlede kald. Fx logges der følgende for et succesfuldt kald til SORES:
11:22:13 INFO dk.nsp.eas.integrations.sores.service.SoresServiceImpl - SLALog: name=SoresServiceImpl.getSorEntityV3, startTimeNanos=4526536292727, endTimeNanos=4526600524977,
startTimeMillis=1760606533710, endfTimeMillis=1760606533774, durationMillis=64, callOk=true, errorMessage=null
Eksempel på SLA-logning for fejlende kald:
12:14:07 INFO dk.nsp.eas.integrations.sores.service.SoresServiceImpl - SLALog: name=SoresServiceImpl.getSorEntityV3, startTimeNanos=7639942720150, endTimeNanos=7639989222484,
startTimeMillis=1760609647144, endfTimeMillis=1760609647191, durationMillis=47, callOk=false, errorMessage=Fejl ved kald til SORES
Afvikling
EAS startes og stoppes med Docker Compose kommandoer.
NSP Miljø
På et NSP miljø hentes "compose" folderen for den ønskede version og kommandoen "docker-compose -f <compose-file> up" køres i folderen "release".