Popular Post

Popular Posts

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.

Virtualisasi Cloud Computing

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 MongoDBCassandraCouchDB, 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.
 

Softskill: Map Reduce dan NoSQL

- Copyright © 2013 ASAL ASAL - Devil Survivor 2 - Powered by Blogger - Designed by Johanes Djogan -