- Fly.io tarafından yeni duyurulan ‘Sprites’, mevcut tek kullanımlık sandbox'ların yerini almayı hedefleyen kalıcı bulut bilgisayarı kavramı
- 1~2 saniye içinde oluşturulabiliyor; otomatik boşta kalma moduna geçiş, checkpoint geri yükleme ve 100GB dayanıklı depolama sunuyor
- Mevcut durumsuz konteyner modelinin Claude gibi yapay zeka ajanları için verimsiz olduğuna dikkat çekiyor ve kalıcı bir ortamın gerekli olduğunu vurguluyor
- Gerçek bir örnek olarak, Claude'un Sprite üzerinde SQLite tabanlı bir Go uygulaması (MDM) kurup uzun süre çalıştırdığı deneyim paylaşılıyor
- Yazının sonucu: “Sandbox dönemi bitti, tek kullanımlık bilgisayar dönemi başladı”
- Fly.io, mevcut salt okunur sandbox modelinin artık eski kaldığını söyleyerek bunun yerine ‘Sprite’'ı tanıttı
sprite create komutuyla 1 saniye içinde bir Linux root shell oluşturuluyor
- Sprite'lar 100GB dayanıklı depolama sunuyor; boşta kaldığında otomatik olarak uykuya geçip sonra geri yüklenebiliyor
sprite-env checkpoints create ile tüm sistemin checkpoint'i anında oluşturulabiliyor
sprite checkpoint restore v1 ile 1 saniye içinde geri yükleme yapılabiliyor; Git benzeri sistem düzeyinde sürüm yönetimi mümkün
- Başlıca özellikler
- Yüzlerce instance kolayca oluşturulabiliyor
- Otomatik ücret durdurma (idle metering) ile maliyet düşüyor
- Anycast ağ bağlantısı ile HTTPS URL sağlanıyor
- Tam dayanıklılık korunuyor ve açıkça silinmedikçe kalıyor
Claude ve durumsuz konteynerlerin sınırları
- Günümüzde çoğu bulut ortamı durumsuz (stateless) konteynerler etrafında şekillenmiş durumda
- Veriler yalnızca harici veritabanlarında tutuluyor; amaç sadelik ve ölçeklenebilirlik
- Ancak Claude gibi yapay zeka ajanları bu yapıya pek uygun değil
- Konteynerleri aşmaya veya dışına çıkmaya çalışıyor, tüm “bilgisayara” erişmek istiyorlar
- “Bilgisayar” tanımı olarak dayanıklılık (durability) ve iş bittikten sonra da kaybolmayan bir ortam öne sürülüyor
- Bugünün sandbox'ları bu iki özelliğin de yoksunu
Basitlik Kazanır (Simple Wins)
- Kalıcı bir ortamda geliştirme ortamını yeniden kurmak (
node_modules vb.) gerekmiyor
- Sektör bunu çözmek için snapshot teknolojilerine on milyonlarca dolar yatırım yapıyor
- Ajanların S3, Redis, RDS gibi dış kaynaklara erişebilmesi için gerçek altyapı kurulan örnekler var
- Bu, sandbox'ların kalıcılık eksikliğini aşmak için kullanılan geçici bir çözüm
- Sprite'lar bu karmaşıklığı ortadan kaldırarak dosya yazıldığında olduğu gibi kalan bir ortam sunuyor
- Örnek olarak, Phoenix.new projesinde Fly Machine tabanlı bir ajan uygulama loglarını doğrudan gözlemleyerek hataları düzeltiyor
Galaxy Brain Win: Geliştirme ve operasyonun birleşmesi
- Yazar, Claude ile birlikte SQLite tabanlı bir Go uygulamasını (MDM) Sprite üzerinde geliştirdi
- Anycast URL, MDM kayıt URL'si olarak kullanıldı
- Claude, APNS sertifika ayarlarını bile otomatik yaptı
- Bu uygulama bir aydan uzun süredir Sprite üzerinde stabil şekilde çalışıyor
- “Geliştirme ortamı operasyon ortamıdır, operasyon ortamı da geliştirme ortamıdır (dev is prod, prod is dev)” fikri burada hayata geçiyor
- Çoğu uygulamanın devasa trafik ihtiyacı olmadığını, bunun yerine kişiye özel kalıcı uygulamaların daha önemli olduğunu savunuyor
- Kullanıcıların doğrudan özellik isteyip bunun anında yansıtılabildiği bir yapı
Sandbox'ın sonu ve tek kullanımlık bilgisayarlar çağı
- Fly.io uzun süredir yatay ölçeklenebilir microVM platformları geliştiriyor, ancak sandbox modeli sınırına ulaştı
- Sprite'lar Fly Machines'e benziyor ama yeni bir depolama yığını ve orkestrasyon mimarisi kullanıyor; ayrıca Dockerfile gerekmiyor
- Temel soru şöyle soruluyor:
> “Bir ajan çalıştırabiliyorsanız, salt okunur bir sandbox yerine anında çağrılabilen bir EC2 instance'ı istemez misiniz?”
- Sonuç: “Sandbox dönemi bitti, tek kullanımlık bilgisayar dönemi başladı.”
1 yorum
Hacker News yorumları
İlk başta gerçekten hoşuma gitmişti ama, Fly API ile ilgili diğer deneyimlerimde olduğu gibi bunda da bir şeylerin kırık olduğu hissi vardı
https://sprites.dev/api belgelerindeki örnek komutu aynen çalıştırınca
{"error":"name is required"}yanıtı geliyorAma Create Sprite dokümanındaki tam istek gövdesini kullanınca düzgün çalışıyor
Kişisel iş akışımda bu tür pürüzleri tolere edebilirim ama tüm ekibi etkileyen CI/CD için tereddüt yaratıyor
Fly ekibinden bir ricam var — dokümandaki örneklerin mutlaka otomatik testlerle doğrulanmasını sağlayın
https://sprites.dev/ gerçekten çok ilgi çekici
Benim sevdiğim iki sorunu aynı anda çözüyor
Snapshot özelliği de var; çalıştırdıktan sonra önceki duruma kolayca dönebiliyorsunuz
Ayrıntıları blogumda yazdım → simonwillison.net yazısı
Ayrıca Simon'ın işini daha fazla gelire dönüştürmeye çalıştığını duymak sevindiriciydi. Ne kadar çok kazanç elde ederse dünya o kadar iyi bir yer olur gibi geliyor
Felsefi olarak Fly'ı seviyorum ve ilk günlerinden beri müşterisiyim
Ama CLI ile ilgili işlerde hâlâ bir tedirginlik var. Birkaç haftada bir kullansam bile otomatik güncelleme çok sık devreye girip akışı bozuyor
Sprite CLI'nin de aynı sorunu tekrarlamasından endişe ediyorum
Bu gerçekten ilginç!
Şirkette SSH üzerinden bağlı Claude ile kalıcı bir geliştirme sunucusu kullanıyoruz ama git repo ya da ortam kaybolunca can sıkıcı oluyor
Sprite ile SQLite gibi bir şeyde veri saklayıp URL üzerinden erişilen basit uygulamalar yapmak mümkün gibi görünüyor
Kısa bir süre sonra otomatik olarak yok olan bir yapıysa basit kişisel yazılımlar için mükemmel olabilir
Eğer Vercel preview ortamı gibi, Fly hesabıyla kimlik doğrulaması yapınca URL'yi görebildiğiniz bir özellik olsaydı daha da iyi olurdu
Güzel görünüyor ama Fly'ın diğer ürünleri güvenilirlik ya da olgunluk açısından örnek teşkil etmiyor
API kesintileri ve geçici hatalar sık yaşanıyor, faturalandırma sorunları da yavaş çözülüyor
Örneğin silinmiş instance'lar hâlâ kullanılıyormuş gibi görünüyor ve saatlik ücretler gerçekte olması gerekenin iki katı hesaplanıyor
Phoenix.new ve Sprites gibi yeni yapay zeka ürünleri çıkardılar ama mevcut ürünlerin kalitesini artırmaktan çok yeni ürünlere odaklanıyor gibiler
Uzun zamandır böyle bir geliştirme sandbox'ı istiyordum — kapatmayı unutsam bile yüksek maliyet çıkarmayan bir ortam
Ama birkaç sorun yaşadım
manpath: can't set the localehatası — muhtemelen yerel locale ayarı olduğu gibi aktarılmış$SHELLdeğeri/opt/homebrew/bin/fisholarak ayarlanmıştı. Yerel ortam değişkenlerimin uzak tarafa izinsiz aktarılmış olması biraz rahatsız ediciydiBu gerçekten harika. Uzun süredir beklediğim türden bir DX ve API biçiminde sandbox çalıştırma ortamı
Temel image'ı ya da VM'i özelleştirip gereksiz araçlar olmadan sadece ihtiyacım olan binary'leri dahil etmek isterim
Ya da checkpoint tabanlı olarak sprite klonlama özelliği olsa iyi olurdu. Şu an böyle bir seçenek görünmüyor
Son birkaç aydır Sprites üzerinde çalışmak gerçekten çok keyifliydi
Yakında Elixir tarafındaki bazı bölümleri açık kaynak olarak yayımlayacağız
5 dakikalık bir demo videosu da var → YouTube demosu
Kullanılmayan sprite'ların maliyeti neredeyse yok denecek kadar az. Her yeni iş için yenisini oluşturabilirsiniz
Hiç karar vermek zorunda kalmadan istediğiniz an çalıştırabileceğiniz bir ortamın olması tuhaf ama güzel bir his
Alan adı fly.io olduğu için, ilk başta bunun yerel bir çözüm olduğunu sanmıştım
Self-hosted olmasa bile, Docker ya da bubblewrap'i saran bir yerel VM sarmalayıcısı bekliyordum
ZFS tabanlı IncusOS'u yerel donanımda çalıştırırsanız çok güçlü bir sandbox ortamı elde edersiniz
Belki dokümanda gözümden kaçmıştır ama sprite'ları fork/clone etmek ya da bir checkpoint'i yeni bir sprite'a geri yüklemek mümkün mü diye merak ediyorum
Mesela tek bir sprite'ı şablon olarak kullanıp birden çok tane başlatmak ya da Claude Code'un farklı çözümleri denedikten sonra yalnızca birini bırakıp diğerlerini temizlemesi gibi kullanım senaryoları düşünüyorum
Çıkışta dahil etmek istemiştik ama önce biraz daha gerçek kullanım verisi toplamaya karar verdik