...
...
Estimat af POC:
Opsætning af basis projekt med swagger, Containerisering, med STAR.f
20 timer
Indførsel at puppeteer:
16 timer
Sikring af webtilgængelighed:
16 timer
Klientgenerering
16 timer
DevOps (Byg og NuGet)
12 timer
Dokumentation
8 timer
Test
16 timer
Total:
104 timer
Formål
At kunne generere webtilgængelige PDF’er på en ensartet måde, i alle forretningsdomæner, ud fra HTML.
...
Der oprettes en isoleret container, der kun har til opgave at tage imod HTML og sende en PDF tilbage. Denne skal benytte så lightweight Linux som muligt (Alpine).
Det er et .NET-projekt, der anvender https://github.com/hardkoded/puppeteer-sharp til at starte en Chromium-instans op med den givne HTML, og ud fra det bliver en PDF genereret.
...
Implementationsperspektiv
Containerisering
...
Projektet skal opbygges som alle andre STAR projekter og aftage STAR.Foundation således at miljøvariable for logning mm. automatisk indføres.
Det er vigtigt at containeren holdes stateless for at sikre alle jobs kan udføres parallelt og containere kan skalere.
Puppeteer
Der anvendes puppeteer-sharp til at starte en Chromium-instans og derfra generere PDF’er
...
Swagger / Client API / Publicering til NuGet
...
For at sikre ensartet brug af det udstillede API-endpoint skal der på baggrund af en swagger spec oprettes klient api, dette skal følge samme fremgangsmåde som i andre STAR applikationer. Dette kræver STAR.foundation med tilhørende postbuild.
Som en del af bygpipelinen skal klient api’et pakkes i en NuGet pakke og pushes til STAR’s feed. Versioneringen skal følge STAR sædvanlige versionering.
Udeståender
Logning
Er der logningskrav?
Performancemonitorering
Servicen skal understøtte performancemonitorering, og bør load-testes inden produktionssætning.
Skalerbarhed
Bør vi evt anvende eventkø (RabbitMQ)?
Caching
Hvis loadtesten ser ud til at presse containeren kan der med fordel laves caching.