Aller au contenu
getnextpdf.com

Opérations en production

Cette page est la liste de vérification pour mettre NextPDF en production et l’y maintenir. Elle sélectionne l’essentiel du manuel : chaque élément renvoie à la page qui entre dans le détail, de sorte que tu vérifies ici et lis là-bas. Parcours la Liste de vérification avant le déploiement avant la première mise en production. Reviens sur la Cadence de mise à jour et les Points d’entrée pour le triage des incidents dans le cadre des opérations du jour 2.

  • Confirme l’environnement d’exécution : NextPDF requiert PHP >=8.4 <9.0. Composer refuse tout ce qui sort de cette fenêtre. Voir Installation.
  • Vérifie les six extensions requises avec php -m : ext-mbstring, ext-zlib, ext-intl, ext-gd, ext-curl et ext-openssl. La page d’installation explique le rôle de chacune.
  • Exécute vendor/bin/nextpdf doctor pour une vérification unique de l’environnement (version de PHP, extensions et disponibilité des polices en un seul rapport).
  • Choisis ta voie de rendu avant de dimensionner le matériel. Le pipeline in-process (writeHtml()) ne nécessite aucun service supplémentaire. Artisan, Gotenberg et Cloudflare ajoutent chacun un navigateur ou un service réseau à exploiter. Utilise Choisis ta voie pour décider.
  • Si tu as choisi un pont de rendu, lis sa page de sécurité et exploitation avant la mise en service. Voir Renforcer la surface du moteur de rendu.
  • Regroupe au moment de la compilation les polices que tu utilises pour le rendu, et uniquement celles-ci. Voir Provisionner les polices pour le moteur natif en production.

Dimensionne pour le plus grand document que tu génères, pas pour la moyenne. getPdfData() construit en mémoire l’intégralité du document Portable Document Format (PDF) et le renvoie sous forme d’une seule chaîne.

  • Définis la mémoire du worker ou de la fonction à partir des recommandations de dimensionnement pour serverless : un document de quelques pages tient à l’aise entre 512 et 1024 MB ; les documents riches en images ou comptant de nombreuses pages en demandent davantage.
  • Fixe des délais d’expiration au-dessus du temps de construction du pire cas, avec de la marge. Déplace les tâches surdimensionnées vers une file d’attente asynchrone qui écrit dans un stockage d’objets — la même section de dimensionnement présente ce modèle.
  • Donne aux workers de longue durée un opcache avec la validation des horodatages désactivée. La section opcache de la recette Docker rassemble les valeurs ini de production.
  • Quand la mémoire ou le débit dérive après le lancement, commence par la table de décision du symptôme au levier.

Un Document est à usage unique. Construis-le, écris-le une seule fois et laisse-le sortir de la portée ; crée une instance neuve à chaque requête ou à chaque tâche de file d’attente. Ne partage que les registres à durée de vie du processus — FontRegistry et ImageRegistry — en les créant une seule fois au démarrage du worker. Cela correspond au modèle par requête et par tâche de PHP-FPM, des workers en file d’attente et des serveurs d’application de longue durée.

Traite le HTML comme non fiable, en particulier tout ce qui est influencé par l’utilisateur. Choisis ta voie définit la limite : par défaut, le pipeline intégré n’exécute aucun script et ne récupère aucune ressource distante, tandis que chaque pont effectue le rendu via un navigateur ou un service réseau. Avant d’exposer un pont au trafic de production, parcours sa page de sécurité et exploitation :

NextPDF ne publie aucun objectif de niveau de service (SLO) ; dérive les tiens à partir des métriques de durée de rendu et de mémoire que tu mesures ci-dessous.

Instrumente le chemin de rendu avant le premier incident, pas après.

  • Lis une fois la politique de prise en charge des versions, puis aligne tes versions dessus. Elle définit le contrat de versionnage sémantique, les libellés de stabilité, le cycle de vie de l’obsolescence et le vocabulaire de cycle de vie (active, lts, maintenance, frozen, eol) qu’utilise ce manuel.
  • Valide composer.lock afin que chaque worker déployé résolve la même version du moteur — la page d’installation énonce cette discipline.
  • Consulte le journal des modifications avant chaque montée de version.

Pour un incident de pont de rendu (un plantage de Chrome, une panne de Gotenberg, un échec de rendu à l’edge), commence par la section des modes de défaillance de ce pont dans Renforcer la surface du moteur de rendu.