Flexiant Cloud Orchestrator: apa yang disertakan dengannya

Flexiant Cloud Orchestrator: apa yang disertakan dengannya

Untuk menyediakan perkhidmatan IaaS (Pusat Data Maya), kami Rusonyx kami menggunakan orkestra komersial Orkestra Awan Fleksibel (FCO). Penyelesaian ini mempunyai seni bina yang agak unik, yang membezakannya daripada Openstack dan CloudStack, yang diketahui umum.

KVM, VmWare, Xen, Virtuozzo6/7, serta bekas daripada Virtuozzo yang sama disokong sebagai hipervisor nod pengiraan. Pilihan storan yang disokong termasuk Storan tempatan, NFS, Ceph dan Virtuozzo.

FCO menyokong penciptaan dan pengurusan berbilang kelompok daripada antara muka tunggal. Iaitu, anda boleh mengurus gugusan Virtuozzo dan gugusan KVM + Ceph dengan menukar antara mereka dengan klik tetikus.

Pada terasnya, FCO ialah penyelesaian komprehensif untuk penyedia awan, yang, sebagai tambahan kepada orkestrasi, juga termasuk pengebilan, dengan semua tetapan, pemalam pembayaran, invois, pemberitahuan, penjual semula, tarif dan sebagainya. Walau bagaimanapun, bahagian pengebilan tidak mampu merangkumi semua nuansa Rusia, jadi kami meninggalkan penggunaannya demi penyelesaian lain.

Saya sangat gembira dengan sistem yang fleksibel untuk mengagihkan hak kepada semua sumber awan: imej, cakera, produk, pelayan, tembok api - semua ini boleh "dikongsi" dan diberikan hak antara pengguna, malah antara pengguna pelanggan yang berbeza. Setiap pelanggan boleh mencipta beberapa pusat data bebas dalam awan mereka dan mengurusnya daripada satu panel kawalan.

Flexiant Cloud Orchestrator: apa yang disertakan dengannya

Dari segi seni bina, FCO terdiri daripada beberapa bahagian, setiap satunya mempunyai kod bebasnya sendiri, dan ada yang mempunyai pangkalan data sendiri.

Skyline – antara muka pentadbir dan pengguna
Jade – logik perniagaan, pengebilan, pengurusan tugas
Harimau – penyelaras perkhidmatan, mengurus dan menyelaras pertukaran maklumat antara logik perniagaan dan kelompok.
XVPManager – pengurusan elemen kluster: nod, storan, rangkaian dan mesin maya.
XPAgent – ejen dipasang pada nod untuk berinteraksi dengan XVPManager

Flexiant Cloud Orchestrator: apa yang disertakan dengannya

Kami merancang untuk memasukkan cerita terperinci tentang seni bina setiap komponen dalam satu siri artikel, jika, sudah tentu, topik itu menimbulkan minat.

Kelebihan utama FCO berpunca daripada sifatnya yang "berkotak". Kesederhanaan dan minimalisme sedia untuk anda. Untuk nod kawalan, satu mesin maya pada Ubuntu diperuntukkan, di mana semua pakej yang diperlukan dipasang. Semua tetapan diletakkan dalam fail konfigurasi dalam bentuk nilai-boleh ubah:

# 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"
…

Keseluruhan konfigurasi pada mulanya diedit dalam templat, kemudian penjana dilancarkan
#build-config yang akan menjana fail vars dan mengarahkan perkhidmatan untuk membaca semula konfigurasi. Antara muka pengguna bagus dan boleh dijenamakan dengan mudah.

Flexiant Cloud Orchestrator: apa yang disertakan dengannya

Seperti yang anda lihat, antara muka terdiri daripada widget yang boleh dikawal oleh pengguna. Dia boleh menambah/mengalih keluar widget dari halaman dengan mudah, dengan itu mencipta papan pemuka yang dia perlukan.

Walaupun sifatnya tertutup, FCO ialah sistem yang sangat boleh disesuaikan. Ia mempunyai sejumlah besar tetapan dan titik masuk untuk menukar aliran kerja:

  1. Pemalam tersuai disokong, sebagai contoh, anda boleh menulis kaedah pengebilan anda sendiri atau sumber luaran anda sendiri untuk memberikan pengguna
  2. Pencetus tersuai untuk acara tertentu disokong, contohnya, menambahkan mesin maya pertama kepada klien apabila ia dibuat
  3. Widget tersuai dalam antara muka disokong, contohnya, membenamkan video YouTube terus ke dalam antara muka pengguna.

Semua penyesuaian ditulis dalam FDL, yang berdasarkan Lua. Jika anda tahu Lua, tidak akan ada masalah dengan FDL.

Berikut ialah contoh salah satu pencetus paling mudah yang kami gunakan. Pencetus ini tidak membenarkan pengguna berkongsi imej mereka sendiri dengan pelanggan lain. Kami melakukan ini untuk menghalang seorang pengguna daripada mencipta imej berniat jahat untuk pengguna lain.

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

