“NoSQL Database adalah” ?

NoSQL adalah suatu evolusi dalam dunia database. NoSQL bukan berarti No melainkan Non stop SQL. Jika SQL diibaratkan dengan relational database maka NoSQL adalah non-relational database. NoSQL dikembangkan pertama kali pada tahun 1998 oleh Carlo Strozzi. Lalu pada tahun 2009, Eric Evans memperkenalkan kembali teknologi NoSQL ini.

Apakah yang dimaksud dengan Non Stop SQL itu sendiri?

Ini adalah suatu perkembangan dari database rational yang telah ada dan digunakan mulai tahun 1970-an sampai sekarang. Mengapa perkembangan database rational ini dibutuhkan dan pada akhirnya membuat suatu sistim database baru bernama NoSQL? Untuk bisa memahami alasan mengapa sampai ada NoSQL, kita bisa melihat perkembangan internet dan aplikasi-aplikasinya selama 10-15 tahun terakhir ini.

Pada 10-15 tahun yang lalu, jumlah user pengguna internet dan juga jumlah transaksi data pada aplikasi-aplikasi yang ada tidaklah sebanyak saat ini dan database relational yang telah ada sudah sangat mencukupi untuk mengatur transaksi data karena secara umum mereka mendukung operasi transaksi, yang mengijinkan kita mengubah 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, mengubah data seperti operasi insert, update dan delete.

Namun, dengan semakin berkembanganya jaman terutama semakin berkembangnya dunia internet, telah membuat perubahan besar pada aplikasi-aplikasi yang digunakan di komputer serta berimbas pula pada manajemen datanya. Setiap hari, semakin banyak user yang aktif di internet dan menggunakan berbagai aplikasi yang terhubung dengan internet, semakin banyak data yang harus diatur oleh database dan semakin sulit bagi sebuah database relational untuk terus mengelola datanya karena akan semakin banyak timbul masalah seperti redudansi data dll.

Bahkan 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. Dan itu pun juga belum mampu mengurangi kesulitan-kesulitan yang muncul dalam melakukan manajemen data dalam jumlah yang sangat besar jika menggunakan database relational.

Google, Amazon, Facebook, and LinkedIn adalah perusahaan-perusahaan besar pertama yang mengetahui batasan-batasan yang ada pada relational database untuk dapat mendukung kebutuhan aplikasi-aplikasi baru yang terus dikembangkan. Hingga pada akhirnya, mereka membuat sebuah manajemen data yang baru. Muncullah Open Source NoSQL, proyek database yang dibentuk untuk meningkatkan kinerja perusahaan-perusahaan yang menjadi pelopor dan berbagai perusahaan komersial yang menjalin kerja sama dengan proyek ini setelahnya. Apa yang membuat NoSQL berbeda dengan SQL yang berbasis RDBMS atau relational database tadi? NoSQL tidak menggunakan sintaks SQL untuk memyimpan data. Penyimpanan data dalam NoSQL tidak memerlukan skema tabel yang tetap seperti pada relational database.

NoSQL memiliki empat metode, yaitu:

  • Table-oriented, contoh: Google dengan Big Table dan juga Facebook dengan Cassandra,
  • Graph-oriented,
  • Document-oriented database, contoh: MongoDB dan juga CouchDB,
  • Key-value store, contoh: Memcache dan Redis .

Metode NoSQL yang pertama adalah table-oriented. Metode ini biasanya hanya dikembangkan oleh yang membuatnya sendiri seperti Google dan Facebook dengan Big Table dan Cassandra-nya. Performa dan hasil dari metode ini tidak perlu kita ragukan lagi karena kita telah tiap hari menggunakan kedua website ini dan meskipun dengan berjuta-juta data yang ada di database mereka, kita tetap bisa memaksimalkan website mereka.

Metode NoSQL yang kedua adalah Document-oriented database. Jenis NoSQL ini merupakan database yang berbasiskan dokumen. Tidak ada tabel, field dan record, yang ada hanyalah koleksi dan dokumen. Koleksi dapat disamakan dengan tabel dan dokumen disamakan dengan field. Berbeda dengan database relasional, pada document oriented database, dokumen dapat memiliki field yang berbeda dengan dokumen lain walaupun berada dalam satu koleksi. Hal ini tidak dapat dilakukan dengan database relasional dimana sebuah record tidak mungkin memiliki field yang berbeda dengan record yang berada dalam satu tabel. Document Oriented digunakan oleh Mongodb, Couchdb, Ravendb, dan lain-lain.

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 terutama korporasi atau perusahaan-perusahaan besar yang menggunakan data yang banyak?

