Ana içeriğe geç
Bulut & Altyapı

Uç bilişim uygulamaları için LaTeX derleme servisi mimarisi paylaşıldı

Öne çıkanlar

  • Cloudflare Workers V8 ortamı, yerel LaTeX ikili dosyalarını doğrudan çalıştıramıyor.
  • Tectonic motoru, kabuk erişimini kapatıp paketleri dinamik indirerek disk alanından tasarruf sağladı.
  • Derleme aşamasında '|| true' kullanımı nedeniyle önbelleğin yüklenmemesi üretimde zaman aşımına yol açtı.

Cloudflare Workers gibi uç bilişim ortamları, V8 yalıtım mekanizması nedeniyle doğrudan işletim sistemi ikili dosyalarını ve yerel dosya sistemini çalıştıramıyor. Bir geliştirici, uç uygulamalarda LaTeX belgelerini PDF'e dönüştürmek amacıyla bağımsız bir konteyner servisi kurarak süreci detaylandırdı. Çözümde, TeX Live yerine paketleri talep anında indiren ve kabuk erişimini engelleyen Tectonic motoru tercih edildi.

Servis, Node.js ve Hono çatısı kullanılarak Cloud Run üzerinde konuşlandırıldı. Her derleme işlemi için fs.mkdtemp ile rastgele adlandırılmış geçici dizinler oluşturuldu ve bellek sızıntısını önlemek amacıyla bu dizinlerin işlem sonunda temizlenmesi sağlandı. Güvenlik tarafında ise derleyiciye aktarılan ortam değişkenleri sınırlandırıldı ve kimlik doğrulama belirteci eksik olduğunda servisin doğrudan kapanmasını sağlayan bir yapı kuruldu.

Konteyner kurulumu sırasında paylaşılan kütüphaneler ve glibc sürüm uyumsuzlukları nedeniyle çeşitli derleme hataları aşıldı. İmaj hazırlama aşamasında önbelleğe alma komutunun sessizce başarısız olması nedeniyle yaşanan 60 saniyelik zaman aşımı sorunu, derleme sırasında üretilen önbellek boyutunu denetleyen bir kontrol mekanizması eklenerek çözüldü.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.