Üretim operasyonları
Bir bakışta
“Bir bakışta” başlıklı bölümBu sayfa, NextPDF’i üretime taşımak ve orada tutmak için kontrol listesidir. Kılavuzu derler: her madde, ayrıntının bulunduğu sayfaya bağlanır; böylece burada doğrular, orada okursunuz. Dağıtım öncesi kontrol listesi bölümünü ilk sürümden önce baştan sona uygulayın. İkinci gün operasyonlarının bir parçası olarak Yükseltme ritmi ve Olay triyajı giriş noktaları bölümlerini yeniden gözden geçirin.
Dağıtım öncesi kontrol listesi
“Dağıtım öncesi kontrol listesi” başlıklı bölüm- Çalışma zamanını doğrulayın: NextPDF, PHP
>=8.4 <9.0gerektirir. Composer, bu aralığın dışındaki her şeyi reddeder. Bkz. Kurulum. -
php -mile altı gerekli uzantıyı doğrulayın:ext-mbstring,ext-zlib,ext-intl,ext-gd,ext-curlveext-openssl. Kurulum sayfası, her birinin ne yaptığını açıklar. - Tek seferlik bir ortam denetimi için
vendor/bin/nextpdf doctorçalıştırın (PHP sürümü, uzantılar ve font kullanılabilirliği tek bir raporda). - Donanımı boyutlandırmadan önce işleme yolunuza karar verin. Süreç içi
işlem hattı (
writeHtml()) ek bir hizmet gerektirmez. Artisan, Gotenberg ve Cloudflare’in her biri, çalıştırmanız için bir tarayıcı veya ağ hizmeti ekler. Karar vermek için Yolunuzu seçin sayfasını kullanın. - Bir işleyici köprüsü seçtiyseniz, yayına almadan önce onun güvenlik ve operasyon sayfasını okuyun. Bkz. İşleyici yüzeyini sağlamlaştırma.
- Yalnızca işlediğiniz fontları derleme zamanında paketleyin, başka hiçbir şeyi değil. Bkz. Üretimde font sağlama.
Kaynak boyutlandırma
“Kaynak boyutlandırma” başlıklı bölümOrtalamaya göre değil, ürettiğiniz en büyük belgeye göre boyutlandırın.
getPdfData(), Portable Document Format (PDF) belgesinin tamamını bellekte
oluşturur ve tek bir string olarak döndürür.
- Çalışan veya işlev belleğini serverless boyutlandırma rehberinden ayarlayın: birkaç sayfalık bir belge için 512–1024 MB rahatlıkla yeterlidir; görsel ağırlıklı veya çok sayfalı belgeler daha fazlasına ihtiyaç duyar.
- Zaman aşımlarını, en kötü durum oluşturma süresinin üzerinde, pay bırakarak ayarlayın. Aşırı büyük işleri nesne depolamaya yazan asenkron bir kuyruğa taşıyın — aynı boyutlandırma bölümü bu deseni gösterir.
- Uzun ömürlü çalışanlarda, zaman damgası doğrulaması kapalı olacak şekilde
opcache’i etkinleştirin. Docker tarifinin
opcache bölümü
üretim
inideğerlerini içerir. - Bellek veya iş hacmi lansmandan sonra kayarsa, belirtiden kaldıraca karar tablosundan başlayın.
Çalışan güvenliği kuralları
“Çalışan güvenliği kuralları” başlıklı bölümBir Document tek kullanımlıktır. Onu oluşturun, bir kez yazın ve kapsamdan
çıkmasına izin verin; her istek için veya her kuyruk işi için yeni bir örnek
oluşturun. Yalnızca süreç ömrü kayıtlarını — FontRegistry ve ImageRegistry
— çalışan başlatılırken bir kez oluşturarak paylaşın. Bu, PHP-FPM’in, kuyruk
çalışanlarının ve uzun süre çalışan uygulama sunucularının istek başına,
iş başına modeliyle eşleşir.
- Başlatma sırası ve döngü başına sıfırlama içeren tarif: Çalışan-güvenli toplu işleme.
- Sözleşme tek yanıtta: Çalışan-güvenli ve iş parçacığı-güvenli mi?
İşleyici yüzeyini sağlamlaştırma
“İşleyici yüzeyini sağlamlaştırma” başlıklı bölümHTML’yi güvenilmez olarak değerlendirin, özellikle kullanıcı etkisindeki her şeyi. Yolunuzu seçin sınırı belirtir: varsayılan olarak yerleşik işlem hattı hiçbir script çalıştırmaz ve hiçbir uzak kaynak getirmez; her köprü ise bir tarayıcı veya bir ağ hizmeti üzerinden işler. Bir köprüyü üretim trafiğine açmadan önce onun güvenlik ve operasyon sayfasından geçin:
- Artisan güvenlik ve operasyonlar — Chrome işleyici yüzeyi.
- Gotenberg güvenlik ve operasyonlar — Gotenberg hizmet yüzeyi.
- Cloudflare güvenlik ve operasyonlar — edge dağıtım yüzeyi.
- Motoru bir hizmet olarak mı çalıştırıyorsunuz? Connect güvenlik ve operasyonlar ekleyin.
Gözlemlenebilirlik
“Gözlemlenebilirlik” başlıklı bölümNextPDF hiçbir hizmet düzeyi hedefi (SLO) yayımlamaz; kendinizinkini aşağıda ölçtüğünüz işleme süresi ve bellek metriklerinden türetin.
İşleme yolunu ilk olaydan önce enstrümante edin, sonrasında değil.
- Süreç içi motor: OpenTelemetry ile gözlemleyin.
- NextPDF Connect dağıtımları: Connect OpenTelemetry tarifi.
- Her işleme için şunları kaydedin: duvar saati süresi, en yüksek bellek, sayfa sayısı, çıktı boyutu ve hata referansındaki istisna kategorisiyle birlikte sonucu.
- Yalnızca hatalara değil, eğilimlere göre uyarı verin: artan oluşturma süreleri, artan en yüksek bellek ve zaman aşımı veya bellek tükenmesi sayıları, bellek ve performans girdilerindeki öncü sinyallerdir.
Yükseltme ritmi
“Yükseltme ritmi” başlıklı bölüm- Sürüm destek politikasını bir kez
okuyun, ardından sürümleri ona bağlı tutun. Semantik sürümleme sözleşmesini,
kararlılık etiketlerini, kullanımdan kaldırma yaşam döngüsünü ve bu kılavuzun
kullandığı yaşam döngüsü sözcük dağarcığını (
active,lts,maintenance,frozen,eol) tanımlar. - Dağıtılan her çalışanın aynı motor sürümünü çözümlemesi için
composer.lockdosyasını commit’leyin — kurulum sayfası bu disiplini belirtir. - Her sürüm yükseltmesinden önce değişiklik günlüğünü inceleyin.
Olay triyajı giriş noktaları
“Olay triyajı giriş noktaları” başlıklı bölümBir işleyici köprüsü olayı için (bir Chrome çökmesi, bir Gotenberg kesintisi, bir edge işleme hatası), İşleyici yüzeyini sağlamlaştırma içinde o köprünün hata modları bölümünden başlayın.
- Sınıf adından değil, belirtiden başlayın: sorun giderme bilgi tabanı.
- Yakalanan bir istisnayı, hata referansındaki kategorisine ve bağlam sözleşmesine eşleyin.
Ayrıca bkz.
“Ayrıca bkz.” başlıklı bölüm- Üretimde NextPDF’i işletmek — motorun yük altında neden bu şekilde davrandığına dair Insider_ makalesi.
- Bir NextPDF uygulamasını konteynerleştirin — üretim Docker imajı, baştan sona.
- Serverless üzerinde dağıtım — Lambda, Cloud Run ve App Runner ayrıntıları.
- Connect üzerinde çalışan-güvenli işleme — sunucuya uygulanan aynı ömür kuralları.