İyi soru! ZeroVM ekibinde çalışıyorum ve umarım herşeyi temizlemeye yardımcı olabilirim!
ZeroVM Docker'a benzer bir kap sağlıyor mu?
Hayır gerçek değil. Docker, korumalı alan sağlamak için LXC ve diğer çekirdek özelliklerini kullanır. ZeroVM tamamen kullanıcı alanında çalışır ve tek bir uygulamada sanal alan oluşturur .
Kısaca, ZeroVM önce çalıştırılacak uygulamayı doğrulayarak ve daha sonra çalıştırarak çalışır. Yürütüldüğünde, uygulama temelde ekstra ek yük olmadan çalışır - arkasında sanal makine yoktur.
Bir uygulamayı doğrulamak için, özel bir x86 makine kodu biçiminde çapraz derlenmelidir. Bu özel form, "güvenli" olduğu için statik olarak doğrulanabilen güzel bir özelliğe sahiptir. Diğer şeylerin yanı sıra, "güvenli", kodun ZeroVM tarafından sağlanan belirli bir bellek bölümünün dışındaki adreslere atlamayacağı anlamına gelir. Program ayrıca normal sistem çağrılarını çağıramaz, sadece ZeroVM tarafından sağlanan çok dar bir sistem çağrısı arayüzünü çağırabilir. Bu doğrulama Google'ın Yerel İstemci projesinden alınmıştır.
Wordpress'i çalıştırmak için ZeroVM'yi nasıl kullanırım? Bunu yapmak ne gibi yararlar sağlar?
Prensip olarak, PHP yorumlayıcısı olan C programını çapraz olarak derleyebilirsiniz. ZeroVM daha sonra sanal alanda PHP yorumlayıcısını başlatabilir ve WordPress'i oluşturan PHP dosyalarını besleyebilir. ZeroVM salt okunur bir bellek içi dosya sistemi sağlar ve bu bir SQLite veritabanını okumak için kullanılabilir. Bu size salt okunur bir WordPress sitesi verecek - çok heyecan verici değil :-)
Ancak, gördüğüm gibi, bu ZerovM için ana kullanım durumu değil. ZeroVM ile kullanım için mevcut veritabanı ağırlıklı uygulamaların yeniden yazılması gerekir. ZeroVM, birçok veri öğesini paralel olarak işlemek istediğiniz, büyük ölçüde ölçeklenebilir sistemler içindir.
Aramanız gereken 1.000.000 e-postanız olduğunu düşünün. Postalar OpenStack Swift veya Amazon S3 gibi bir blok depolama alanında saklanır . Bu, fiziksel dosyaların belirli sayıda depolama sunucusunda depolandığı anlamına gelir. Geleneksel olarak, tüm postaları aramak için bir dizi hesaplama düğümüne indirmeniz gerekir. ZeroVM ve birlikte Swift ile entegrasyon yapabilirsiniz verilere kodu göndermek . Bu, kod, hantal bir sanal makine görüntüsüne kıyasla küçük (bazı megabaytlar) olduğundan ve ZeroVM sanal alanında güvenilmeyen kodu yürütmenin güvenli olması nedeniyle mümkündür.
Dolayısıyla ZeroVM, her talebin farklı veri parçaları üzerinde çalıştığı yüksek düzeyde ölçeklenebilir mimariler içindir.
Bir WordPress sitesi için bu, her blog yayınını ayrı bir veri parçasında saklaması ve her bir yayından sorumlu özel bir ZeroVM örneğine sahip olması gerektiği anlamına gelebilir. Şu anda, dosya sistemi salt okunurdur, ancak onu okuma-yazma yapma planları vardır ve belirli bir blog gönderisinden sorumlu ZeroVM örneği daha sonra yorumlar gibi şeyleri işleyebilir. Önünde trafiği uygun şekilde yönlendirebilen bir yük dengeleyiciye ihtiyacınız olacaktır. Sonuç, mevcut WordPress'ten çok farklı bir mimari, ancak daha ölçeklenebilir bir mimari. Aslında bunu uygulamak şu anda okuyucu için bir egzersiz olarak bırakılmıştır.