Membedah API

Post a Comment

Melanjutkan pada sesi yang kemarin, kali ini membahas tentang, bagaimana kita mengetahui alur kerja libvirt (API) pada vagrant

pertama kita ketahui mengenai konsep API itu bekerja di balik layar
analogi nya begini, ada sebuah host/hypervisor (libvirt-host) dimana didalam nya ada package libvirt,

nah apa itu libvirt ? merupakan sebuah API opensource yang bisa kita sesuaikan sendiri untuk parameternya.
lanjut....
api libvirt di rancang dirancang untuk mengekspos semua resource yang dibutuhkan untuk mengelola dukungan virtualisasi dari beberapa OS.
Objek pertama yang dimanipulasi melalui API adalah "virConnectPtr", yang merupakan koneksi ke hypervisor.
Setiap aplikasi yang menggunakan libvirt akan memanggil salah satu dari virConnectOpen functions (socket).

nah function ini lah yang menentukan parameter yang akan kita gunakan, function ini juga yang akan menyesuaikan dari apa yang kita request... misalkan dari Virdomainptr, virStoragePoolPtr, virNetworkPtr dan
virStoragePoolPtr

virconnectptr juga menentukan variable environment dari connection URI, di dalam connection URI terdapat beberapa driver yang dapat di gunakan, contoh kali ini menggunakan driver dari pada QEMU yang sudah di support oleh libvirt itu sendiri. !emu merupakan sebuah mesin emulator yang mengatur VM

Sebagian besar object yang dimanipulasi oleh libraries juga dapat direpresentasikan menggunakan XML code. hal Ini digunakan terutama untuk membuat objek, tetapi juga bisa membantu untuk mengubah atau menyimpan deskripsi itu kembali.

setelah itu, libvirt mempunya protocol bernama RPC (Remote Procedure Call) untuk menghubungkan dari api ke user (virt-manager, virsh dll)

 

bagaimana jika dengan vagrant?
jika dengan vagrant perlu adanya plugin (support) antara libvirt dangan vagran nya (vagrant-libvirt)
jadi ketika user request melalui protocol rpc yang ada di libvirt ke vagrant, vagrant akan menerima request tersebut dan mengembalikan nya ke libvirt (api), nah dari libvirt itu akan di sesuaikan parameter/function yang di minta seperti VirDomain (domain), VirStorage (penyimpanan), VirNetwork (jaringan) dll, begitupun juga untuk driver nya, jika menggunakan qemu maka nanti akan muncul dalam virt-manager
setelah itu user bisa mengeksekusi dari apa yang di request.

 


lalu apa bedanya dengan HTTP method?  
HTTP Method merupakan metode request dari client, untuk menunjukkan tindakan yang diinginkan yang akan dilakukan ke server.
misalkan untuk meminta data dari server menggunakan perintah GET, untuk menghapus berarti menggukan perintah DELETE

jadi jelas sangat beda, http method hanya mengeksekusi suatu "data" dari request client, sedangkan untuk libvirt, selain menerima request juga bisa untuk sharing modul dan mengatur kapabilitas dari si VM nya


Related Posts

Post a Comment