Fungsi daftar akan dipanggil oleh kernel FCO. Ia akan mengembalikan nama fungsi yang akan dipanggil. Parameter "p" fungsi ini menyimpan konteks panggilan, dan kali pertama ia dipanggil ia akan kosong (tiada). Yang akan membolehkan kami mendaftarkan pencetus kami. Dalam triggerType kami menunjukkan bahawa pencetus digunakan SEBELUM operasi penerbitan dan hanya mempengaruhi pengguna. Sudah tentu, kami membenarkan pentadbir sistem untuk menerbitkan segala-galanya. Dalam triggerOptions kami memperincikan operasi yang mana pencetus akan dicetuskan.

Dan perkara utama ialah kembali {exitState = “CANCEL”}, itulah sebabnya pencetus dibangunkan. Ia akan mengembalikan kegagalan apabila pengguna cuba berkongsi imej mereka dalam panel kawalan.

Dalam seni bina FCO, sebarang objek (cakera, pelayan, imej, rangkaian, penyesuai rangkaian, dll.) diwakili sebagai entiti Sumber, yang mempunyai parameter biasa:

  • UUID sumber
  • nama sumber
  • jenis sumber
  • UUID pemilik sumber
  • status sumber (aktif, tidak aktif)
  • metadata sumber
  • kunci sumber
  • UUID produk yang memiliki sumber
  • sumber VDC

Ini sangat mudah apabila bekerja menggunakan API, apabila semua sumber berfungsi mengikut prinsip yang sama. Produk dikonfigurasikan oleh pembekal dan dipesan oleh pelanggan. Memandangkan pengebilan kami berada di sisi, pelanggan boleh secara bebas memesan sebarang produk daripada panel. Ia akan dikira kemudian dalam pengebilan. Produk boleh menjadi alamat IP sejam, GB tambahan cakera sejam, atau hanya pelayan.

Kekunci boleh digunakan untuk menandakan sumber tertentu untuk mengubah logik bekerja dengannya. Sebagai contoh, kita boleh menandakan tiga nod fizikal dengan kekunci Weight, dan menandakan beberapa pelanggan dengan kunci yang sama, dengan itu memperuntukkan nod ini secara peribadi kepada pelanggan ini. Kami menggunakan mekanisme ini untuk pelanggan VIP yang tidak menyukai jiran di sebelah VM mereka. Fungsi itu sendiri boleh digunakan dengan lebih meluas.

Model pelesenan melibatkan pembayaran untuk setiap teras pemproses nod fizikal. Kos juga dipengaruhi oleh bilangan jenis kluster. Jika anda bercadang untuk menggunakan KVM dan VMware bersama, sebagai contoh, kos lesen akan meningkat.

FCO adalah produk lengkap, fungsinya sangat kaya, jadi kami merancang untuk menyediakan beberapa artikel sekaligus dengan penerangan terperinci tentang fungsi bahagian rangkaian.

Setelah bekerja dengan orkestra ini selama beberapa tahun, kami boleh menandakannya sebagai sangat sesuai. Malangnya, produk itu bukan tanpa kelemahan:

  • kami terpaksa mengoptimumkan pangkalan data kerana pertanyaan mula perlahan apabila jumlah data di dalamnya meningkat;
  • selepas satu kemalangan, mekanisme pemulihan tidak berfungsi kerana pepijat, dan kami terpaksa memulihkan kereta pelanggan yang malang menggunakan set skrip kami sendiri;
  • Mekanisme untuk mengesan ketiadaan nod disambungkan ke dalam kod dan tidak boleh disesuaikan. Iaitu, kita tidak boleh membuat dasar kita sendiri untuk menentukan ketiadaan nod.
  • pembalakan tidak selalu terperinci. Kadangkala, apabila anda perlu turun ke tahap yang sangat rendah untuk memahami masalah tertentu, anda tidak mempunyai kod sumber yang mencukupi untuk sesetengah komponen memahami sebabnya;

JUMLAH: Secara umum, kesan produk adalah baik. Kami sentiasa berhubung dengan pembangun orkestra. Lelaki itu bersedia untuk kerjasama yang membina.

Walaupun kesederhanaannya, FCO mempunyai fungsi yang luas. Dalam artikel akan datang kami merancang untuk menyelidiki topik berikut dengan lebih mendalam:

  • rangkaian di FCO
  • menyediakan pemulihan langsung dan protokol FQP
  • menulis pemalam dan widget anda sendiri
  • menghubungkan perkhidmatan tambahan seperti Pengimbang Beban dan Acronis
  • sandaran
  • mekanisme bersatu untuk mengkonfigurasi dan mengkonfigurasi nod
  • memproses metadata mesin maya

Z.Y. Tulis dalam komen jika anda berminat dengan aspek lain. Nantikan!

Sumber: www.habr.com

Tambah komen