Ir al contenido
getnextpdf.com

Operaciones en producción

Esta página es la lista de verificación para llevar NextPDF a producción y mantenerlo ahí. Selecciona lo esencial del manual: cada elemento enlaza con la página que aporta la profundidad, de modo que aquí se verifica y allí se lee. Conviene recorrer la Lista de verificación previa al despliegue antes de la primera versión. Revisar de nuevo la Cadencia de actualización y los Puntos de entrada para el triaje de incidentes como parte de las operaciones del día dos.

  • Confirmar el entorno de ejecución: NextPDF requiere PHP >=8.4 <9.0. Composer rechaza cualquier cosa fuera de esa ventana. Véase Instalación.
  • Verificar las seis extensiones requeridas con php -m: ext-mbstring, ext-zlib, ext-intl, ext-gd, ext-curl y ext-openssl. La página de instalación explica qué hace cada una.
  • Ejecutar vendor/bin/nextpdf doctor para una comprobación única del entorno (versión de PHP, extensiones y disponibilidad de fuentes en un solo informe).
  • Decidir la vía de renderizado antes de dimensionar el hardware. El pipeline en proceso (writeHtml()) no necesita ningún servicio adicional. Artisan, Gotenberg y Cloudflare añaden cada uno un navegador o un servicio de red que operar. Usar Elegir la ruta para decidir.
  • Si se ha elegido un puente de renderer, leer su página de seguridad y operaciones antes de la puesta en marcha. Véase Reforzar la superficie del renderer.
  • Empaquetar en tiempo de compilación las fuentes que se renderizan, y solo esas. Véase Aprovisionar fuentes en producción.

Dimensionar para el documento más grande que se genere, no para el promedio. getPdfData() construye en memoria todo el documento Portable Document Format (PDF) y lo devuelve como una sola cadena.

  • Configurar la memoria del worker o de la función a partir de la guía de dimensionamiento para serverless: un documento de pocas páginas funciona con holgura entre 512 y 1024 MB; los documentos con muchas imágenes o con muchas páginas necesitan más.
  • Establecer los tiempos de espera por encima del tiempo de construcción en el peor caso, con margen. Trasladar los trabajos de tamaño excesivo a una cola asíncrona que escriba en almacenamiento de objetos: la misma sección de dimensionamiento muestra el patrón.
  • Habilitar opcache en los workers de larga duración con la validación de marcas de tiempo desactivada. La sección de opcache de la receta de Docker recoge los valores ini de producción.
  • Cuando la memoria o el rendimiento se desvíen tras el lanzamiento, empezar por la tabla de decisión de síntoma a palanca.

Un Document es de un solo uso. Construirlo, escribirlo una vez y dejar que salga del ámbito; crear una instancia nueva por cada petición o por cada trabajo en cola. Compartir únicamente los registros de ámbito de proceso —FontRegistry e ImageRegistry— creándolos una sola vez en el arranque del worker. Esto se corresponde con el modelo por petición y por trabajo de PHP-FPM, los workers en cola y los servidores de aplicaciones de larga duración.

Tratar el HTML como no confiable, especialmente cualquier contenido influido por el usuario. Elegir la ruta establece el límite: de forma predeterminada, el pipeline integrado no ejecuta scripts ni obtiene recursos remotos, mientras que cada puente renderiza a través de un navegador o de un servicio de red. Antes de exponer un puente al tráfico de producción, revisar su página de seguridad y operaciones:

NextPDF no publica objetivos de nivel de servicio (SLO); derivar los propios a partir de las métricas de duración del renderizado y de memoria que se miden más abajo.

Instrumentar la vía de renderizado antes del primer incidente, no después.

  • Leer una vez la política de soporte de versiones y, a partir de ahí, ajustar las versiones a ella. Define el contrato de versionado semántico, las etiquetas de estabilidad, el ciclo de vida de la obsolescencia y el vocabulario de ciclo de vida (active, lts, maintenance, frozen, eol) que utiliza este manual.
  • Confirmar composer.lock para que cada worker desplegado resuelva la misma versión del motor: la página de instalación expone esta disciplina.
  • Revisar el registro de cambios antes de cada incremento de versión.

Puntos de entrada para el triaje de incidentes

Sección titulada «Puntos de entrada para el triaje de incidentes»

Para un incidente de un puente de renderer (un fallo de Chrome, una caída de Gotenberg, un error de renderizado en el edge), empezar por la sección de modos de fallo de ese puente en Reforzar la superficie del renderer.