Senin, 09 Maret 2015

Virtualisasi & No SQL

Virtualisasi

Dalam ilmu komputer, virtualisasi (virtualization) adalah istilah umum yang mengacu kepada abstraksi dari sumber daya komputer. Definisi lainnya adalah "sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal; atau dapat juga termasuk definisi untuk membuat beberapa sumber daya fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber daya logikal.

Dengan virtualisasi, beberapa sistem operasi dapat berjalan secara bersamaan pada satu buah komputer. Hal ini tentunya dapat mengurangi biaya yang harus dikeluarkan oleh sebuah perusahaan. Di masa akan datang, teknologi virtualisasi akan banyak digunakan baik oleh perusahaan yang bergerak dibidang teknologi informasi maupun yang tidak murni bergerak di bidang teknologi informasi namun menggunakan teknologi informasi sebagai sarana untuk memajukan usahanya.

Menurut Alan Murphy dalam papernya Virtualization Defined – Eight Different Ways, menyebutkan setidaknya terdapat delapan istilah dalam penerapan virtualisasi. Diantaranya adalah operating system virtualization, application server virtualization, application virtualization, management virtualization, network virtualization, hardware virtualization, storage virtualization dan service virtualization.

Dalam hardware virtualization, perangkat lunak bekerja membentuk sebuah virtual machine yang bertindak seolah-olah seperti sebuah komputer asli dengan sebuah sistem operasi terinstall di dalamnya. Salah contoh yang mudah misalkan terdapat satu buah komputer yang telah terinstall GNU/Linux Linux Mint. Kemudian dengan menggunakan perangkat lunak virtualisasi misalnya Virtualbox, kita dapat menginstall sistem operasi lain sebagai contoh Windows XP atau FreeBSD.

Sistem operasi yang terinstall di komputer secara fisik dalam hal ini Linux Mint disebut sebagai host machine sedangkan sistem operasi yang diinstall diatasnya dinamakan guest machine. Istilah host dan guest dikenalkan untuk memudahkan dalam membedakan antara sistem operasi fisik yang terinstall di komputer dengan sistem operasi yang diinstall diatasnya atau virtualnya.

Perangkat lunak yang digunakan untuk menciptakan virtual machine pada host machine biasa disebut sebagai hypervisor atau Virtual Machine Monitor (VMM). Menurut Robert P. Goldberg dalam tesisnya yang berjudul Architectural Principles For Virtual Computer Systems pada hal 23 menyebutkan bahwa tipe-tipe dari VMM ada 2 yaitu: 

  • Type 1 berjalan pada fisik komputer yang ada secara langsung. Pada jenis ini hypervisor/VMM benar-benar mengontrol perangkat keras dari komputer host-nya. Termasuk mengontrol sistem operasi-sistem operasi guest-nya. Contoh implementasi yang ada adalah KVM dan OpenVZ. Adapun contoh yang lain seperti VMWare ESXi, Microsoft Hyper-V.
  • Type 2 berjalan pada sistem operasi diatasnya. Pada tipe ini sistem operasi guest berada diatas sistem operasi host. Contoh tipe ini adalah VirtualBox.
Jenis Virtualisasi Perangkat Keras Meliputi :

  1. Para-virtualisasi : Perangkat keras tidak disimulasikan tetapi perangkat-lunak tamu berjalan dalam domainnya sendiri seolah-olah dalam sistem yang berbeda. Dalam hal ini perangkat-lunak tamu perlu disesuaikan untuk dapat berjalan.
  2. Virtualisasi sebagian : Tidak semua aspek lingkungan disimulasikan tidak semua perangkat-lunak dapat langsung berjalan, beberapa perlu disesuaikan untuk dapat berjalan dalam lingkungan virtual ini.
  3. Virtualisasi penuh : Hampir menyerupai mesin asli dan mampu menjalankan perangkat lunak tanpa perlu diubah.
Vitualisasi perangkat-keras harus dibedakan dengan emulasi perangkat-keras. Pada emulasi perangkat-keras sebuah perangkat-keras meniru kerja perangkat-keras lain, sementara pada virtualisasi perangkat-keras sebuah hypervisor (sebuah software) meniru kerja perangkat keras tertentu atau bahkan keseluruhan komputer. Lebih lanjut hypervisor jangan dirancu dengan emulator. Keduanya mempunyai definisi yang sama tapi domain pembicaraannya berbeda.

NO SQL

No SQL adalah sistem menejemen database yang berbeda dari sistem menejemen database relasional yang klasik dalam beberapa hal. NoSQL mungkin tidak membutuhkan skema table dan umumnya menghindari operasi join dan berkembang secara horisontal. Akademisi menyebut database seperti ini sebagai structured storage, istilah yang didalamnya mencakup sistem menejemen database relasional.

Database relasional sudah ada semenjak tahun 70-an sehingga teknologi mereka sudah sangat matang. Secara umum mereka mendukung operasi transaksi, yang mengijinkan kita merubah sebagian data, melakukan kontrol terhadap operasi database, support terhadap constraint seperti unique, primary key, foreign key dan check. Mereka juga memiliki bahasa SQL atau Simplified Query Language untuk mengakses data, merubah data seperti operasi insert, update dan delete.

Walaupun SQL dalam arti sesungguhnya adalah simple atau sederhana, dan developer selama bertahun tahun menggunakannya, tetapi mereka merasa kurang puas bahkan cenderung tidak menyukainya. Alasan lainnya, RDBMS atau Relational Database Management System tidak dapat berkembang horisontal secara baik. Seringnya kita mendapatkan database yang berkembang tetapi secara read-only melalui kemampuan replikasi database dan untuk mendapatkan database yang berkembang horisontal secara read-write itu sangat sulit. Oracle saja sampai perlu membangun ORACLE RAC atau Real Application Cluster, yang menemui banyak tantangan untuk melakukan sinkronisasi data di internal cache melalui inter-koneksi khusus. Faktanya, perubahan data yang terjadi itu memerlukan waktu untuk mengirimkannya ke berbagai sistem. Selama data tersebut belum terkirimkan, kita memakai data yang tidak valid atau stale data/delta data.

Metode NoSQL selanjutnya adalah graph-oriented, yaitu jenis database NoSQL yang menggunakan struktur graph dengan node, edge dan properties untuk menyimpan datanya. Metode ini digunakan oleh Infinite Graph, InfoGrid, Neo4J dan lain-lain.

Yang terakhir adalah key-value store. Hampir sama seperti document-oriented database, yang berbeda adalah media penyimpanannya. Dalam key-value store, data tidak langsung disimpan dalam disk seperti database pada umumnya. Data disimpan dalam memori komputer dan sesekali data dalam memori ditulis ke disk.

Penyimpanan data dalam memori menyebabkan proses query akan lebih cepat, karena tidak perlu lagi mengambil data dari disk. Key-Value Stores, cara ini digunakan oleh REDIS, Tokyo Cabinet, Azure Table Storage dan lain-lain.
Mengapa banyak yang beralih ke NoSQL terlebih koorporasi atau perusahaan – perusahaan besar yang menggunakan data yang banyak. Pada hari ini terdapat 3 hal besar yang mempengaruhi perkembangan ini yaitu Jumlah User yang Banyak, Jumlah Data yang besar dan yang terakhir teknologi terbaru yaitu cloud computing. Dan dengan 3 hal besar diatas juga menjadikan database system harus mampu bergerak secara :
  1. Data harus bisa bergerak secara flexible
  2. Harus mampu bergerak secara cepat dengan data dan user yang besar
  3. Dan yang terakhir peningkatan performa untuk dapat memuaskan user yang menginginkan pengolahan data yang cepat.
Dan ketiga hal tersebutlah yang diharapkan mampu didatangkan oleh NoSQL dengan metode – metodenya. Karena NoSQL memiliki model data yang lebih flexible daripada Relational database. Jika pada relational database memasukkan data pada table – table yang terrelasi dan ditiap table – table tersebut terdapat baris dan kolom untuk menyimpan infomasi – informasi yang ada. Referensi tiap table yang terelasi berasal dari foreign key dimasing – masing table. Sebenarnya cara penyimpanan ini meminialisir penggunaan data karena penyimpanan tiap data hanya pada satu tempat. Tetapi penyimpanan yang kecil ini lama kelamaan akan menjadi besar jika tingkat kekompleksan database tersebut bertambah. Karena jika akan melakukan pencarian data maka data tersebut akan dilook-up atau dicari dibanyak table bahkan bisa mencapai ratusan table yang tersebar dan menggabungkannya sebelum disajikan di website atau aplikasi.



Sumber :
http://id.wikipedia.org/wiki/Virtualisasi
http://dosen.gufron.com/artikel/pengertian-virtualisasi/8/
http://ebbyboooy.blogspot.com/2014/01/jaringan-komputer-menggunakan-teknologi.html
http://ruang-it.com/apa-itu-virtualisasi-2/
http://www.candra.web.id/2014/02/27/pengantar-database-nosql-dan-mongodb/
http://nareswara.com/2011/07/06/apa-itu-nosql-database/
http://en.wikipedia.org/wiki/NoSQL
http://www.mongodb.com/nosql-explained

Tidak ada komentar:

Posting Komentar