Omnidocs Platform zelf hosten (Generiek)

Gewijzigd op Wo, 2 Sep om 11:56 AM

Omnidocs Platform zelf hosten (Generiek)

INHOUDSOPGAVE

Overzicht

De Omnidocs-omgeving bestaat uit verschillende kernservices die samenwerken om de algehele functionaliteit te ondersteunen:

  • 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 zowel Object-/Blobopslag als een op MongoDB gebaseerde database.

Het wordt ook aanbevolen om de netwerkgrens te beveiligen met zowel een Ingress Gateway als een Egress Gateway. Dit helpt het systeem te beschermen tegen externe bedreigingen en vereenvoudigt de configuratie bij interactie met externe services (bijvoorbeeld het toevoegen van firewalluitzonderingen voor MongoDB Atlas).

Zelf hosten_Omnidocs_Platform_(Generiek)-create-arch

Zelf hosten_Omnidocs_Platform_(Generiek)-create-arch


Bij implementatie op bijvoorbeeld Azure kan de configuratie het volgende omvatten:

  • Application Gateway: Functioneert als een inkomende reverse proxy met Web Application Firewall-beveiliging.
  • NAT Gateway: Verwerkt uitgaande communicatie via netwerkadresvertaling.

Services

Kernservices

Create API

De Create API is het belangrijkste toegangspunt en de regisseur van de omgeving. Deze fungeert zowel als de workfloworchestrator, die andere services coördineert om verschillende functies uit te voeren (zoals het genereren van een document), als de enige ingress voor het systeem, waarbij het volledige API-oppervlak en WebAssembly-clients worden aangeboden.

  • Inkomende communicatie: De enige service die extern beschikbaar is voor inkomende aanvragen.
  • Serviceafhankelijkheden: Vereist bereikbaarheid naar alle andere services en afhankelijkheden (met uitzondering van Backup API). Deze eindpunten worden geconfigureerd met omgevingsvariabelen.
  • Toewijzing van resources: Door rekentaken uit te besteden aan WebAssembly- en sjabloonengines heeft de service slechts gemiddelde resources nodig om typische aanvraagbelastingen af te handelen.

Internal API

De Internal API ondersteunt de Create API tijdens specifieke workflows, zoals het genereren van documenten en het werken met Externe gegevensbronnen. Er is geen externe inkomende toegang vereist, alleen uitgaande communicatie.

  • Serviceafhankelijkheden: Vereist vergelijkbare vindbaarheid als de Create API.
  • Toewijzing van resources: Vergelijkbaar met Create API, maar met een lagere totale belasting.

Backup API

De Backup API is verantwoordelijk voor het uitvoeren van back-up- en herstelbewerkingen op de opslagcomponenten.

  • API-blootstelling: Deze service stelt geen API-eindpunt beschikbaar en vereist geen vindbaarheid van andere services, afgezien van opslagcomponenten.
  • Toewijzing van resources: Lichtgewicht, met minimale CPU- en geheugenvereisten.

Transformatieservice

JMES Engine

De JMES Engine verwerkt transformaties tijdens de initiële fase van een workflow met behulp van een uitgebreide versie van JMESPath.

  • Serviceafhankelijkheden: Geen servicevindbaarheid vereist.
  • Toewijzing van resources: Laag CPU-gebruik maar vereist aanzienlijk geheugen, met een aanbevolen minimum van 3GB RAM en 1 CPU.

Sjabloonservices

De sjabloonengines worden gebruikt in de volgende fase van de workflow. Afhankelijk van het type document dat wordt gegenereerd, wordt ofwel de Docx-engine voor Word-documenten, de Pptx-engine voor PowerPoint-presentaties, de Xlsx-engine voor Excel-spreadsheets of de Html-engine voor HTML-documenten gebruikt.

  • Serviceafhankelijkheden: Geen servicevindbaarheid vereist.
  • Toewijzing van resources: Deze services zijn over het algemeen lichtgewicht. Office-engines vereisen elk maximaal 1GB geheugen, terwijl de HTML-engine minimale geheugenvereisten heeft.

PDF-uitvoerservice

PDF Engine

De PDF Engine is verantwoordelijk voor het converteren van Office- en HTML-documenten naar PDF als laatste stap van een workflow.

  • Serviceafhankelijkheden: Geen servicevindbaarheid vereist.
  • Toewijzing van resources: CPU-intensief en profiteert van toegewezen CPU-eenheden in gehele getallen (bijvoorbeeld 1 CPU, 2 CPU's) voor optimale prestaties. Dit zorgt voor efficiënt gebruik van resources, omdat fractionele CPU-toewijzingen mogelijk niet voldoende presteren. Geheugenvereisten variëren afhankelijk van de complexiteit van documenten.
  • Aanbevelingen: Wijs 1 CPU en minimaal 2GB geheugen per instantie toe. Deze service schaalt efficiënter horizontaal dan verticaal.
  • Richtlijnen voor schalen: Als horizontaal schalen beperkt is, overweeg dan om het geheugen te verhogen voordat je extra CPU's toevoegt (tot 2 CPU's). Schalen boven dit aantal levert afnemende meeropbrengsten op.

Opslagafhankelijkheden

Objectopslag

De omgeving ondersteunt verschillende opties voor objectopslag:

  • Azure Storage: Geschikt voor implementaties in Azure-omgevingen.
  • S3-compatibele opslag: Nuttig voor niet-Azure- of externe omgevingen (bijvoorbeeld Ceph of MinIO).
  • MongoDB GridFS: Een terugvaloplossing die wordt gebruikt wanneer geen andere objectopslag beschikbaar is.

Databaseopslag

Het systeem vertrouwt op een MongoDB-compatibele database voor gestructureerde gegevensopslag. Ondersteunde opties zijn onder andere:

  • MongoDB Atlas: Een cloudgebaseerde beheerde service.
  • Azure CosmosDB for MongoDB: Een beheerde databaseservice die compatibiliteit met MongoDB biedt.
  • Self-Managed MongoDB Instance: Een handmatig onderhouden configuratie.

Toegang tot containerimages

Neem contact op met je aangewezen technische contactpersoon bij Omnidocs om toegang te krijgen tot de containerimages die vereist zijn voor de Omnidocs-omgeving. Die persoon helpt je met het verkrijgen van een authenticatietoken voor onze Azure Container Registry, zodat je de benodigde images kunt ophalen voor de verschillende services die in deze documentatie worden beschreven.

Was dit artikel nuttig?

Dat is fantastisch!

Hartelijk dank voor uw beoordeling

Sorry dat we u niet konden helpen

Hartelijk dank voor uw beoordeling

Laat ons weten hoe we dit artikel kunnen verbeteren!

Selecteer tenminste een van de redenen
CAPTCHA-verificatie is vereist.

Feedback verzonden

We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren