Productieoperaties
In één oogopslag
Sectie met titel “In één oogopslag”Deze pagina is de checklist om NextPDF naar productie te brengen en daar te houden. Ze is een selectie uit het handboek: elk item verwijst naar de pagina met de details, zodat je hier verifieert en daar leest. Werk de Checklist vóór uitrol door vóór de eerste release. Kom terug op de Upgradecadans en de Ingangspunten voor incidenttriage als onderdeel van de day-two operations.
Checklist vóór uitrol
Sectie met titel “Checklist vóór uitrol”- Bevestig de runtime: NextPDF vereist PHP
>=8.4 <9.0. Composer weigert alles buiten dat venster. Zie Installatie. - Verifieer de zes vereiste extensies met
php -m:ext-mbstring,ext-zlib,ext-intl,ext-gd,ext-curlenext-openssl. De installatiepagina legt uit wat elk ervan doet. - Voer
vendor/bin/nextpdf doctoruit voor een eenmalige omgevingscontrole (PHP-versie, extensies en beschikbaarheid van lettertypen in één rapport). - Bepaal je renderpad voordat je de hardware dimensioneert. De in-process
pipeline (
writeHtml()) heeft geen extra service nodig. Artisan, Gotenberg en Cloudflare voegen elk een browser- of netwerkservice toe die je moet beheren. Gebruik Kies je pad om te beslissen. - Als je een renderer-bridge hebt gekozen, lees dan de bijbehorende pagina over beveiliging en operatie vóór de livegang. Zie Het renderer-oppervlak verharden.
- Bundel tijdens de build de lettertypen die je rendert, en alleen die. Zie Lettertypen provisioneren in productie.
Resources dimensioneren
Sectie met titel “Resources dimensioneren”Dimensioneer voor het grootste document dat je genereert, niet voor het
gemiddelde. getPdfData() bouwt het volledige Portable Document Format
(PDF)-document in het geheugen op en geeft het terug als één string.
- Stel het geheugen van de worker of functie in op basis van de richtlijnen voor serverless dimensionering: een document van enkele pagina’s zit comfortabel op 512–1024 MB; documenten met veel afbeeldingen of veel pagina’s hebben meer nodig.
- Stel time-outs in boven de bouwtijd van het slechtste geval, met marge. Verplaats te grote taken naar een asynchrone queue die naar object storage schrijft — dezelfde dimensioneringssectie toont het patroon.
- Geef langlevende workers opcache met timestampvalidatie uitgeschakeld. De
opcache-sectie
van het Docker-recept bevat de productie-
ini-waarden. - Wanneer geheugen of doorvoer na de lancering afwijkt, begin dan bij de beslissingstabel symptoom-naar-hefboom.
Regels voor worker-veiligheid
Sectie met titel “Regels voor worker-veiligheid”Een Document is voor eenmalig gebruik. Bouw het, schrijf het één keer en laat
het buiten scope raken; maak een nieuwe instantie per request of per queue-job.
Deel alleen de registries met proceslevensduur — FontRegistry en
ImageRegistry — door ze eenmalig bij het opstarten van de worker aan te maken.
Dit sluit aan op het per-request-, per-job-model van PHP-FPM, queue-workers en
langdraaiende applicatieservers.
- Recept met de opstartvolgorde en reset per cyclus: Worker-veilige batchrendering.
- Het contract in één antwoord: Is het worker-safe en thread-safe?
Het renderer-oppervlak verharden
Sectie met titel “Het renderer-oppervlak verharden”Behandel HTML als niet-vertrouwd, vooral alles wat door gebruikers wordt beïnvloed. Kies je pad benoemt de grens: standaard voert de ingebouwde pipeline geen scripts uit en haalt geen externe resources op, terwijl elke bridge rendert via een browser of een netwerkservice. Voordat je een bridge blootstelt aan productieverkeer, werk je de bijbehorende pagina over beveiliging en operatie door:
- Artisan-beveiliging en -operatie — het Chrome-renderoppervlak.
- Gotenberg-beveiliging en -operatie — het Gotenberg-serviceoppervlak.
- Cloudflare-beveiliging en -operatie — het edge-uitroloppervlak.
- Draai je de engine als een service? Voeg dan Connect-beveiliging en -operatie toe.
Observability
Sectie met titel “Observability”NextPDF publiceert geen service-level objective (SLO)-doelen; leid die van jou af uit de render-duur- en geheugenmetrieken die je hieronder meet.
Instrumenteer het renderpad vóór het eerste incident, niet erna.
- In-process engine: Observeren met OpenTelemetry.
- NextPDF Connect-uitrollen: Connect OpenTelemetry-recept.
- Leg per render vast: kloktijd, piekgeheugen, aantal pagina’s, uitvoergrootte en de uitkomst met de bijbehorende exception-categorie uit de foutreferentie.
- Waarschuw op trends, niet alleen op fouten: stijgende bouwtijden, stijgend piekgeheugen en het aantal time-outs of geheugenuitputtingen zijn de belangrijkste signalen in de items over geheugen en prestaties.
Upgradecadans
Sectie met titel “Upgradecadans”- Lees het versie-ondersteuningsbeleid
één keer en houd je er vervolgens bij releases aan. Het definieert het contract
voor semantische versionering, de stabiliteitslabels, de deprecatie-levenscyclus
en het levenscyclusvocabulaire (
active,lts,maintenance,frozen,eol) dat dit handboek hanteert. - Commit
composer.lockzodat elke uitgerolde worker dezelfde engine-versie oplost — de installatiepagina benoemt deze discipline. - Bekijk de changelog vóór elke versieverhoging.
Ingangspunten voor incidenttriage
Sectie met titel “Ingangspunten voor incidenttriage”Bij een renderer-bridge-incident (een Chrome-crash, een Gotenberg-storing, een edge-renderfout) begin je bij de sectie over faalmodi van die bridge in Het renderer-oppervlak verharden.
- Begin bij het symptoom, niet bij de klassenaam, in de kennisbank voor probleemoplossing.
- Koppel een gevangen exception aan de bijbehorende categorie en het contextcontract in de foutreferentie.
Zie ook
Sectie met titel “Zie ook”- NextPDF in productie draaien — het Insider_-essay over waarom de engine zich onder belasting zo gedraagt.
- Een NextPDF-applicatie containeriseren — de productie-Docker-image, van begin tot eind.
- Uitrollen op serverless — specifieke details voor Lambda, Cloud Run en App Runner.
- Worker-veilige rendering op Connect — dezelfde levensduurregels toegepast op de server.