Omnidocs Platform zelf hosten (Generiek)
INHOUDSOPGAVE
De Omnidocs-omgeving bestaat uit verschillende kernservices. Deze werken samen. Zo zorgen ze voor de werking van het hele systeem:
- Kernservices:
- Create API, Internal API en Backup API.
- Transformatieservice:
- JMES Engine.
- Sjabloonservices:
- Docx, Pptx, Xlsx, Html.
- PDF-uitvoerservice:
- PDF-conversie-engine.
Voor opslag gebruikt de omgeving twee dingen: object-/blobopslag, en een database op basis van MongoDB.
We raden ook aan om de netwerkgrens te beveiligen. Gebruik daarvoor zowel een Ingress Gateway als een Egress Gateway. Dit beschermt het systeem tegen bedreigingen van buitenaf. Het maakt het ook makkelijker om te configureren, als je met externe systemen werkt. Denk aan het instellen van firewall-uitzonderingen voor MongoDB Atlas.

Zelf hosten_Omnidocs_Platform_(Generiek)-create-arch
Implementeer je bijvoorbeeld op Azure? Dan kan de configuratie dit bevatten:
- Application Gateway: dit is een inkomende reverse proxy. Deze heeft beveiliging via een Web Application Firewall.
- NAT Gateway: dit verwerkt uitgaand verkeer, via netwerkadresvertaling.
Services
Kernservices
Create API
Create API
De Create API is het belangrijkste toegangspunt van de omgeving. Deze doet twee dingen. Ten eerste stuurt hij de workflow aan: hij coördineert andere services, om taken uit te voeren zoals het maken van een document. Ten tweede is dit de enige ingang tot het systeem. Hij biedt het hele API-oppervlak aan, en de WebAssembly-clients.
- Inkomende communicatie: dit is de enige service die van buitenaf bereikbaar is, voor inkomende aanvragen.
- Serviceafhankelijkheden: deze service moet alle andere services en systemen kunnen bereiken (behalve de Backup API). Je stelt deze eindpunten in met omgevingsvariabelen.
- Toewijzing van resources: rekenwerk gaat naar de WebAssembly- en sjabloonengines. Daardoor heeft deze service maar gemiddelde resources nodig, voor normale aanvragen.
Internal API
De Internal API ondersteunt de Create API. Dat gebeurt bij bepaalde workflows, zoals het maken van documenten en het werken met externe gegevensbronnen. Deze service heeft geen inkomende toegang van buitenaf nodig — alleen uitgaand verkeer.
- Serviceafhankelijkheden: deze service heeft dezelfde vindbaarheid nodig als de Create API.
- Toewijzing van resources: ongeveer gelijk aan de Create API, maar met minder belasting in totaal.
Backup API
De Backup API maakt back-ups en herstelt gegevens van de opslagcomponenten.
- API-blootstelling: deze service heeft geen eigen API-eindpunt. Hij hoeft ook niet vindbaar te zijn voor andere services — behalve voor de opslagcomponenten.
- Toewijzing van resources: licht. Hij heeft weinig CPU en geheugen nodig.
Transformatieservice
JMES Engine
De JMES Engine verwerkt transformaties. Dat gebeurt in de eerste fase van een workflow. Hij gebruikt daarvoor een uitgebreide versie van JMESPath.
- Serviceafhankelijkheden: geen vindbaarheid nodig.
- Toewijzing van resources: weinig CPU-gebruik, maar wel veel geheugen nodig. We raden minimaal 3GB RAM en 1 CPU aan.
Sjabloonservices
De sjabloonengines worden gebruikt in de volgende fase van de workflow. Afhankelijk van het type document dat wordt
De sjabloonengines werken in de volgende fase van de workflow. Welke engine gebruikt wordt, hangt af van het documenttype. Voor Word-documenten gebruik je de Docx-engine. Voor PowerPoint-presentaties de Pptx-engine. Voor Excel-spreadsheets de Xlsx-engine. En voor HTML-documenten de Html-engine.
- Serviceafhankelijkheden: geen vindbaarheid nodig.
- Toewijzing van resources: deze services zijn meestal licht. De Office-engines hebben elk maximaal 1GB geheugen nodig. De HTML-engine heeft nog minder geheugen nodig.
PDF-uitvoerservice
PDF Engine
De PDF Engine zet Office- en HTML-documenten om naar PDF. Dit is de laatste stap van een workflow.
- Serviceafhankelijkheden: geen vindbaarheid nodig.
- Toewijzing van resources: deze service gebruikt veel CPU. Hij werkt het best met hele CPU-eenheden (bijvoorbeeld 1 CPU of 2 CPU's). Zo gebruik je resources efficiënt — een deel van een CPU is vaak niet genoeg. Hoeveel geheugen nodig is, hangt af van hoe ingewikkeld de documenten zijn.
- Aanbevelingen: geef elke instantie 1 CPU en minimaal 2GB geheugen. Deze service schaalt beter horizontaal (meer instanties) dan verticaal (grotere instanties).
- Richtlijnen voor schalen: kun je niet goed horizontaal schalen? Verhoog dan eerst het geheugen, voordat je extra CPU's toevoegt (tot 2 CPU's). Ga je daarboven? Dan levert dat steeds minder op.
Opslagafhankelijkheden
Objectopslag
De omgeving ondersteunt verschillende opties voor objectopslag:
- Azure Storage: geschikt als je implementeert in een Azure-omgeving.
- S3-compatibele opslag: handig voor omgevingen buiten Azure, of externe omgevingen (bijvoorbeeld Ceph of MinIO).
- MongoDB GridFS: dit gebruik je als er geen andere objectopslag beschikbaar is.
Databaseopslag
Het systeem gebruikt een database die compatibel is met MongoDB, voor gestructureerde gegevens. Deze opties worden ondersteund:
- MongoDB Atlas: een beheerde dienst in de cloud.
- Azure CosmosDB for MongoDB: een beheerde databasedienst die compatibel is met MongoDB.
- Self-Managed MongoDB Instance: een configuratie die je zelf onderhoudt.
Toegang tot containerimages
Neem contact op met je vaste technische contactpersoon bij Omnidocs. Zo krijg je toegang tot de containerimages die je nodig hebt voor de Omnidocs-omgeving. Deze persoon helpt je aan een authenticatietoken voor onze Azure Container Registry. Daarmee haal je de images op die je nodig hebt, voor de verschillende services in deze documentatie.
Was dit artikel nuttig?
Dat is fantastisch!
Hartelijk dank voor uw beoordeling
Sorry dat we u niet konden helpen
Hartelijk dank voor uw beoordeling
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren