LLRT: Sunucusuz işlevler için düşük gecikmeli JavaScript çalışma zamanı
LLRT (Düşük Gecikmeli Çalışma Zamanı), Amazon Web Services'tan, minimal soğuk başlatma gecikmesine ihtiyaç duyan sunucusuz işlevler için inşa edilmiş deneysel bir JavaScript çalışma zamanı. Geleneksel çalışma zamanlarıyla karşılaştırıldığında başlangıç süresini ve bellek kullanımını azaltmak için Rust çekirdeği içinde QuickJS motorunda JavaScript çalıştırır. Ana yetenekler ultra hızlı soğuk başlangıçlar, düşük bellek profili, kısmi Node.js API uyumluluğu ve AWS SDK v3'ün önceden derlenmiş bir alt kümesini içerir. Sunucusuz geliştiriciler ve bulut mimarları LLRT'den en fazla değeri kazanır.
LLRT soğuk başlangıç gecikmesini nasıl azaltır?
LLRT, gereksiz platform özelliklerini atlayarak ve kompakt bir yürütme yolu kullanarak soğuk başlangıçları hedefler. Proje, script yürütmesi için QuickJS kullanır ve başlatma yükünü en aza indirmek için bir Rust çekirdeği kullanır; yazarların bildirdiğine göre bu kombinasyon, Node.js'den 10 kat daha hızlı başlangıç süreleri üretebilir. Bu tasarım, kısa ömürlü sunucusuz işlevler için önemli olan ilk çağrı gecikmesini azaltmak uğruna bazı platform bütünlüğünden feragat eder.
LLRT, yaygın Lambda platform gereksinimlerini karşılıyor mu?
Çalışma zamanı esas olarak sunucusuz yürütme ortamlarıyla uyumlu olacak şekilde Linux x86_64 ve ARM64'ye yöneliktir. Resmi önceden derlenmiş ikili dosyalar, bu hedefler için bulut dağıtımını basitleştiren Linux ve macOS üzerinde yoğunlaşmaktadır. Windows'ta test yapmak, kaynak koddan derleme gerektirir ve bir derleme adımı ekler. Mimarların, Lambda ile uyumlu ortamlar için dağıtım paketleri hazırlarken Linux hedefli derlemeleri dahil etmeleri veya sağlanan macOS/Linux eserlerini kullanmaları gerekir.
LLRT, üretim iş akışlarında benimsemek için güvenli mi?
AWS, LLRT'yi deneysel bir proje olarak etiketler, bu nedenle kritik hizmetler için benimsemek doğrulama gerektirir. Proje performansı için övgü almıştır, ancak tam Node.js standart kütüphanesini uygulamaz ve bu nedenle doğrudan bir değiştirme değildir. Ekiplerin, LLRT tabanlı işlevlere canlı trafik yönlendirmeden önce gerçekçi yük altında entegrasyon ve bağımlılık testleri yapmaları ve hizmet entegrasyonları boyunca davranışı doğrulamaları gerekir.
Mevcut işlevleri taşımak için ekstra araçlara veya uzmanlığa ihtiyacım var mı?
Taşıma, LLRT'nin yalnızca JavaScript yürüttüğü için bir derleme hattı ve API kontrolleri gerektirir. TypeScript, dağıtımdan önce esbuild veya swc gibi bir paketleyici ile dönüştürülmelidir ve Node-standart-kütüphane çağrılarının değiştirilmesi gerekebilir. Önerilen taşıma adımları şunlardır:
- TypeScript'i dönüştür ve bağımlılıkları paketle
- Desteklenmeyen Node-özel çağrıları değiştir
- Bir sahneleme ortamında entegrasyon ve soğuk başlangıç testlerini çalıştır
Benimseme için pratik öneri
LLRT, bir yapı adımı eklemekten ve kapsamlı sahne testleri yapmaktan rahat olan ekipler için uygundur. Öncelikle kritik olmayan, gecikmeye duyarlı işlevler için kullanın ve daha geniş bir dağıtımdan önce uçtan uca davranışı doğrulayın. Her dağıtım sonrası geri alma planı bulundurun ve çağrı metriklerini izleyin, böylece gerilemeler erken tespit edilsin. CI boru hattınıza güven inşa ederken çalışma zamanını deneysel olarak değerlendirin. Tavsiye edilir.