Recent post
Archive for April 2017
Jika pada jaman dulu komputer mainframe +
data centernya begitu besar dan memakan banyak resource. Maka dalam
perkembangan selanjutnya muncullah PC hingga laptop yang ukurannya sudah
semakin kecil dan portabel. Begitu pula dengan perangkat server jaman
sekarang. Hingga akhirnya mulai diperkenalkanlah virtualisasi.
Virtualisasi merupakan teknik yang
digunakan untuk membuat suatu objek maya dari sebuah objek nyata, namun
memiliki kemampuan yang sama dengan objek nyata. Salah satunya adalah
perkembangan virtualisasi pada platform IT.
Pada awal kemunculannya, virtualisasi hanya digunakan sebagai trial (percobaan) dari penggunaan sistem operasi.
Kompetisi perkembangannya pun bersifat
proprietary (berlisensi, berbayar dan memiliki sifat pengembangan
tertutup). VMWare memulai kompetisi pada tahun 2001 dengan produknya
VMWare ESX Server, yang sekarang bernama Virtuozzo dan bertengger di
puncak hingga tahun 2006 ketika XEN meluncurkan produknya yang secara
komersial diberi nama XenServer.
Pada tahun 2007, komunitas Open Source
dipimpin oleh Qumranet merilis KVM yang selanjutnya dimasukkan dalam
kernel Linux agar bisa digunakan lebih berkelanjutan.
Deskripsi Pasar Virtualisasi
Kebutuhan akan pengurangan sumber daya
perangkat server menjadi pendorong utama pergerakan ekonomi
virtualisasi. Fleksibilitasnya yang tinggi menjadikan virtualisasi
semakin diminati.
Beberapa solusi virtualisasi bagi pasar tersebut antara lain:
- Hypervisor untuk pembuatan mesin server virtual.
- Teknologi virtualisasi untuk berbagi pakai sumber daya sistem operasi (biasa disebut containers).
- Manajemen administratif untuk virtualisasi server.
- Manajemen yang ditanamkan untuk virtualisasi server, seperti migrasi secara live, otomasi dasar dari beberapa fungsi manajemen administratif virtualisasi.
Komunitas Open Source (Xen, KVM Hypervisor, dll) VS Vendor yang Menanamkan Software Open Source pada Produknya
Xen (www.xen.org) dan KVM
(www.linux-kvm.org) merupakan kelompok open source independen yang
digunakan para pengembang untuk mengembangkan program dalam kategori
bisnis. Jika dibandingkan dengan hasil pengembangan versi vendor, maka
open source yang dihasilkan bisa dikatakan nilainya lebih rendah karena
belum memiliki daya jual tambahan pada sisi pembuatan daur operasi mesin
virtual, optimisasi, perencanaan kapasitas, mobilitas, diagnosa,
monitoring, manajemen penyimpanan, ketersediaan tinggi, portal dan
sebagainya.
Dari pemetaan Analisa Gartner pada tahun 2012 didapatkan hasil sebagai berikut:
Dari pemetaan tersebut, bisa dikategorikan tren pengembang virtualisasi pada tahun 2010 adalah sebagai berikut:
- Zona Leader. Dipimpin oleh VMWare (www.vmware.com) berdasarkan beberapa faktor seperti pemahaman yang tinggi terhadap pasar, strategi produk, model bisnis, inovasi teknologi, kemampuan produk dan eksekusi penjualan.
- Zona Challengers. Pada zona ini terdapat Microsoft (www.microsoft.com/en-us/cloud/default.aspx) yang masih mempelajari kebutuhan pengembangan untuk menjadi pemimpin pasar.
- Zona Visionaries. Dihuni Citrix (www.citrix.com) dengan XEN-nya. Citrix memiliki pemahaman yang cukup baik terhadap pasar dan inovasi yang solid serta strategi yang baik. Jika dalam analisis, produk Citrix hasilnya hampir setara dengan VMWare.
- Zona Niche Player. Zona ini diisi Red Hat, Oracle, dan beberapa pemain lainnya.
Perkembangan Virtualisasi Kini
Virtualisasi merupakan konsep dasar dari
sistem cloud computing. Baik private cloud maupun public cloud.
Berbagai faktor pendukung yang mengangkat virtualisasi hingga ke level
ini. Di antaranya yaitu pertumbuhan beban kerja komputasi, kecepatan
pertumbuhan adopsi pelanggan, peningkatan pemakaian Hosted Virtual
Desktop (HVD) pada server, peningkatan pengguna IaaS (Infrastructure as a
Service), pertumbuhan pasar berkat organisasi-organisasi besar yang
pertama kali menggunakan virtualisasi, dan kematangan produk-produk
virtualisasi yang ditawarkan oleh penyedia virtualisasi.
Hubungan Antara VPS dan Cloud IaaS (Infrastruktur as a Service)
VPS yang meggunakan teknologi
virtualisasi jika ditilik dari konsep dasarnya, sebenarnya sama dengan
Cloud Computing bertipe IaaS yang juga bertype virtualisasi.
Bahkan pada VPS kustomisasinya bisa lebih leluasa. Bedanya, Cloud
Computing mengelevasi teknologi virtualisasi dengan apa yang disebut
“inovasi”. Yaitu kemampuan server agar bisa berada di banyak tempat dan
tetap saling terhubung.
Pada tugas softskill ini akan menjelaskan mengenai Map Reduce dan NoSQL. NoSQL sendiri kurang lebih 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. Selain itu NoSQL
merupakan suatu bahasan yang jauh dari arti kata yang dibaca. Tidak berarti
tanpa sql query. Melainkan bagaimana suatu sql query digunakan seminimal
mungkin dalam suatu program database. Dengan memanfaatkan teknologi NoSQL ini,
diharapkan mampu mengurangi beban server. Selain itu, hal ini juga memudahkan
programmer dalam membuat suatu program dan proses pengembangannya. Penjelasan
lebih mengenai NoSQL database akan dijelaskan pada sub bab dibawah ini.
Database NoSQL, juga
disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan
datadan desain database yang berguna untuk set yang sangat
besar data terdistribusi. NoSQL, yang mencakup berbagai teknologi dan
arsitektur, berusaha untuk memecahkan masalah skala bilitas dan kinerja data
yang besar yang database relasional tidak dirancang untuk
menangani.NoSQL ini sangat berguna ketika perusahaan perlu untuk
mengakses dan menganalisis sejumlah besar data terstruktur atau data yang
disimpan dari jarak jauh pada beberapa virtual server di
awan.
Contoh dari database yang menggunakan konsep NoSQL seperti MongoDB, Cassandra, dan CouchDB.
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. Map-Reduce adalah salah satu konsep teknis yang sangat penting
di dalam teknologi cloud terutama karena dapat diterapkannya dalam
lingkungan distributed computing. Dengan demikian akan menjamin skalabilitas
aplikasi kita.
Salah
satu contoh penerapan nyata map-reduce ini dalam suatu produk adalah yang
dilakukan Google. Dengan inspirasi dari functional programming map
dan reduce Google bisa menghasilkan filesystem distributed yang sangat scalable, Google
Big Table. Dan juga terinspirasi dari Google, pada ranah open source
terlihat percepatan pengembangan framework lainnya yang juga bersifat
terdistribusi dan menggunakan konsep yang sama, project open source tersebut
bernama Apache Hadoop.
NoSQL
adalah istilah untuk menyatakan berbagai hal yang didalamnya termasuk database
sederhana yang berisikan key dan value seperti Memcache, ataupun
yang lebih canggih yaitu non-database relational seperti MongoDB, Cassandra, CouchDB,
dan yang lainnya.
Wikipedia
menyatakan NoSQL 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.
Tutorial Map Reduce pada MongoDB
Berikut adalah video tentang tutorial map reduce pada MongoDB
Desain dan
Struktur, MapReduce itu sederhana.
Dari definisinya, MapReduce mungkin terkesan sangat ribet. Untuk
memproses sebuah data raksasa, data itu harus dipotong-potong kemudian
dibagi-bagikan ke tiap komputer dalam suatu cluster. Lalu proses Map dan proses
Reduce pun harus dibagi-bagikan ke tiap komputer dan dijalankan secara paralel.
Terus hasil akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan
merepotkan.
Beruntunglah, MapReduce telah didesain sangat sederhana alias
simple. Untuk menggunakan MapReduce, seorang programer cukup membuat dua
program yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan
oleh proses Map dan Reduce. Jadi tidak perlu pusing memikirkan bagaimana
memotong-motong data untuk dibagi-bagikan kepada tiap komputer, dan
memprosesnya secara paralel kemudian mengumpulkannya kembali. Semua proses ini
akan dikerjakan secara otomatis oleh MapReduce yang dijalankan diatas Google
File System (Gambar 1).
Gambar 1. Map
dan Reduce
Program yang memuat kalkulasi yang akan dilakukan dalam proses Map
disebut Fungsi Map, dan yang memuat kalkulasi yang akan dikerjakan oleh proses
Reduce disebut Fungsi Reduce. Jadi, seorang programmer yang akan menjalankan
MapReduce harus membuat program Fungsi Map dan Fungsi Reduce.
Fungsi Map bertugas untuk membaca input dalam bentuk pasangan
Key/Value, lalu menghasilkan output berupa pasangan Key/Value juga. Pasangan
Key/Value hasil fungsi Map ini disebut pasangan Key/Value intermediate.
Kemudian, fungsi Reduce akan membaca pasangan Key/Value intermediate hasil
fungsi Map, dan menggabungkan atau mengelompokkannya berdasarkan Key tersebut.
Lain katanya, tiap Value yang memiliki Key yang sama akan digabungkan dalam
satu kelompok. Fungsi Reduce juga menghasilkan output berupa pasangan
Key/Value.
Untuk memperdalam pemahaman, mari kita simak satu contoh. Taruhlah
kita akan membuat program MapReduce untuk menghitung jumlah tiap kata dalam
beberapa file teks yang berukuran besar (Gambar 2). Dalam program ini, fungsi
Map dan fungsi Reduce dapat didefinisikan sebagai berikut:
map(String key, String
value):
//key : nama file
teks.
//value: isi file
teks tersebut.
for each word W
in value:
emitIntermediate(W,"1");
reduce(String key,
Iterator values):
//key : sebuah
kata.
//values : daftar
yang berisi hasil hitungan.
int result = 0;
for each v in
values:
result+=ParseInt(v);
emit(AsString(result));
Hasil akhir dari program
ini adalah jumlah dari tiap kata yang terdapat dalam file teks yang dimasukkan
sebagai input program ini.
Gambar 2.
Menghitung jumlah tiap kata dalam suatu dokumen.
Menjalankan
Contoh Program MapReduce
Untuk lebih jelasnya lagi, kita bisa menjalankan langsung program
ini di PC kita sendiri. Tetapi, bukan dengan software MapReduce milik Google.
Sampai saat ini Google tidak pernah mendistribusikan software MapReduce
miliknya. Namun demikian, Apache telah merilis software open source yang
dikenal dengan nama Hadoop untuk mengebangkan dan menjalankan aplikasi
MapReduce. Secara garis besar Hadoop terdiri atas HDFS (Hadoop Distributed File
System) dan Hadoop MapReduce. HDFS adalah versi open source-nya GFS (Google
File System), dan Hadoop MapReduce adalah versi open source dari Google
MapReduce.
Ada tiga cara untuk menjalankan aplikasi MapReduce dengan
menggunakan Hadoop, yaitu:
1. Dengan menggunakan
Hadoop mode Standalone pada 1 PC Windows.
2. Dengan menggunakan
Hadoop mode Pseudo-Distributed pada 1 PC Linux.
3. Dengan menggunakan
Hadoop mode Terdistribusi Penuh pada beberapa PC Linux.
Cara yang paling mudah mungkin cara yang pertama, karena dapat
dilakukan pada satu PC Windows dan tidak memerlukan setting pada file
konfigurasi Hadoop.
Referensi:
“MapReduce: Simplified Data Processing on Large Clusters”, Jeffrey
Dean and Sanjay Ghemawat, Google Corp. 2004.