Pada saat ini terdapat 3 hal besar yang mempengaruhi perkembangannya yaitu Jumlah User yang Banyak, Jumlah Data yang besar dan yang terakhir teknologi terbaru yaitu cloud computing. Dengan 3 hal besar ini menjadikan sistim database harus mampu:

  1. Data harus bisa bergerak secara flexible,
  2. Harus mampu bergerak secara cepat dengan data dan user yang besar;
  3. Peningkatan performa untuk dapat memuaskan user yang menginginkan pengolahan data yang cepat.

Ketiga hal tersebutlah yang diharapkan mampu didatangkan oleh NoSQL dengan metode-metodenya karena NoSQL memiliki model data yang lebih fleksibel daripada Relational database. Jika pada relational database, memasukkan data pada tabel-tabel yang berhubungan dan di tiap tabel tersebut, terdapat baris dan kolom untuk menyimpan infomasi-informasi yang ada. Referensi tiap tabel yang terelasi berasal dari foreign key dimasing-masing tabel. 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 kompleksitas database tersebut bertambah. Karena jika akan melakukan pencarian data maka data tersebut akan di-lookup atau dicari di banyak tabel yang bisa mencapai ratusan tabel yang tersebar dan menggabungkannya sebelum disajikan di website atau aplikasi.

Map Reduce dan NoSQL (Not Only SQL)

Map Reduce dan NoSQL (Not Only SQL)
MapReduce adalah model pemrogramana rilisan Google yang ditujukan untuk memproses data berukuran raksasa secara terdistribusi dan parallel dalam cluster yang terdiri atas ribuan komputer. Dalam memproses data, MapReduce dibagi menjadi 2 proses utama, yaitu Map dan Reduce. Proses Map bertugas utnuk mengumpulkan informasi dari potongan-potongan data yang terditribusi dalam tiap komputer dalam cluster (kelompok komputer yang saling terhubung). Hasilnya deserahkan kepada proses Reduce untuk diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim ke pengguna.
NoSQL adalah tipe database yang sangat jauh berbeda dengan konsep RDBMS ataupun ODBMS. Perbedaan utamanya sendiri yaitu karena tidak mengenal istilah relation dan tidak menggunakan konsep schema. Dalam NoSQL, setiap tabel berdiri sendiri tanpa tergantung dengan tabel lainnya.
NoSQL Database adalah sebuah database yang bertipe NoSQL, yaitu database ini tidak mengenal istilah relational dan tidak menggunakan konsep schema. Contoh dari NoSQL Database salah satunya adalah MongoDB.
KESIMPULAN
Cloud computing sangat berguna pada saat ini yang berfungsi untuk menyimpan data pada internet. Di dalam cloud computing terdapat map reduce dan NoSQL, dimana MapReduce berfungsi untuk memproses data berukuran besar.

“Distributed computation dalam cloud computing”

distributed-computing

LATAR BELAKANG

Cloud computing merupakan teknologi yang berkembang saat ini, komputasi terdistribusi merupakan salah satu tujuan dari adanya cloud computing itu sendiri. Dengan adanya cloud computing, maka pengaksesan sumber daya secara paralel, para pengguna juga bisa memanfaatkannya secara bersamaan, terdiri dari banyak sistem sehingga jika salah satu sistem crash, sistem lain tidak akan terpengaruh dan juga dapat menghemat biaya operasional karena tidak membutuhkan sumber daya.

Komputasi awan adalah gabungan pemanfaatan teknologi komputer (‘komputasi’) dan pengembangan berbasis Internet (‘awan’). Cloud adalah metafora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer. Sebagaimana awan dalam diagram jaringan komputer tersebut, Cloud dalam Cloud Computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya.

Distributed Computation Dalam Cloud Computing

Secara sederhana, distributed computing dapat diartikan sebagai suatu teknologi yang dapat memecahkan suatu masalah besar ke dalam proses-proses kecil ke banyak komputer untuk kemudian proses kecil itu dipecahkan secara simultan dan apabila sudah didapatkan solusi-solusi kecil maka disatukan kembali dalam satu solusi yang besar dan terintegrasi. Dari tujuannya, distributed computing menghubungkan banyak user dan resource yang bekerjasama memecahkan permasalahan dalam sistem yang terbuka, transparan dan memiliki skalabilitas yang tinggi. Distributed computing mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah komputasi. Dalam distributed computing, masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan oleh satu komputer. Komputer yang saling berinteraksi untuk mencapai tujuan bersama. Sebuah sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan komputer.

Kesimpulan

Cloud Computing merupakan teknologi yang diperlukan saat ini, karena dengan adanya cloud computing ini maka akan memudahkan para pengguna internet dalam menyimpan data mereka.

“PENGERTIAN VIRTUALIZATION ATAU VIRTUALISASI”

Istilah virtualization atau virtualisasi sebenarnya memiliki banyak pengertian. Dalam kamus bahasa Indonesia sendiri belum ditemukan definisi yang jelas tentang virtualisasi. Jika merujuk pada kamus Oxford istilah virtualization merupakan turunan dari kata virtualize yang memiliki makna:

“convert (something) to a computer-generated simulation of reality”

Kalau terjemahan bebasnya:

“mengubah sesuatu (mengkonversi) ke bentuk simulasi dari bentuk nyata yang ada”

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 Ubuntu. Kemudian dengan menggunakan perangkat lunak virtualization semisal Virtualbox kita dapat menginstall dua buah sistem operasi lain sebagai contoh Windows XP dan FreeBSD.

Sistem operasi yang terinstall di komputer secara fisik dalam hal ini GNU/Linux Lubuntu 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 pada 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 dan sudah saya coba secara langsung ialah VMWare ESXi. Adapun contoh yang lain yang ada seperti Microsoft Hyper-V
    • Type 2 berjalan pada sistem operasi diatasnya. Pada tipe ini tentunya guest sistem operasi nya berada di layer diatasnya lagi.

 

Jenis Virtualisasi

Perangkat-Keras

Istilah virtualisasi perangkat-keras mengacu kepada upaya menciptakan mesin virtual yang bekerja layaknya sebuah komputer lengkap dengan sistem operasi. Istilah mesin tuan-rumah(host) mengacu kepada mesin tempat virtualisasi bersemayam sementara istilah mesin tamu(guest) mengacu kepada virtual mesin itu sendiri. Istilah hypervisor mengacu kepada perangkat-lunak atau firmware yang membuat mesin virtual.
Jenis virtualisasi perangkat-keras meliputi:

  • 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.
  • Virtualisasi sebagian: Tidak semua aspek lingkungan disimulasikan tidak semua perangkat-lunak dapat langsung berjalan, beberapa perlu disesuaikan untuk dapat berjalan dalam lingkungan virtual ini.
  • 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.

Virtualisasi desktop

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas

Virtualisasi Desktop merupakan hasil teknologi dengan konsep Virtual Desktop Infrastructure (VDI) yang sedang berkembang. Dimana desktop adalah komputer kerja juga bisa disebut komputer meja yang dipakai untuk kerja sehari–hari dalam satu lokasi bisa di rumah maupun di kantor. Dan lebih diperuntukkan kepada perusahaan dengan karyawan yang menggunakan komputer, sehingga desktop (komputer kerja) tidak lagi harus wujud fisik komputer yang besar tetapi sudah dalam bentuk virtual yang akan dapat diakses dengan model klien-server.

Keunggulan dan kekurangan

Dengan penerapan teknologi virtualisasi desktop di lingkungan perusahaan ataupun penyedia komputasi awan tentu ada pertimbangan–pertimbangan yang harus diperhatikan. Berikut adalah keuntungan–keuntungan penerapan virtualisasi desktop:

  1. Membangun atau provisioning desktop baru secara sistem operasi lebih mudah
  2. Penyerdehanaan sistem operasi dan aplikasi
  3. Mengurangi downtime apabila:
    1. kegagalan hardware
    2. proses migrasi data
  4. Mobile akses dengan data terpusat
  5. Dari pengguna bisa menggunakan platform apapun karena yang dibutuhkan adalah fungsi remote saja.

Sedangkan kekurangannya adalah:

  1. Potensi risiko keamanan jaringan tidak dikelola dengan baik
  2. Kesulitan aplikasi kompleks (seperti multimedia)
  3. Downtime jaringan akan berakibat fatal dan berdampak ke semua user atau pengguna
  4. Ketergantungan konektivitas jaringan publik

 

Komponen IT untuk VDI

Komponen–komponen yang diperlukan perusahaan untuk membuat virtualisasi desktop adalah memahami persyaratan Teknologi Informasi. Teknologi informasi untuk virtualisasi yang diperlukan adalah perangkat keras, perangkat lunak, dan jaringan biasanya menyediakan ukuran pedoman dan referensi arsitektur, bersama dengan total biaya kepemilikan dan kalkulator alat-alat lain untuk membantu memutuskan apa implikasi biaya akan untuk menyebarkan infrastruktur virtual desktop. Saat ini perkembangan teknologi dari perangkat keras sudah sangat mendukung untuk masuk ke dalam virtualisasi desktop. Kemampuan mengadopsi pengenalan hardware yang jumlah besar dan besar pipa jaringan untuk akses dan perubahan yang terjadi di infrastruktur. Berikut yang dibutuhkan dari implementasi virtualisasi desktop:

  1. Server untuk kebutuhan VDI (Virtual Desktop Infrastructure)

