- Hocus (self-host edilebilen GitPod/GitHub Codespaces alternatifi), Firecracker'ı QEMU ile değiştirdi
Firecracker, kısa süre çalışıp sona eren iş yükleri için optimize edilmiştir
- AWS Lambda'da kullanılan hafif, hızlı ve güvenli bir microVM hypervisor'üdür
- O kadar da hafif değildir
- Uzun süre çalışan iş yükleri için kritik olan "dinamik RAM yönetimi" özelliğini sunmaz. Bir kez ayrılan RAM'i host'a geri vermez
- Depolamayı host'a geri döndürme özelliği de yoktur. VM içinde büyük bir dosya oluşturup silseniz bile host'taki boş alanı geri vermez. Tüm VM sürücüsü silinene kadar alanı kullanmaya devam eder
- GPU desteği yoktur ve yüksek performanslı disk I/O da sunmaz
QEMU da kusursuz değildir
- Yapılandırılacak çok fazla şey vardır
- Kullanılmayan RAM'i geri vermek için host'un 3 zorluğu çözmesi gerekir
- Böyle bir özelliğin var olduğunu bilmek (
free page reporting olarak adlandırılır ve elle etkinleştirilmelidir)
- Linux'un DAMON özelliğini anlamak, kullanım amacını ve nasıl yapılandırılacağını bilmek ve bunu destekleyen bir Linux çekirdeği derlemek
- Guest içinde Transparent Huge Pages kullanımını devre dışı bırakmak gerekir; aksi halde VM büyük miktarda belleği geri vermez
- Deneme uygulaması 2 ay sürdü
- Firecracker/QEMU kodunu okuyup
- DAMON'u yapılandırmak için geliştiricilerle e-posta üzerinden yazıştılar
→ (DAMON geliştiricisi Koreli Park Seong-jae'dir.)
Sonuç
- QEMU, genel amaçlı iş yüklerini çalıştırmak için gerekli özelliklere sahiptir
- Ancak yapılandırma zaman ve sabır gerektirir
- Kısa ömürlü, güvenilmeyen iş yükleri için Firecracker iyi bir seçimdir
- Ancak geliştirme ortamınızı VM üzerinde çalıştırmak istiyorsanız Hocus'u kullanabilirsiniz (zor kısmı bizim için zaten hallettik)
3 yorum
Kendi ürünlerini tanıtmaları güzel ama.. AWS servislerini doğrudan kullanmanın daha iyi olduğu düşüncesi de aklıma gelmiyor değil..
ssssut'un dediği gibi Fargate'te de çalışan bir servis olduğu için o kadar da ileri bir durum olmadığını düşünüyorum.
Belleği geri vermemesinin neden sorun olduğunu hâlâ anlayabilmiş değilim. CPU'da çekişme yaşansa bile uygulama sadece yavaşlar, ayağa kalkmasında sorun olmaz ama bellekte bunun bir çözümü yok gibi...
Ek: Firecracker yalnızca AWS Lambda'da değil, uzun süre çalışan ECS Fargate'te de kullanılıyor.
Hacker News görüşü
microvmadlı minimal bir makine tipine sahiptir ve kısa ömürlü guest'ler için tasarlanmıştır.