Produktionsbetrieb
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“Diese Seite ist die Checkliste, um NextPDF in Produktion zu bringen und dort zu halten. Sie kuratiert das Handbuch: Jeder Punkt verweist auf die Seite, die in die Tiefe geht — Sie prüfen hier und lesen dort. Arbeiten Sie die Checkliste vor dem Deployment vor dem ersten Release durch. Sehen Sie sich Upgrade-Rhythmus und Einstiegspunkte für die Störungstriage im Rahmen des Day-Two-Betriebs erneut an.
Checkliste vor dem Deployment
Abschnitt betitelt „Checkliste vor dem Deployment“- Bestätigen Sie die Laufzeitumgebung: NextPDF erfordert PHP
>=8.4 <9.0. Composer verweigert alles außerhalb dieses Bereichs. Siehe Installation. - Überprüfen Sie die sechs erforderlichen Erweiterungen mit
php -m:ext-mbstring,ext-zlib,ext-intl,ext-gd,ext-curlundext-openssl. Die Installationsseite erklärt, was jede einzelne davon leistet. - Führen Sie
vendor/bin/nextpdf doctorfür eine einmalige Umgebungsprüfung aus (PHP-Version, Erweiterungen und Schriftverfügbarkeit in einem Bericht). - Entscheiden Sie sich für Ihren Rendering-Pfad, bevor Sie die Hardware
dimensionieren. Die In-Process-Pipeline (
writeHtml()) benötigt keinen zusätzlichen Dienst. Artisan, Gotenberg und Cloudflare fügen jeweils einen Browser- oder Netzwerkdienst hinzu, der betrieben werden muss. Nutzen Sie Wählen Sie Ihren Weg zur Entscheidung. - Wenn Sie sich für eine Renderer-Bridge entschieden haben, lesen Sie deren Seite zu Sicherheit und Betrieb vor dem Go-live. Siehe Die Renderer-Oberfläche härten.
- Bündeln Sie die Schriften, die Sie rendern, zur Build-Zeit — und nur diese. Siehe Schriften in Produktion bereitstellen.
Ressourcendimensionierung
Abschnitt betitelt „Ressourcendimensionierung“Dimensionieren Sie für das größte Dokument, das Sie erzeugen, nicht für den
Durchschnitt. getPdfData() erstellt das vollständige Dokument im Portable
Document Format (PDF) im Arbeitsspeicher und gibt es als eine einzige
Zeichenkette zurück.
- Legen Sie den Speicher für Worker oder Funktionen gemäß der Anleitung zur Serverless-Dimensionierung fest: Ein Dokument mit wenigen Seiten kommt bei 512–1024 MB gut zurecht; bildlastige oder seitenreiche Dokumente benötigen mehr.
- Setzen Sie Timeouts oberhalb der Erstellungszeit im ungünstigsten Fall, mit Reserve. Verlagern Sie überdimensionierte Jobs in eine asynchrone Queue, die in Objektspeicher schreibt — der gleiche Abschnitt zur Dimensionierung zeigt das Muster.
- Aktivieren Sie für langlebige Worker opcache mit deaktivierter
Zeitstempelvalidierung.
Der opcache-Abschnitt
des Docker-Rezepts enthält die
ini-Werte für die Produktion. - Wenn Speicher oder Durchsatz nach dem Start abdriftet, beginnen Sie mit der Entscheidungstabelle Symptom-zu-Hebel.
Regeln zur Worker-Sicherheit
Abschnitt betitelt „Regeln zur Worker-Sicherheit“Ein Document ist zum einmaligen Gebrauch bestimmt. Erstellen Sie es, schreiben
Sie es einmal und lassen Sie es den Gültigkeitsbereich verlassen; erzeugen Sie
pro Request oder pro Queue-Job eine frische Instanz. Nutzen Sie ausschließlich
die an die Prozesslebensdauer gebundenen Registries — FontRegistry und
ImageRegistry — gemeinsam, indem Sie sie einmalig beim Worker-Start erzeugen. Das
entspricht dem Pro-Request-, Pro-Job-Modell von PHP-FPM, Queue-Workern und
langlaufenden Anwendungsservern.
- Rezept mit der Startsequenz und dem Zurücksetzen pro Zyklus: Worker-sicheres Batch-Rendering.
- Der Vertrag in einer Antwort: Ist es Worker-sicher und Thread-sicher?
Die Renderer-Oberfläche härten
Abschnitt betitelt „Die Renderer-Oberfläche härten“Behandeln Sie HTML als nicht vertrauenswürdig, insbesondere alles, was von Nutzern beeinflusst wird. Wählen Sie Ihren Weg benennt die Grenze: Standardmäßig führt die integrierte Pipeline keine Skripte aus und ruft keine entfernten Ressourcen ab, während jede Bridge über einen Browser oder einen Netzwerkdienst rendert. Bevor Sie eine Bridge dem Produktionsverkehr aussetzen, arbeiten Sie ihre Seite zu Sicherheit und Betrieb durch:
- Artisan – Sicherheit und Betrieb — die Chrome-Renderer-Oberfläche.
- Gotenberg – Sicherheit und Betrieb — die Gotenberg-Dienstoberfläche.
- Cloudflare – Sicherheit und Betrieb — die Edge-Deployment-Oberfläche.
- Betreiben Sie die Engine als Dienst? Ergänzen Sie Connect – Sicherheit und Betrieb.
Observability
Abschnitt betitelt „Observability“NextPDF veröffentlicht keine Zielwerte für Service-Level-Objectives (SLO); leiten Sie Ihre eigenen aus den unten gemessenen Metriken zu Render-Dauer und Speicher ab.
Instrumentieren Sie den Render-Pfad vor der ersten Störung, nicht danach.
- In-Process-Engine: Mit OpenTelemetry beobachten.
- NextPDF-Connect-Deployments: Connect-OpenTelemetry-Rezept.
- Erfassen Sie pro Rendervorgang: Wall-Time, Speicherspitze, Seitenzahl, Ausgabegröße sowie das Ergebnis mit seiner Ausnahmekategorie aus der Fehlerreferenz.
- Lösen Sie Alarme bei Trends aus, nicht nur bei Fehlern: Steigende Erstellungszeiten, steigende Speicherspitzen sowie die Anzahl von Timeouts oder Speichererschöpfungen sind die führenden Signale in den Einträgen zu Speicher und Performance.
Upgrade-Rhythmus
Abschnitt betitelt „Upgrade-Rhythmus“- Lesen Sie die
Richtlinie zum Versions-Support
einmal und richten Sie Releases dann danach aus. Sie definiert den Vertrag der
semantischen Versionierung, die Stabilitäts-Labels, den
Deprecation-Lebenszyklus und das Lebenszyklus-Vokabular (
active,lts,maintenance,frozen,eol), das dieses Handbuch verwendet. - Committen Sie
composer.lock, damit jeder ausgelieferte Worker dieselbe Engine-Version auflöst — die Installationsseite beschreibt diese Disziplin. - Prüfen Sie das Changelog vor jeder Versionsanhebung.
Einstiegspunkte für die Störungstriage
Abschnitt betitelt „Einstiegspunkte für die Störungstriage“Bei einer Störung einer Renderer-Bridge (ein Chrome-Absturz, ein Gotenberg-Ausfall, ein Fehler beim Edge-Rendering) beginnen Sie mit dem Abschnitt zu den Fehlermodi dieser Bridge unter Die Renderer-Oberfläche härten.
- Beginnen Sie mit dem Symptom, nicht mit dem Klassennamen, in der Troubleshooting-Wissensdatenbank.
- Ordnen Sie eine abgefangene Ausnahme ihrer Kategorie und ihrem Kontextvertrag in der Fehlerreferenz zu.
Siehe auch
Abschnitt betitelt „Siehe auch“- NextPDF in Produktion betreiben — das Insider_-Essay dazu, warum sich die Engine unter Last so verhält.
- Eine NextPDF-Anwendung containerisieren — das Produktions-Docker-Image, von Anfang bis Ende.
- Serverless bereitstellen — Spezifika für Lambda, Cloud Run und App Runner.
- Worker-sicheres Rendering auf Connect — dieselben Lebensdauer-Regeln, angewandt auf den Server.