Monday, February 18, 2013

Tiga Teknologi Pamungkas 'Mbah Google'


Diantara para pengguna Internet di dunia, atau paling tidak di Indonesia, atau diantara yang membaca artikel ini, adakah yang tidak tahu Google? Dalam usia yang masih sangat muda, Google telah berhasil begitu memasyarakat dan sangat akrab di kalangan para peselancar dunia cyber. Di beberapa tempat Google bahkan telah mendapat julukan yang ditempatkan secara terhormat. Sebut saja di Indoneisia, saya pernah mendengar istilah Mbah Google, yang merujuk pada Google sebagai orang yang sudah matang dalam pengetahuan dan pengalaman. Di Jepang, di kalangan para akademisi, Google biasa disebut Google Sensei (Guru Google), yang menyiratkan bahwa Google itu adalah guru, seseorang yang kaya pengetahuan, tempat bertanya apa saja, dan bisa memberikan jawaban dengan sangat cepat.

Tidak hanya di dunia maya Internet, di dunia nyata pun Google telah menjadi primadona.  Pada tahun 2012 Google telah dinobatkan sebagai tempatkerja terbaik diantara 100 perusahaan terbaik di Amerika. Jauh mengungguli Intel yang berada pada urutan 46, Microsoft pada urutan 76, dan Cisco pada posisi 90.

Pertanyaannya , apa yang telah membuat Google begitu besar dan berjaya?
Dalam artikel “Big Data dan Rahasia Kejayaan Google” dibahas bahwa salah satu rahasianya adalah Google telah mampu memberdayakan Big Data dengan efektif dan efisien jauh mendahului perusahaan manapun, bahkan jauh sebelum istilah Big Data itu muncul. Google memiliki teknologi canggih yang memungkinkannya mampu mengolah dan memanfaatkan Big Data dengan tepat. Teknologi-teknologi tersebut diantaranya adalah Google File System (GFS), Google MapReduce, dan Google Bigtable. GFS telah dikupas cukup detail dalam artikel “GFS:Menggotong-royongkan Ribuan Komputer ala Google”, kemudian MapReduce dalam “MapReduce:Besar dan Powerful Tapi Tidak Ribet” dan Bigtable dalam “GoogleBigtable: Tabel yang Memuat Seluruh Dunia”. Kali ini akan dibahas bagaimana hubungan kerja diantara ketiga system besar dan canggih ini, dan bagaimana Google memanfaatkan masing-masing kelebihannya untuk membangun suatu system yang besar, kuat, cepat dan tentunya dapat diandalkan.

Google File System yang merupakan file system terdistribusi, berada pada lapisan paling bawah dalam system besar yang terdiri atas tiga komponen utama ini. Boleh dikatakan GFS berperan sebagai pondasi yang menjadi landasan tempat berdirinya MapReduce dan Bigtable. GFS sebagai file system yang menyimpan data secara terdistribusi dalam ribuan komputer merupakan media penyimpanan data bagi MapReduce dan Bigtable (Gambar 1). MapReduce dan Bigtable tidak akan bisa berbuat apa-apa tanpa GFS, begitu pula GFS yang dapat dianalogikan sebagai sebuah hardisk drive (HDD) raksasa yang mampu menyimpan jutaan hingga milyaran Gygabytes data digital tak akan banyak berarti tanpa kedua rekannya.


Gambar 1. Struktur Google File System

MapReduce adalah model pemrograman atau pengolahan data yang memproses data secara terdistribusi dan paralel dalam suatu cluster yang terdiri atas ribuan komputer. MapReduce berdiri diatas GFS yang berfungsi sebagai dasarnya(Gambar 2). Oleh karena itu, sudah tentu, GFS sudah harus terinstal pada cluster tempat bekerjanya MapReduce. Cluster tersebut sudah harus berfungsi sebagai Google File System. Salah satu keunggulan MapReduce adalah kemampuannya untuk memproses data berukuran raksasa dengan kecepatan yang berlipat-lipat dibanding system konvensional. Kemudian MapReduce juga dikenal sangat handal, fleksibel dan simple. Walaupun MapReduce menerapkan teknologi komputasi terdistribusi dan paralel yang sangat kompleks, dalam pola kerja dan pengoperasiannya ia dikenal sangat sederhana dibanding system lain yang menerapkan teknologi serupa.


Gambar 2. Hubungan MapReduce dengan GFS

Dalam hal sifat pemrosesan datanya, MapReduce secara khusus unggul dalam hal pemrosesan data yang sifatnya Batch Processing. Apa itu Batch Processing? Sederhananya, Batch Processing merupakan kebalikan dari Interactive Procesing. Dalam Batch Processing, program akan megambil suatu set data sebagai input, memprosesnya, dan memberikan satu set data tertentu sebagai output tanpa intervensi manual dari user. Program berjalan berdasarkan setting yang ditentukan sebelum program dieksekusi. Begitu program dieksekusi, user tidak bisa melakukan intervensi. Program akan berjalan sampai selesai dengan suatu output. Batch Processing biasanya dilakukan untuk memproses data yang tidak berstruktur. Sedangkan pada Interactive Processing,  program akan banyak berkomunikasi dengan user pada saat memproses suatu data. User dapat memberikan masukan ataupun koreksi pada saat program sedang berjalan. Di Google, MapReduce memang digunakan untuk pekerjaan-pekerjaan yang sifatnya Batch Processing, seperti sorting data yang berukuran terabyte dan indexing data dalam skala besar. Google tidak memaksakan MapReduce untuk memproses data secara interaktif karena Google tahu tidak akan efektif.

Untuk memproses data yang harus dilakukan secara interaktif, Google telah menciptakan Bigtable. Google Bigtable adalah system penyimpanan data terdistribusi yang ditujukan untuk mengelola data yang berstruktur dan didesain sebagai system yang handal untuk memproses data dalam skala petabytes dan dalam ribuan mesin (komputer). Google Bigtable dapat dianalogikan sebagai Database Management System yang super besar. Tetapi, Bigtable memiliki perbedaan yang fundamental dengan Relational Database Management System yang sudah sangat dikenal dalam dunia pengolahan data. Google menggunakan Bigtable dalam lebih dari 60 produk-produknya yang sudah mendunia, diantaranya Google Analitycs, Google Finance, dan Google Earth.

Jadi, didalam tubuh Google telah ditentukan pembagian kerja yang jelas dalam hal pemrosesan data yaitu: MapReduce untuk memproses data yang tak berstruktur yang sifatnya Batch Processing, dan Bigtable untuk mengelola data berstruktur yang sifatnya Interactive Processing. Keduanya memiliki kemampuan untuk memproses data dalam ukuran super besar dan bekerja diatas Google File System yang juga besar dan handal (Gambar 3).


Gambar 3. Hubungan MapReduce dan Bigtable dengan Google File System


Referensi

No comments: