ZeroVM neyi sanallaştırıyor?


12

Başımı ZeroVM'ye sarmakta biraz sorun yaşıyorum .

Diyelim ki Wordpress'i çalıştırmak istiyorum. Seçeneklerden biri VMWare, Virtualbox, Xen, CoreOS veya benzeri bir şeyi çalıştıran barındırılan bir sanal sunucuyu kiralamaktır. Bu durumda, sanallaştırılan şey sunucu ve donanımıdır. Sanal sunucu sağlandıktan sonra, SSH'yi kullanabilir, hizmetleri başlatabilir ve durdurabilir, makineyi yeniden başlatabilirim vb.

Çevrimiçi okuduğum şeyler ZeroVM'nin uygulamayı sanallaştırdığını söylüyor, ancak bunun ne anlama geldiğini anlamıyorum. ZeroVM benzer bir konteynerin temin mı Docker ?

Yukarıdaki örneğime devam edersek, Wordpress'i çalıştırmak için ZeroVM'yi nasıl kullanırım? Bunu yapmak ne gibi yararlar sağlar?

Wordpress örneğimi paylaşılan bir barındırma ortamına genişletelim.

ZeroVM ana sayfası şunları söylüyor:

Bir ZeroVM Uygulaması veya zapp'a yapılan her istek, bağımsız bir örneğin ortaya çıkmasına neden olur. Her örnek izole edilir ve güvenceye alınır, 5 milisaniyenin altında döner ve istek tamamlandıktan sonra imha edilir. ZeroVM'nin hızı, her bir örnekten, yalnızca tek bir işlemi çalıştırmak için gerekenleri sanallaştırma yoluyla gelir.

Bu, ZeroVM uygulamasına yapılan her talebin yeni bir süreç oluşturduğu anlamına mı geliyor? Bir sunucuda birden fazla ZeroVM uygulaması çalıştırıyorsanız ne olur? İstekler doğru uygulamaya nasıl yönlendirilir?

Yanıtlar:


9

İ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.


4

Kanayan kenar gibi görünüyor. Rackspace, karşılaştırmalı olarak 'güvensiz' olduğu için LXC'de bir kazı alıyor, ancak beyaz kağıtlar konuyla ilgili görünene kadar beklemeye karar vereceğim.

  • ZeroVM Sağlayıcı Docker'a benzer bir kap sağlıyor mu?

From: Info World "ZeroVM ile Docker gibi bir proje arasında bazı belirgin karşılaştırmalar mümkündür, ancak niyetler biraz farklıdır. Docker, çeşitli ortamlarda dağıtım için paketleme ile ilgilidir. ZeroVM, uygulamaların sanallaştırılması için bir yol sağlamakla ilgilidir. tam bir VM çözümünün aşırı olacağı ve gerçekten gerekli olmadığı belirli bir ortamda hafif bir şekilde. "

  • Wordpress'i çalıştırmak için ZeroVM'yi nasıl kullanırım?

Muhtemelen ZeroVM için derlenmek için apache'ye ihtiyacınız olacaktır. Bu tür koşullar altında ne kadar Wordpress kod tabanı kırılacağından emin değilim.

  • Avantajları nelerdir?

Rackspace'in pazarlama departmanı bunun için en iyi örneği yapacak: İşte

  • Hangi zorluklarla karşılaşacağım? (Gelecekteki okuyucuların yararına eklenmiştir)

Yazılım / platform kanama kenarı olduğundan, çalışan kanama yazılımı ile ilgili tüm denemeler ve zorluklar geçerlidir. (Destek için geniş bir kullanıcı tabanı eksikliği dahil). Aynı zamanda yeni bir " Platform. " Yazılım geliştiricileri sanallaştırılmış platformlarla uğraşmaya alışıyor ... ancak bu, donanımın (VMWare. OracleVM, HyperV) ve çekirdek sanallaştırmanın (OpenVZ) ötesinde yepyeni bir sanallaştırma türüdür. Oyunda bu kadar erken bir şey beklendiği gibi çalışmazsa şaşırmayın.


2

Yukarıdaki örneğime devam edersek, Wordpress'i çalıştırmak için ZeroVM'yi nasıl kullanırım? Bunu yapmak ne gibi yararlar sağlar?

ZeroVM aslında PaaS'leri inşa etmek için bir platformdur. Bu nedenle yukarıdaki sorunun "ZeroVM dünyasında" çok az anlamı vardır. Ama birisinin sizin için ZeroVM altyapısını kurduğunu varsayalım (buna "Sağlayıcı" diyecek). Ardından bu altyapının üstünde kendi PaaS veya SaaS'nızı oluşturabilirsiniz. WordPress durumunda: Sağlayıcı size, Sağlayıcının altyapısında herhangi bir kodu çalıştırma yeteneği verirse, kodunuz çalışırken WordPress'i çalıştırabilirsiniz - bunun için ödeme yaparsınız. Kodunuz çalışmadığında - ödeme yapmazsınız. Yani birisi bir wordpress sayfası açtığında, kullanıcıya yanıt gönderildikten sonra, istek için ödeme yapacaksınız - hiçbir şey ödemeyi bırakıyorsunuz. Dahası, her ZeroVM örneği bir istek sunacağından, WordPress sitenizin temelde bir kullanıcıya yalnızca bir sayfa sunması gerekir. Ve sonra, WordPress'in şu anda MySQL veritabanına bir PHP arayüzü olduğu için gerçekten "WordPress" e ihtiyacınız olmadığını ve bir kullanıcı ve bir istek durumunda herhangi bir merkezi veritabanına ihtiyacınız olmadığını iddia ediyorum. Ve bunun gibi.

Bu, ZeroVM uygulamasına yapılan her talebin yeni bir süreç oluşturduğu anlamına mı geliyor?

Evet ve hayır. Nasıl kullanmak istediğinize bağlıdır. Her istek tamamen farklı kod tabanı ile tamamen farklı bir uygulama ise - o zaman evet, yepyeni bir sürece ihtiyacınız olacak. Ancak her istek PHP veya WSGI web uygulamasına yapılan bir çağrı ise, ZeroVM, platformun kurulum süresini kaydederek (örneğin WSGI uygulaması durumunda dosya sistemi + python + wsgi ayarlayarak) daha hızlı bir "arka plan programı" görevi görebilir. ).

İstekler doğru uygulamaya nasıl yönlendirilir?

Şu anda altyapı Swift nesne deposuna entegre edilmiştir . Swift nesnesi isteği, belirli bir kod parçasının yürütülmesini tetikler. Veya belirli bir URL'ye gönderilen POST, POST isteği yükünün yürütülmesini tetikler. Elbette, örneğin bir web sunucusuna veya dağıtılmış kuyruğa başka bir tür entegrasyon mümkündür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.