Server – server dengan sistem CPU atau Unit Pemroses Sentral dan Memory dengan arsitektur Virtualisasi perangkat keras. Dengan speksifikasi yang besar bisa mengalokasikan menjadi 30 sampai dengan 40 virtual desktop dalam 1 server tentu dengan perhitungan kebutuhan perusahaan. Umumnya dalam 1 virtual desktop dialokasikan 1 GB Virtual Memory yang khusus untuk pengguna yang tidak menggunakan banyak aplikasi bersamaan. Pengalokasian virtual memory tergantung kepada pengguna dan aplikasi yang berjalan di virtual desktop, tentunya berbeda bagi pengguna kantor lingkungan marketing dengan pengguna desain grafis yang lebih membutuhkan kinerja perangkat keras lebih besar.

  1. Network untuk kebutuhan VDI [[Berkas: |350px|right]]

Dibutuhkan jaringan antara server–server, storage, sistem infra, dan klien. Komunikasi jaringan untuk VDI ini menggunakan jaringan LAN (Local Area Network) yang memanfaatkan 1 atau 10GB/s ethernet dan 8GB/s untuk koneksi storage. Sedangkan dari sisi klien bisa dalam LAN (Local Area Network), WAN (Wide Area Network), dan Publik (Internet). Biasanya akses virtual desktop dari luar menggunakan internet minimal dibutuhkan 20-30 kbps dan ini juga tergantung dari pemakaian, seperti bila digunakan untuk menjalankan multimedia dibutuhkan bandwidth yang lebih besar.

  1. Storage untuk kebutuhan VDI

Fokus utama kepada arsitektur dalam penyebaran dan penyimpanan virtual desktop dan data. Bagaimana menghitung kapasitas dan perkembangan data sehari–hari per user/pengguna. Dan tentu perhitungan kecepatan disk untuk menopang kebutuhan virtual desktop yang banyak. Dibutuhkan jumlah kapasitas yang besar untuk membangun virtual desktop yang banyak termasuk dengan aplikasi yang berjalan di virtual desktop tersebut.

  1. Hypervisor dan Perangkat lunak Virtualisasi

Saat ini ada beberapa pemain besar yang fokus dalam dunia bisnis virtualisasi desktop dan berperan dalam kemajuan teknologi virtualisasi desktop. Mereka memiliki teknologi yang hampir sama hanya membedakan adalah kemampuan–kemampuan tambahan yang membuat pengolahan perangkat keras lebih hemat dan mengurangi kompleksitas perangkat keras itu sendiri. Cara pandang dan hasil yang baik adalah mengurangi kompleksitas dari sisi desktop dan user juga tentunya dari kebutuhan perangkat keras itu sendiri. Sebagai contoh adalah Citrix Systems yang memiliki produk XenDesktop dan XenApp, yang saat ini menjadi market leader dalam virtualisasi desktop. Citrix Systems menyempurnakan komputasi awan sampai lever virtualisasi desktop dan aplikasi. Dan yang lain adalah VMware dengan produk View dan Workstation.

PENDAHULUAN

Cloud komputasi atau komputasi awan adalah pengembangan teknologi komputer dengan pengembangan internet, dimana pengembangan IT sangat dimanjakan oleh adanya sistem yang berbasis internet disini.

Komputasi grid

Komputasi grid adalah sumber daya yang dibutuhkan banyaknya komputer yang terdistribusi dan terpisah secara geografis, jadi komputasi grid ini untuk memecahkan masalah bersekala besar, yang dimaksud besar adalah suatu medan yang sangat jauh atau terpisahnya secara geografis yang terhubung atau terdistribusi dihubungkan dengan adanya komputasi cloud.

Virtualisasi

Virtualisasi dibidang komputer adalah sebuah teknologi, yang memungkinkan untuk membuat versi virtual yang bersifat fisik, contohnya sistem operasi, storge data atau sumber daya jaringan. Disini memiliki Hypervisor yang gunanya untuk memproses sebuah software atau firmware.

Distributed Computation dalam Cloud Computing

Mempelajari tentang pengunaan terkoordinasi dari komputer secara fisik terpisah atau terdistribusi, untuk dalam komputasi cloud dimana media dapat berjalan bersamaan pada banyaknya komputer yang terhubung melalui media internet.

Map Reduce danNoSQL (Not Only SQL)

Map Reduce danNoSQL (Not Only SQL) adalah sebuah pemogramaan framework guna untuk membantu user mengembangankan sebuah data yang ukuran besar dapat terdistribusi satu sama lain.

Nosql

Nosql adalah sebuah memcache dari bagian database sederhana yang berisi key dan value. Database ini bersifat struktur storage dimana sistem databasenya yang berbeda dengan sistem database relasional. Nosql tidak membutuhkan skema table dan menghindari operasi join dan berkembang secara horizontal.