Flexiant Cloud Orchestrator: beraberinde gelenler

Flexiant Cloud Orchestrator: beraberinde gelenler

IaaS (Sanal Veri Merkezi) hizmetlerini sağlamak için Rusoniks ticari bir orkestratör kullanıyoruz Esnek Bulut Orkestratörü (FCO). Bu çözüm, onu genel olarak bilinen Openstack ve CloudStack'tan ayıran oldukça benzersiz bir mimariye sahiptir.

KVM, VmWare, Xen, Virtuozzo6/7 ve aynı Virtuozzo'ya ait konteynerler, hesaplama düğümü hipervizörleri olarak desteklenir. Desteklenen depolama seçenekleri arasında yerel, NFS, Ceph ve Virtuozzo Depolama yer alır.

FCO, tek bir arayüzden birden fazla kümenin oluşturulmasını ve yönetilmesini destekler. Yani, bir fare tıklamasıyla aralarında geçiş yaparak bir Virtuozzo kümesini ve bir KVM + Ceph kümesini yönetebilirsiniz.

FCO, özünde bulut sağlayıcıları için kapsamlı bir çözümdür ve orkestrasyonun yanı sıra tüm ayarlarla birlikte faturalandırmayı, ödeme eklentilerini, faturaları, bildirimleri, bayileri, tarifeleri vb. de içerir. Ancak faturalandırma kısmı tüm Rus nüanslarını kapsayamadığı için, başka bir çözüm uğruna bu kısmın kullanımından vazgeçtik.

Hakların tüm bulut kaynaklarına dağıtılmasına yönelik esnek sistemden çok memnunum: görüntüler, diskler, ürünler, sunucular, güvenlik duvarları - bunların tümü kullanıcılar arasında ve hatta farklı istemcilerin kullanıcıları arasında "paylaşılabilir" ve haklar verilebilir. Her müşteri kendi bulutunda birden fazla bağımsız veri merkezi oluşturabilir ve bunları tek bir kontrol panelinden yönetebilir.

Flexiant Cloud Orchestrator: beraberinde gelenler

Mimari olarak FCO, her biri kendi bağımsız koduna sahip olan ve bazılarının kendi veri tabanına sahip olan birkaç bölümden oluşur.

Ufuk çizgisi – yönetici ve kullanıcı arayüzü
yeşim taşı – iş mantığı, faturalandırma, görev yönetimi
Kaplan zambak – hizmet koordinatörü, iş mantığı ve kümeler arasındaki bilgi alışverişini yönetir ve koordine eder.
XVP Yöneticisi – küme elemanlarının yönetimi: düğümler, depolama, ağ ve sanal makineler.
XVPAgent – XVPManager ile etkileşim kurmak için düğümlere yüklenen bir aracı

Flexiant Cloud Orchestrator: beraberinde gelenler

Konu ilgi uyandırırsa, her bir bileşenin mimarisi hakkında ayrıntılı bir hikayeyi bir dizi makaleye dahil etmeyi planlıyoruz.

FCO'nun temel avantajı “kutulu” yapısından kaynaklanmaktadır. Sadelik ve minimalizm hizmetinizde. Kontrol düğümü için, gerekli tüm paketlerin kurulu olduğu Ubuntu'da bir sanal makine tahsis edilmiştir. Tüm ayarlar yapılandırma dosyalarına değişken değer biçiminde yerleştirilir:

# cat /etc/extility/config/vars
…
export LIMIT_MAX_LIST_ADMIN_DEFAULT="30000"
export LIMIT_MAX_LIST_USER_DEFAULT="200"
export LOGDIR="/var/log/extility"
export LOG_FILE="misc.log"
export LOG_FILE_LOG4JHOSTBILLMODULE="hostbillmodule.log"
export LOG_FILE_LOG4JJADE="jade.log"
export LOG_FILE_LOG4JTL="tigerlily.log"
export LOG_FILE_LOG4JXVP="xvpmanager.log"
export LOG_FILE_VARS="misc.log"
…

Tüm konfigürasyon başlangıçta şablonlarda düzenlenir, ardından oluşturucu başlatılır
#build-config bir vars dosyası oluşturacak ve hizmetlere yapılandırmayı yeniden okuma komutunu verecek. Kullanıcı arayüzü güzel ve kolayca markalanabilir.

Flexiant Cloud Orchestrator: beraberinde gelenler

Gördüğünüz gibi arayüz kullanıcı tarafından kontrol edilebilen widget'lardan oluşuyor. Sayfaya kolayca widget ekleyip/kaldırabilir, böylece ihtiyaç duyduğu kontrol panelini oluşturabilir.

Kapalı yapısına rağmen FCO son derece özelleştirilebilir bir sistemdir. İş akışını değiştirmek için çok sayıda ayar ve giriş noktası vardır:

  1. Özel eklentiler desteklenir; örneğin, kullanıcıya sağlamak için kendi faturalandırma yönteminizi veya kendi harici kaynağınızı yazabilirsiniz.
  2. Belirli olaylar için özel tetikleyiciler desteklenir; örneğin, ilk sanal makinenin oluşturulduğunda istemciye eklenmesi
  3. Arayüzdeki özel widget'lar desteklenir; örneğin, bir YouTube videosunun doğrudan kullanıcı arayüzüne yerleştirilmesi.

Tüm özelleştirmeler Lua'yı temel alan FDL'de yazılmıştır. Lua'yı tanıyorsanız FDL ile ilgili hiçbir sorun yaşanmayacaktır.

İşte kullandığımız en basit tetikleyicilerden birine bir örnek. Bu tetikleyici, kullanıcıların kendi görsellerini diğer istemcilerle paylaşmasına izin vermez. Bunu bir kullanıcının diğer kullanıcılar için kötü amaçlı bir görüntü oluşturmasını önlemek için yapıyoruz.

