Merhaba;

Bugün sizlere “Oracle Ravello Cloud Service” ile ilgili bilgiler aktarmaya çalışacağım.  Ravello’yu bir “cloud” yapısı olarak düşünmek doğru olur. “VMware” ve “KVM” iş yüklerinizi olduğu şekliyle hiçbir değişikliğe gerek kalmadan “public cloud” üzerinde çalıştırmanıza imkan sağlar. Ravello sayesinde, VM’lerinizi veya “network” konfigürasyonunuzu değiştirmeye gerek kalmadan “Public Cloud” üzerinde çalışabilirsiniz. Bu özellik sayesinde, veri merkezinizde çalışan mevcut uygulamalarınızı çevik bir şekilde “migration” maliyetlerinizi en aza indirgeyerek “public cloud” üzerine aktarabilirsiniz.

Ravello, “VMware” ve “KVM” iş yüklerinizi sadece “Oracle Public Cloud” üzerine taşımanıza imkan sağlamaz. Aynı zamanda “AWS” ve “Google cloud” üzerine de iş yüklerinizi taşıyabilirsiniz. Ravello bize ne tür kazançlar sağlayabilir? Ravello, “cloud enabled” hipervizör olduğu için, bu hipervizör HVX olarak isimlendiriliyor, sanallaştırılmış “VMware” ve “KVM” iş yüklerinizi storage/network’ün yeniden konfigürasyonuna gerek kalmadan “public cloud” üzerine taşıyabilirsiniz. İş ihtiyaçlarının hızlı değişimi sonucunda, üretim ortamındaki uygulamalarınızın pek çok kopyasını development, UAT,  test amaçlı oluşturmanız gerekebilir. Ravello blueprint özelliği ile veri merkezinde çalışan uygulamalarınızı olduğu şekliyle ortama sadık kalarak “Cloud” üzerinde hızlı bir şekilde çalıştırabilirsiniz.  Böylelikle iş ihtiyaçlarınızı zaman kaybetmeden karşılayabilirsiniz. Aynı zamanda VMware iş yükünüzü Ravello ortamına taşıdığınızda, CapEX ve OpEx maliyetlerinden hem ESX hipervizör için hemde Vsphere gibi yönetim araçları için tasarruf etmiş olacaksınız. Yine önemli bir kazanç, Ravello, ortamı olduğu şekliyle “Cloud” üzerine taşıdığı için uygulamalarınızı “Cloud” ortamına taşımadan önce yapacağınız testlerden maliyet avantajı yakalamanıza imkan sağlamasıdır.

Ravello, HVX olarak isimlendirilen dağıtık yapıdaki hipervizör altyapısını kullanan bir mimariye sahiptir. Bu sayede, multi-VM uygulamalarını enkapsülate ederek herhangi bir “Cloud” üzerinde çalışmasını sağlar. Oracle Public cloud, Amazon Web Services, Google Compute Engine bu ortamlara örnektir. HVX, üç bileşenden ve bir yönetim katmanından oluşur. Bu bileşenler, “high-performance nested virtualization engine (nested hypervisor)”, “software-defined-network” ve “storage overlay” teknolojileridir. Yönetim katmanı, bu bileşenleri yönetir, kullanıcı arabirimi ve API sağlar. Ravello’nun yapısını Şekil 1.’deki gibi özetleyebiliriz.

Şekil1. Ravello’nun yapısı.

HVX’in ana bileşeni, “high performance nested hypervisor veya Virtual Machine Manager (VMM)”dır. VMM, sanallaştırılmış donanım üzerinde “guest” lerin değiştirilmeden çalıştırılmasına olanak sağlar. VMware ESX, KVM, Xen gibi geleneksel hipervizör teknolojileri, fiziksel x86 donanımı üzerinde çalışır ve modern CPU’ların sunduğu sanal özellikleri (“virtualization extensions”) kullanır. Diğer taraftan, HVX, sanal makine içinde çalışan, “nested” bir hipervizördür (“nested hypervisor”). Bu durumda, “virtualization extension”, kullanılabilir durumda değildir. Bunun yerine, HVX, “Binary Translation” olarak isimlendirilen yüksek performanslı sanal yapıların oluşturulmasına olanak sağlayan bir teknoloji kullanır. Bu teknoloji, “virtualization extension” lara ihtiyaç duymaz. Şekil 2., “nested virtualization” için görsel bir farkındalık oluşturabilir.

 

