| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| README.md | ||
Alarmathan
Alarmathan er en bunnskrevet applikasjon som har ett formål, og det er å sluse alle alarmer som skal til operasjonssenteret inn i et mottak. Alarmathan har som mål om å overleve i sin helhet selvom NHN sin infrastruktur skulle møte døden. Alarmathan skal i teorien overleve totalkollaps av helsenettet, selvom dette er et urealistisk scenario.
KISS (Keep it simple stupid)
Alarmathan er utviklet og publisert etter KISS-filosofien. Tjenesten skal være så liten og enkel som overhode mulig, slik at det er mindre gir i rotasjon. Dette gjør feilsøking lettere og færre måter tjenesten kan bli skadet på. Alle former for tilleggstjenester, slik som statistikk og administrasjons-dashboard vil være tjenester som lever på utsiden av alarmathan men som heller snakker inn mot de forskjellige instansene av alarmathan over interne API.
Oppsett
Det deployes to instanser av alarmathan, en instans i azure (offentlig sky) og en instants i nhn (privat sky). Disse to instansene knyttes sammen av admin-panelet. Alle integrasjoner SKAL sende sine alarmer til både off-prem og on-prem. Off-prem instansen er både tilgjengelig på internett og helsenett. Internett publiseringen puttes bak brannmur, slik at trafikk bare kan initeres av NHN sine offentlige addresser.
Off-prem instansen er publisert under offprem.alarm.nhn.no og on-prem instansen er publisert under onprem.alarm.nhn.no.
Off-prem er primær innstansen mens on-prem er sekundær. Det vil lages en rutine for manuell failover. Det er publisert en CNAME record i dns som peker [alarm.nhn.no] (https://alarm.nhn.no) mot offprem.alarm.nhn.no. Failover rutinen vil være å logge seg inn i DNS-FLOW for å endre CNAME fra off-prem til on-prem.
Autentisering
For bruker-auth vil både alarmathan og admin utnytte microsoft-entra for autentisering, dette mot kontor tenanten. Det vil også legges opp til api-key for maskin autentisering, for eksempel skjermvegger.
Alarmathan benytter seg av microsoft-entra autentisering fordi dette er en løsning som er delvis uanvhengig NHN sin infrastruktur.
Så langt er det tenkt at det gamle webhook endepunktet byttes ut med et nytt webhook endepunkt som bruker mTLS for autentisering. mTLS sertifikatene er basert på NHN sin interne CA, og vil bli utstedt ved hjelp av ACME løsningen som leveres av Nøkkeltjenester.
Admin
Når en tjeneste ønsker å benytte seg av alarmathan er det ønskelig at de skal selvbjetene seg selv, dette via admin-panelet. Her må de legge ved sin service-id og slack-kanal vi kan bruke for å kontakte dem samt at de må samtykke til at alarmene de sender inn er reelle. OS forbeholder seg retten til å blokkere alarmer om vi mener de ikke er annet enn støy. Vi ønsker derfor å etablere et system for annmerkninger, hvor vi gir et team X-antall forsøk på å rette opp alarmen før vi fjerner den fra veggen, driftsteamet, tjenesteeier og Henrik Braaten vil bli varslet for hver annmerkning og eventuellt blokkering.
Kommunikasjon mellom instansene og alarmathan-admin vil foregå over helsenettet.
Drift
Både off-prem og on-prem benytter seg av argocd som CI/CD plattform, lenker til instansene vil publiseres når den tid kommer. Både alarmathan og alarmathan-admin benytter seg av postgresql som database-motor. Postgresql blir deployet i high availability modus av cnpg. I fremtiden blir det kanskje nødvendig med verktøy for drift og administering av databasen, men dette tar vi når den tid kommer. Rutiner for drift vil også etablere seg i fremtiden.