function register()
    return {"pre_user_api_publish"}
end
   
function pre_user_api_publish(p)  
    if(p==nil) then
        return{
            ref = "cancelPublishImage",
            name = "Cancel publishing",
            description = "Cancel all user’s images publishing",
            triggerType = "PRE_USER_API_CALL",
            triggerOptions = {"publishResource", "publishImage"},
            api = "TRIGGER",
            version = 1,
        }
    end

    -- Turn publishing off
    return {exitState = "CANCEL"}
   
end

Register işlevi FCO çekirdeği tarafından çağrılacaktır. Çağrılacak fonksiyonun adını döndürecektir. Bu fonksiyonun “p” parametresi çağrı içeriğini saklar ve ilk çağrıldığında boş olacaktır (nil). Bu da tetikleyicimizi kaydetmemizi sağlayacak. TriggerType'ta, tetikleyicinin yayınlama işleminden ÖNCE çağrıldığını ve yalnızca kullanıcıları etkilediğini belirtiriz. Elbette sistem yöneticilerinin her şeyi yayınlamasına izin veriyoruz. TriggerOptions'ta, tetikleyicinin etkinleşeceği işlemleri ayrıntılarıyla anlatıyoruz.

Ve asıl önemli olan return {exitState = “CANCEL”}, tetikleyicinin geliştirilmesinin nedeni de budur. Kullanıcı görselini kontrol panelinde paylaşmaya çalıştığında başarısızlıkla sonuçlanacaktır.

FCO mimarisinde herhangi bir nesne (disk, sunucu, görüntü, ağ, ağ bağdaştırıcısı vb.), ortak parametrelere sahip bir Kaynak varlığı olarak temsil edilir:

  • Kaynak UUID'si
  • kaynak adı
  • kaynak tipi
  • Kaynak sahibi UUID'si
  • kaynak durumu (etkin, etkin değil)
  • kaynak meta verileri
  • kaynak anahtarları
  • Kaynağa sahip olan ürünün UUID'si
  • kaynak VDC'si

Tüm kaynakların aynı prensibe göre çalıştığı bir API kullanılarak çalışırken bu çok kullanışlıdır. Ürünler sağlayıcı tarafından yapılandırılır ve müşteri tarafından sipariş edilir. Faturamız yan tarafta olduğundan müşteri istediği ürünü panelden serbestçe sipariş edebilir. Daha sonra faturalandırmada hesaplanacaktır. Ürün, saat başına bir IP adresi, saat başına ek GB disk veya yalnızca bir sunucu olabilir.

Anahtarlar, onlarla çalışmanın mantığını değiştirmek amacıyla belirli kaynakları işaretlemek için kullanılabilir. Örneğin Weight anahtarıyla üç fiziksel düğümü işaretleyebilir, bazı istemcileri de aynı anahtarla işaretleyebilir, böylece bu düğümleri kişisel olarak bu istemcilere tahsis edebiliriz. Bu mekanizmayı VM'lerinin yanında komşu sevmeyen VIP istemciler için kullanıyoruz. İşlevselliğin kendisi çok daha yaygın olarak kullanılabilir.

Lisanslama modeli, fiziksel bir düğümün her işlemci çekirdeği için ödeme yapılmasını içerir. Maliyet aynı zamanda küme türlerinin sayısından da etkilenir. Örneğin KVM ile VMware'i birlikte kullanmayı planlıyorsanız lisans maliyeti artacaktır.

FCO tam teşekküllü bir üründür, işlevselliği çok zengindir, bu nedenle ağ bölümünün işleyişinin ayrıntılı bir tanımını içeren birkaç makaleyi aynı anda hazırlamayı planlıyoruz.

Bu orkestratörle birkaç yıldır çalıştığımız için onu çok uygun olarak değerlendirebiliriz. Ne yazık ki, ürün kusursuz değil:

  • veritabanını optimize etmek zorunda kaldık çünkü içindeki veri miktarı arttıkça sorgular yavaşlamaya başladı;
  • bir kazadan sonra, bir hata nedeniyle kurtarma mekanizması çalışmadı ve talihsiz müşterilerimizin arabalarını kendi komut dizimizi kullanarak kurtarmak zorunda kaldık;
  • Düğümün kullanılabilirliğini tespit etmeye yönelik mekanizma kodun içine yerleştirilmiştir ve özelleştirilemez. Yani bir düğümün kullanılamazlığını belirlemek için kendi politikalarımızı oluşturamayız.
  • Günlük kaydı her zaman ayrıntılı değildir. Bazen, belirli bir sorunu anlamak için çok alt bir düzeye inmeniz gerektiğinde, bazı bileşenlerin nedenini anlamanız için yeterli kaynak kodunuz yoktur;

TOPLAM: Genel olarak ürünün izlenimleri iyidir. Orchestrator geliştiricileriyle sürekli iletişim halindeyiz. Adamlar yapıcı işbirliğine yatkın.

Basitliğine rağmen FCO geniş işlevselliğe sahiptir. Gelecek yazılarımızda aşağıdaki konulara daha derinlemesine değinmeyi planlıyoruz:

  • FCO'da ağ oluşturma
  • canlı kurtarma ve FQP protokolü sağlama
  • kendi eklentilerinizi ve widget'larınızı yazma
  • Load Balancer ve Acronis gibi ek hizmetleri bağlama
  • destek olmak
  • düğümleri yapılandırmak ve yapılandırmak için birleşik mekanizma
  • sanal makine meta verilerini işleme

ZY Başka yönlerle ilgileniyorsanız yorumlara yazın. Bizi izlemeye devam edin!

Kaynak: habr.com

Yorum ekle