Selvhosting af Omnidocs Platform (Generisk)

Ændret den Wed, 12 Aug kl. 12:24 PM

Selvhosting af Omnidocs Platform (Generisk)

INDHOLDSFORTEGNELSE

Oversigt

Omnidocs-miljøet består af flere kernetjenester, der arbejder sammen for at understøtte den samlede funktionalitet:

  • Kernetjenester
  • Create API, Internal API og Backup API
  • Transformation Service
  • JMES Engine
  • Templating Services
  • Docx, Pptx, Xlsx, Html
  • PDF Output Service
  • PDF Conversion Engine

Til lagring bruger miljøet både objekt-/bloblagring og en MongoDB-baseret database.

Det anbefales også at sikre netværksgrænsen ved at bruge både en Ingress Gateway og en Egress Gateway. Dette hjælper med at beskytte systemet mod eksterne trusler og forenkler konfigurationen ved interaktion med eksterne tjenester (f.eks. tilføjelse af firewall-undtagelser for MongoDB Atlas).

Self-hosting_Omnidocs_Platform_(Generic)-create-arch

Self-hosting_Omnidocs_Platform_(Generic)-create-arch

For eksempel kan opsætningen ved implementering på Azure omfatte:

  • Application Gateway: Fungerer som en indgående reverse proxy med Web Application Firewall-beskyttelse.
  • NAT Gateway: Håndterer udgående kommunikation via netværksadressetranslation.

Tjenester

Kernetjenester

Create API

Create API er det primære indgangspunkt og orkestreringslag for miljøet. Det fungerer både som workflow-orkestrator, der koordinerer andre tjenester for at udføre forskellige funktioner (såsom generering af et dokument), og som den eneste ingress til systemet, der eksponerer den komplette API-flade og WebAssembly-klienter.

  • Indgående kommunikation: Den eneste tjeneste, der er eksponeret eksternt til indgående anmodninger.
  • Tjenesteafhængigheder: Kræver forbindelse til alle andre tjenester og afhængigheder (undtagen Backup API). Disse endpoints konfigureres ved hjælp af miljøvariabler.
  • Ressourceallokering: På grund af aflastning af beregningsopgaver til WebAssembly- og templating-motorer har tjenesten kun behov for moderate ressourcer til at håndtere typiske anmodningsbelastninger.

Internal API

Internal API assisterer Create API under specifikke workflows, såsom generering af dokumenter og interaktion med Eksterne datakilder. Den kræver ikke ekstern indgående adgang, kun udgående kommunikation.

  • Tjenesteafhængigheder: Kræver lignende tilgængelighed som Create API.
  • Ressourceallokering: Sammenlignelig med Create API, men med lavere samlet belastning.

Backup API

Backup API er ansvarlig for at udføre backup- og gendannelsesoperationer på lagerkomponenterne.

  • API-eksponering: Denne tjeneste eksponerer ikke et API-endpoint og kræver ikke tilgængelighed af andre tjenester ud over lagerkomponenterne.
  • Ressourceallokering: Letvægts med minimale behov for CPU og hukommelse.

Transformation Service

JMES Engine

JMES Engine behandler transformationer under den indledende fase af et workflow ved hjælp af en udvidet version af JMESPath.

  • Tjenesteafhængigheder: Ingen krav om tilgængelighed af tjenester.
  • Ressourceallokering: Lavt CPU-forbrug, men kræver betydelig hukommelse, med mindst 3GB RAM og 1 CPU anbefalet.

Templating Services

Templating-motorerne bruges i den næste fase af workflowet. Afhængigt af typen af dokument, der genereres, bruges enten Docx-motoren til Word-dokumenter, Pptx-motoren til PowerPoint-præsentationer, Xlsx-motoren til Excel-regneark eller Html-motoren til HTML-dokumenter.

  • Tjenesteafhængigheder: Ingen krav om tilgængelighed af tjenester.
  • Ressourceallokering: Disse tjenester er generelt letvægtige. Office-motorer kræver op til 1GB hukommelse hver, mens HTML-motoren har minimale hukommelsesbehov.

PDF Output Service

PDF Engine

PDF Engine er ansvarlig for at konvertere Office- og HTML-dokumenter til PDF som det sidste trin i et workflow.

  • Tjenesteafhængigheder: Ingen krav om tilgængelighed af tjenester.
  • Ressourceallokering: CPU-intensiv og drager fordel af at få tildelt hele CPU-enheder (f.eks. 1 CPU, 2 CPU'er) for optimal ydeevne. Dette sikrer effektiv ressourceudnyttelse, da fraktionerede CPU-allokeringer muligvis ikke yder tilstrækkeligt. Hukommelseskrav varierer afhængigt af dokumentets kompleksitet.
  • Anbefalinger: Tildel 1 CPU og mindst 2GB hukommelse pr. instans. Denne tjeneste skalerer mere effektivt horisontalt end vertikalt.
  • Vejledning til skalering: Hvis horisontal skalering er begrænset, bør du overveje at øge hukommelsen, før du tilføjer yderligere CPU'er (op til 2 CPU'er). Skalering ud over dette antal giver faldende udbytte.

Lagerafhængigheder

Objektlagring

Miljøet understøtter flere muligheder for objektlagring:

  • Azure Storage: Velegnet til implementeringer i Azure-miljøer.
  • S3-kompatibel lagring: Nyttigt til ikke-Azure- eller tredjepartsmiljøer (f.eks. Ceph eller MinIO).
  • MongoDB GridFS: En fallback-løsning, der bruges, når ingen anden objektlagring er tilgængelig.

Databaselagring

Systemet er afhængigt af en MongoDB-kompatibel database til struktureret datalagring. Understøttede muligheder omfatter:

  • MongoDB Atlas: En cloudbaseret administreret tjeneste.
  • Azure CosmosDB for MongoDB: En administreret databasetjeneste, der tilbyder kompatibilitet med MongoDB.
  • Self-Managed MongoDB Instance: En manuelt vedligeholdt opsætning.

Adgang til container-images

For at få adgang til de container-images, der kræves til Omnidocs-miljøet, skal du kontakte din udpegede tekniske kontaktperson hos Omnidocs. Vedkommende hjælper dig med at få et autentificeringstoken til vores Azure Container Registry, så du kan hente de nødvendige images til de forskellige tjenester, der er beskrevet i denne dokumentation.

Var denne artikel nyttig?

Fantastisk!

Tak for din feedback

Beklager, at vi ikke var nyttige

Tak for din feedback

Fortæl os, hvordan vi kan forbedre denne artikel!

Vælg mindst én af grundene
Captcha-bekræftelse er påkrævet.

Feedback sendt

Vi sætter pris på din indsats og vil forsøge at rette artiklen