Şekil 2. Nested Virtualization Engine

x86 mimarisi üzerinde çalışan sanal yapıda, hipervizör, guest işletim sistemi sanki kendi donanımını kullanıyor gibi bir yapı oluşturur. Aslında hipervizörün yaptığı şeye bir illüzyon gözüyle de bakılabilir. Donanım, hipervizör tarafından paylaştırılır ve birden fazla sanal makine aynı “host” üzerinde çalışır. “Virtualization extension” kullanılabilir olduğunda, bu illüzyonu yapmak için en basit yöntem, “trap ve emulate” yapısını kullanmaktır. Hipervizör üzerinde çalışan işletim sistemi, “user-level” prosess gibi çalışır. Yani, “Bare Metal” yapı üzerinde çalışan bir işletim sisteminin sahip olduğu aynı imtiyazlara sahip değildir. Bunun yanısıra, işletim sistemi sanal yapı için değiştirilmediğinden, elbette işletim sistemi, normalde “bare metal” üzerinde yapacağı belli işler için  sahip olduğu imtiyazların sanal yapı üzerinde çalıştığında olmadığını bilemez. Yani, işletim sistemi, bazı “privileged” talimatlar çalıştırdığında, “bare metal” yapı üzerinde “privileged veya kernel” modda olmalıdır ki bu talimatları çalıştırabilsin.  Bu durumda, bu talimatlar bir “trap” oluşturur. Bu “trap” ler hipervizöre gider. Hipervizör, işletim sisteminin beklenilen fonsiyonunu yerine getirir (“emulate”). Bu mekanizma, “trap ve emulate” mekanizması olarak çağrılır.

Bu kısmı özetleyecek olursam, her işletim sistemi, “bare metal” yapı üzerinde çalıştığını düşünür. Bu nedenle, doğru imtiyazlara sahip olduğunu düşünerek belli imtiyazlı talimatları çalıştırmaya çalışır. Ama aslında işletim sistemi, doğru imtiyazlara sahip değildir çünkü hipervizörün üzerinde “user-level” proses olarak çalışır. Dolayısıyla, kullanıcı seviyesindeki imtiyazdan daha yüksek bir imtiyaz gerektiren bir şey yapmaya çalışırsa, hipervizör üzerinde bir “trap” oluşur. Hipervizör, ilgili fonksiyonelitiyi yerine getirir.

HVX, Ravello’nun hipervizörü, “trap ve emulate” yöntemini değil “binary translation” yöntemini kullanır.  “Binary Translation”, 90’lı yılların başında DEC tarafından tanımlanmıştır. DEC, bu yapıyı, VAX sistemler için yazılan programları, Alpha AXP işlemci üzerinde çalıştırmak için kullandı. “Binary translation software”, VAX programını oluşturan talimatları (“instructions”) analiz ederek Alpha işlemci üzerinde çalışacak eş talimatlara çevirmekteydi. Bu çevirme işlemi, tüm program için öncesinde (“static binary translation”) veya o an çalıştırılan talimatlar  için (“dynamic binary translation”) yapılabilir. Ravello, sanallaştırma için DBT’yi kullanır. Mantığı, VAX-Alpha örneğindekiyle aynıdır. Ama burda bir CPU’dan başka bir CPU’ya talimat çevirisi yapmak yerine, HVX, DBT’yi yukarda bahsettiğimiz illüzyonu kıran talimatları bulmak ve bunları güvenilir eşleniklerine çevirmek için kullanır.

Ravello’nun üç ana bileşeninden bahsetmiştik. İkinci ana bileşeni “overlay network”tür. Aslında bu bileşen, “software-defined network” den başka bir şey değildir.  “Broadcast” ve “multicast frame” leri de destekleyen Layer 2 bir network sunar. Bu bileşen, veri merkezindeki network’ü, Ravello üzerinde aynen aynalar. Yani, Ravello’nun sanal network’ü veri merkezindeki network ile aynıdır. Elbette yine bu yapı üzerinde ihtiyaç duyduğunuz network bileşenlerini oluşturabilirsiniz.

Ravello’nun üçüncü bileşeni, “storage overlay” dir. Bu bileşen sayesinde, “PCI bus” üzerindeki herşey, sanki veri merkezinde (on-premise) ile aynı, hiçbir şey değişmemiş gibi migrasyonu yapılan “guest” e görünür. Aslında özetle, “guest”, migrasyon sonrası da “storage” konfigürasyonunu aynı görür.

Ravello’nun yönetim sistemi, “public cloud” üzerinde çalışan yüksek mevcudiyetli bir enterprise yapıdır. Data kaybını, data bozulmasını önlemek için en iyi endüstri standartlarını kullanır.  Yönetim arabirimi, ölçeklenebilirlik, güvenlik ve yüksek mevcudiyet en ön sırada gözetilerek geliştirilmiştir. Elbette bu geliştirme yapılırken zengin özellikli RESTful API ve web-tabanlı UI fonksiyonlarının olmasına da dikkat edilmiştir.  Bu yapıyı sağlayabilmek için teknolojisinde, “relational”, “non-relational” veritabanları, memory üzerinde dağıtık grid yapısı, asenkron sorgular için “persistent” kuyruk yapıları kullanılırken ölçeklenebilirlik ve yüksek mevcudiyet (high-availability) içinde en iyi  “cloud” yapısı oluşturma endüstri pratikleri kullanılmıştır.

Pek çok firma, test ve “development” ortamları için bile veri merkezlerinde kompleks bir yapıya sahiptir. Genellikle bu ortamlar Vmware gibi sanal yapılar üzerinde çalışmaktadır.  Şekil 3.’de benzer bir yapıyı görebiliriz.

Şekil 3. Multi-VM Enterprise uygulamaların birden fazla “subnet” üzerinde çalıştırıldığı ortam.

Firmalar daima development, testing, QA, Staging, UAT için yeni ortamlara ihtiyaç duyarlar. Bu ortamların hazırlanması çok zaman alıcıdır genelde. Oracle Ravello Cloud Servis ile, firmalar tüm uygulama yapılarını Oracle Public cloud, AWS ve Google Cloud Platform üzerine herhangi bir değişiklik yapmadan taşıyabilirler. Migrasyon için sancı çekmeden bu araç ile taşıma işlemi kolaylıkla yapılır. “Cloud” yapısında, aynı VM’ler, aynı uygulama konfigürasyonu, aynı network yapısı (statik IP, VLAN, DNS gibi servisler dahil) oluşur. Ravello’nun yaptığı şey tüm ortamı enkapsülate ederek “cloud” yapısına herhangi bir değişikliğe gerek kalmadan taşımaktır.  Firmalar, basit bir API çağrısıyla veya bir klik ile ortamın kopyalarını kolaylıkla oluşturabilir. Ek olarak sadece kullandığınız kadar ödeme yaparsınız.

Genel olarak nasıl çalıştığını ifade edersek;

  • VMware’ler herhangi bir değişiklik yapılmadan Oracle Ravello cloud Servisine “upload” edilir.
  • Oracle Ravello cloud Servisi, network’ü otomatik keşfeder. İhtiyaç duyarsanız network bileşenlerini güncelleyebilir, yeni eklemeler yapabilirsiniz.
  • Tüm ortam, Oracle Public Cloud, AWS veya Google Cloud Platform’a taşınır.
  • Blueprint veya snapshot’larla tüm ortamın çoğullanarak hızlıca yeni ortamlar oluşturulur.

 

Yukarda HVX teknolojisinden bahsettim. Özetlemek gerekirse, HVX, “cloud VM”  ortamında çalışması için geliştirilen yüksek performanslı “nested” yapıda bir hipervizördür. VMware cihazlarını simüle edebilir. Yani, herhangi bir dönüşüme gerek kalmadan VMware VM’leri çalıştırabilir. Bu teknoloji, dağıtık network yeteneklerine de sahiptir (virtual switch, virtual router, DHCP, DNS gibi). Bu bileşenler sayesinde, “cloud” üzerinde de veri merkezindeki aynı network topolojisi çalıştırılabilir.

Evet, dostlar, bu yazımı burda tamamlıyorum. Hayatımıza “cloud” ile giren Oracle’ın Ravello Cloud servisi bakalım bize IT dünyasında ne tür kolaylıklar getirecek, ne tür farkındalıklar sağlayacak. Hep birlikte pratikte görüyor olacağız.

 

Asiye Yiğit – 29 Nisan 2017 Cuma

 

Kaynaklar:

 

https://www.ravellosystems.com/technology/nested-virtualization

https://stonefly.com/blog/deep-dive-virtualization

Oracle Ravello Cloud Service Data Sheet

Oracle Ravello Cloud Service for Enterprise Application Development and Testing