Pendahuluan
Komputasi awan (cloud
computing) adalah gabungan pemanfaatan teknologi
komputer ('komputasi')
dan pengembangan berbasis Internet ('awan'). Awan
(cloud) adalah metafora dari
internet, sebagaimana awan yang sering digambarkan di diagram jaringan
komputer. Sebagaimana awan dalam diagram jaringan komputer tersebut, awan
(cloud) dalam Cloud Computing juga merupakan abstraksi
dari infrastruktur kompleks yang disembunyikannya. Ia adalah suatu metoda
komputasi di mana kapabilitas terkait teknologi
informasi disajikan sebagai
suatu layanan (as a service), sehingga pengguna dapat mengaksesnya
lewat Internet ("di dalam awan") tanpa mengetahui
apa yang ada didalamnya, ahli dengannya, atau memiliki kendali terhadap
infrastruktur teknologi yang membantunya. Menurut sebuah makalah tahun 2008
yang dipublikasi IEEE Internet Computing "Cloud Computing adalah suatu paradigma di mana informasi secara
permanen tersimpan di server di internet dan
tersimpan secara sementara di komputer pengguna (client) termasuk di dalamnya adalah desktop, komputer tablet, notebook, komputer tembok, handheld, sensor-sensor, monitor dan
lain-lain."
Komputasi awan adalah suatu konsep umum yang
mencakup SaaS, Web 2.0,
dan tren teknologi terbaru lain yang dikenal luas, dengan tema umum berupa
ketergantungan terhadap Internet untuk memberikan kebutuhan komputasi pengguna.
Sebagai contoh, Google Apps menyediakan aplikasi bisnis umum secara daring
yang diakses melalui suatu penjelajah web dengan perangkat lunak dan
data yang tersimpan di server.
Komputasi awan saat ini merupakan trend teknologi terbaru, dan contoh bentuk
pengembangan dari teknologi Cloud
Computing ini adalah iCloud.
1.
Manfaat Cloud
Computing
· Skalabilitas,
yaitu dengan cloud computing kita
bisa menambah kapasitas penyimpanan data kita tanpa harus membeli peralatan
tambahan, misalnya hardisk dll. Kita cukup menambah kapasitas yang
disediakan oleh penyedia layanan cloud
computing.
· Aksesibilitas,
yaitu kita bisa mengakses data kapanpun dan dimanapun kita berada, asal kita
terkoneksi dengan internet, sehingga memudahkan kita mengakses data disaat
yang penting.
· Keamanan, yaitu data kita bisa terjamin keamanan nya oleh
penyedia layanan cloud computing,
sehingga bagi perusahaan yang berbasis IT, data bisa disimpan secara aman di
penyedia cloud computing. Itu juga
mengurangi biaya yang diperlukan untuk mengamankan data perusahaan.
· Kreasi, yaitu para user
bisa melakukan/mengembangkan kreasi atau project mereka tanpa harus mengirimkan
project mereka secara langsung ke
perusahaan, tapi user bisa mengirimkan nya lewat penyedia layanan cloud computing.
· Kecemasan, ketika terjadi bencana alam data milik kita
tersimpan aman di cloud meskipun hardisk atau gadget kita rusak.
2.
Cara Kerja Cloud
Computing
Berikut
merupakan cara kerja penyimpanan data dan replikasi data
pada pemanfaatan teknologi cloud
computing. Dengan Cloud Computing
komputer lokal tidak lagi harus menjalankan pekerjaan komputasi berat
untuk menjalankan aplikasi yang dibutuhkan, tidak perlu menginstal sebuah paket
perangkat lunak untuk setiap komputer, kita hanya melakukan installasi operating system pada satu aplikasi.
Jaringan komputer yang membentuk awan (internet)
menangani mereka sebagai gantinya. Server ini
yang akan menjalankan semuanya aplikasi mulai dari e-mail, pengolah kata,
sampai program analisis data yang kompleks. Ketika pengguna mengakses awan
(internet) untuk sebuah website populer, banyak hal yang bisa terjadi.
Pengguna Internet Protokol (IP)
misalnya dapat digunakan untuk menetapkan dimana pengguna berada (geolocation). Domain
Name System (DNS) jasa kemudian dapat
mengarahkan pengguna ke sebuah cluster server yang dekat dengan pengguna
sehingga situs bisa diakses dengan cepat dan dalam bahasa lokal mereka.
Pengguna tidak login ke server, tetapi mereka login ke layanan mereka
menggunakan id sesi atau cookie yang
telah didapatkan yang disimpan dalam browser mereka. Apa yang user lihat pada browser biasanya datang dari web server.
Webserver menjalankan perangkat lunak
dan menyajikan pengguna dengan cara interface yang
digunakan untuk mengumpulkan perintah atau instruksi dari pengguna (klik,
mengetik, upload dan lain-lain)
Perintah-perintah ini kemudian diinterpretasikan oleh webserver atau diproses oleh server aplikasi. Informasi kemudian
disimpan pada atau diambil dari database
server atau file server dan pengguna kemudian disajikan dengan halaman yang
telah diperbarui. Data di beberapa server disinkronisasikan di seluruh dunia
untuk akses global cepat dan juga untuk mencegah kehilangan data.
Web service
telah memberikan mekanisme umum untuk pengiriman layanan, hal ini membuat service-oriented architecture (SOA)
ideal untuk diterapkan. Tujuan dari SOA adalah untuk mengatasi persyaratan yang
bebas digabungkan, berbasis standar, dan protocol-independent
distributed computing. Dalam SOA, sumber daya perangkat lunak yang dikemas
sebagai "layanan," yang terdefinisi dengan baik, modul mandiri yang
menyediakan fungsionalitas bisnis standar dan konteks jasa lainnya. Kematangan web service telah memungkinkan
penciptaan layanan yang kuat yang dapat diakses berdasarkan permintaan, dengan
cara yang seragam.
3. Contoh Cloud Computing
·
Google
Drive
Google Drive adalah layanan penyimpanan online yang dimiliki Google. Google Drive diluncurkan pada tanggal 24 April 2012. Sebenarnya Google Drive merupakan pengembangan dari Google Docs. Google Drive memberikan kapasitas penyimpanan sebesar 5GB kepada setiap penggunanya. Kapasitas tersebut dapat ditambahkan dengan melakukan pembayaran atau pembelian Storage. Penyimpanan file di Google Drive dapat memudahkan pemilik file dapat mengakses file tersebut kapanpun dan dimanapun dengan menggunakan komputer desktop, laptop, komputer tablet ataupun smartphone. File tersebut juga dapat dengan mudah dibagikan dengan orang lain untuk berbagi pakai ataupun melakukan kolaborasi dalam pengeditan.
Google Drive adalah layanan penyimpanan online yang dimiliki Google. Google Drive diluncurkan pada tanggal 24 April 2012. Sebenarnya Google Drive merupakan pengembangan dari Google Docs. Google Drive memberikan kapasitas penyimpanan sebesar 5GB kepada setiap penggunanya. Kapasitas tersebut dapat ditambahkan dengan melakukan pembayaran atau pembelian Storage. Penyimpanan file di Google Drive dapat memudahkan pemilik file dapat mengakses file tersebut kapanpun dan dimanapun dengan menggunakan komputer desktop, laptop, komputer tablet ataupun smartphone. File tersebut juga dapat dengan mudah dibagikan dengan orang lain untuk berbagi pakai ataupun melakukan kolaborasi dalam pengeditan.
·
Windows
Azure
Windows
Azure adalah sistem operasi yang berbasis komputasi
awan, dibuat oleh Microsoft untuk
mengembangkan dan mengatur aplikasi serta melayani sebuah jaringan global dari
Microsoft Data Centers. Windows Azure yang mendukung berbagai macam bahasa dan
alat pemograman. Sistem operasi ini dirilis pada 1
Februari 2010.
Pengantar Komputasi GRID
Komputasi Grid
adalah penggunaan sumber daya yang melibatkan banyak komputer yang
terdistribusi dan terpisah secara geografis untuk memecahkan persoalan
komputasi dalam skala besar.
Grid computing merupakan cabang dari distributed computing. Grid komputer memiliki perbedaan yang lebih
menonjol dan di terapakan pada sisi infrastruktur dari penyelesaian suatu
proses. Grid computing adalah suatu
bentuk cluster (gabungan)
komputer-komputer yang cenderung tak terikat batasan geografi. Di sisi lain,
cluster selalu diimplementasikan dalam satu tempat dengan menggabungkan banyak
komputer lewat jaringan.
Ide awal komputasi grid dimulai dengan adanya distributed computing, yaitu mempelajari
penggunaan komputer terkoordinasi yang secara fisik terpisah atau
terdistribusi. Sistem terdistribusi membutuhkan aplikasi yang berbeda dengan
sistem terpusat. Kemudian berkembang lagi menjadi parallel computing yang merupakan teknik komputasi secara bersamaan
dengan memanfaatkan beberapa komputer secara bersamaan.
Grid computing menawarkan solusi komputasi yang murah, yaitu
dengan memanfaatkan sumber daya yang tersebar dan heterogen serta pengaksesan
yang mudah dari mana saja. Globus Toolkit adalah sekumpulan perangkat lunak dan
pustaka pembuatan lingkungan komputasi grid yang bersifat open-source. Dengan adanya lingkungan komputasi grid ini diharapkan
mempermudah dan mengoptimalkan eksekusi program-program yang menggunakan pustaka
paralel. Dan Indonesia sudah menggunakan sistem Grid dan diberi nama InGrid
(Inherent Grid). Sistem komputasi grid mulai beroperasi pada bulam Maret 2007
dan terus dikembangkan sampai saat ini. InGrid ini menghubungkan beberapa
perguruan tinggi negeri dan swasta yang tersebar di seluruh Indonesia dan
beberapa instansi pemerintahan seperti Badan Meteorologi dan Geofisika.
1.
Konsep Grid
Computing
Beberapa konsep dasar dari grid computing :
·
Sumber daya
dikelola dan dikendalikan secara lokal.
·
Sumber daya berbeda
dapat mempunyai kebijakan dan mekanisme berbeda, mencakup Sumber daya komputasi
dikelola oleh sistem batch berbeda,
Sistem storage berbeda pada node berbeda, Kebijakan berbeda
dipercayakan kepada user yang sama
pada sumber daya berbeda pada Grid.
·
Sifat alami
dinamis: Sumber daya dan pengguna dapat sering berubah
·
Lingkungan
kolaboratif bagi e-community
(komunitas elektronik, di internet)
·
Tiga hal yang
dibagi dalam sebuah sistem grid,
antara lain : Resource, Network dan Proses. Kegunaan / layanan
dari sistem grid sendiri adalah untuk
melakukan high throughput computing dibidang penelitian, ataupun proses
komputasi lain yang memerlukan banyak resource
komputer.
2.
Cara Kerja Grid
Computing
Menurut tulisan singkat oleh Ian Foster ada
check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem
melakukan komputasi grid yaitu :
·
Sistem tersebut
melakukan koordinasi terhadap sumberdaya komputasi yang tidak berada dibawah
suatu kendali terpusat. Seandainya sumber daya yang digunakan berada dalam satu
cakupan domain administratif, maka komputasi tersebut belum dapat dikatakan
komputasi grid.
·
Sistem tersebut
menggunakan standard dan protokol yang bersifat terbuka (tidak terpaut pada
suatu implementasi atau produk tertentu). Komputasi grid disusun dari
kesepakatan-kesepakatan terhadap masalah yang fundamental, dibutuhkan untuk
mewujudkan komputasi bersama dalam skala besar. Kesepakatan dan standar yang
dibutuhkan adalah dalam bidang autentikasi, otorisasi, pencarian sumberdaya,
dan akses terhadap sumber daya.
·
Sistem tersebut
berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of
service) yang jauh diatas kualitas layanan komponen individu dari komputasi
grid tersebut.
3.
Kelebihan & Kekurangan Grid Computing
Penggunaan Grid
Computing System untuk perusahaan-perusahaan akan banyak memberikan
manfaat, baik manfaat secara langsung maupun tidak langsung. Beberapa manfaat
tersebut antara lain :
·
Grid computing
menjanjikan peningkatan utilitas, dan fleksibilitas yang lebih besar untuk
sumber daya infrastruktur, aplikasi dan informasi. Dan juga menjanjikan
peningkatan produktivitas kerja perusahaan.
·
Grid computing
bisa memberi penghematan uang, baik dari sisi investasi modal maupun operating cost–nya.
Dan beberapa hambatan yang dialami oleh masyarakat
Indonesia dalam mengaplikasikan teknologi grid
computing adalah sebagai berikut :
·
Manajemen
institusi yang terlalu birokratis menyebabkan mereka enggan untuk merelakan
fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat
yan lebih besar bagi masyarakat luas.
·
Masih sedikitnya
SDM yang kompeten dalam mengelola grid
computing. Contohnya kurangnya pengetahuan yang mencukupi bagi teknisi IT
maupun user non teknisi mengenai
manfaat dari grid computing itu
sendiri.
4.
Contoh Grid
Computing
·
Scientific Simulation
Komputasi grid
diimplementasikan di bidang fisika, kimia, dan biologi untuk melakukan simulasi
terhadap proses yang kompleks.
·
Medical Images
Penggunaan data grid
dan komputasi grid untuk menyimpan medical-image. Contohnya adalah eDiaMoND
project.
·
Computer-Aided Drug Discovery (CADD)
Komputasi grid
digunakan untuk membantu penemuan obat. Salah satu contohnya adalah : Molecular
Modeling Laboratory (MML) di University of North Carolina (UNC).
·
Big Science
Data grid dan komputasi
grid digunakan untuk membantu proyek laboratorium yang disponsori oleh
pemerintah Contohnya terdapat di DEISA.
·
E-Learning
Komputasi grid membantu
membangun infrastruktur untuk memenuhi kebutuhan dalam pertukaran informasi
dibidang pendidikan. Contohnya adalah AccessGrid.
VIRTUALISASI
Pengertian Virtualisasi
Virtualisasi bisa diartikan sebagai
pembuatan suatu bentuk atau versi virtual dari sesuatu yang bersifat fisik,
misalnya sistem operasi, perangkat storage dan sumber daya jaringan.
Virtualisasi bisa diimplementasikan kedalam berbagai bentuk, antara lain:
1)
Network
Virtualization : VLAN, Virtual IP (Unclustering), Multilink
2)
Memory
Virtualization : Memory pooling
3)
Application
Virtualization : Emulator
4)
Storage
Virtualization : RAID, LVM
5)
Platform
Virtualization : Virtual computer
Keuntungan Virtualisasi
Penggunaan virtualisai pada
infrastruktur IT kita dapat memberikan keuntungan-keuntungan yang dapat
mempermudah segala jenis kegiatan. Berikut keuntungan dari virtualisasi:
1)
Pengurangan
Biaya Investasi Hardware. Investasi
hardware dapat ditekan lebih rendah karena virtualisasi hanya mendayagunakan
kapasitas yang sudah ada. Tak perlu ada penambahan perangkat komputer, server
dan pheriperal secara fisik. Kalaupun
ada penambahan kapasitas harddisk dan
memori, itu lebih ditujukan untuk mendukung stabilitas kerja komputer induk,
yang jika dihitung secara finansial, masih jauh lebih hemat dibandingkan
investasi hardware baru.
2)
Kemudahan
Backup & Recovery. Server-server
yang dijalankan didalam sebuah mesin virtual dapat disimpan dalam 1 buah image
yang berisi seluruh konfigurasi sistem. Jika satu saat server tersebut crash,
kita tidak perlu melakukan instalasi dan konfigurasi ulang. Cukup mengambil
salinan image yang sudah disimpan, me-restore data hasil backup terakhir dan server
berjalan seperti sedia kala. Hemat waktu, tenaga dan sumber daya.
3)
Kemudahan
Deployment. Server virtual dapat dikloning sebanyak mungkin dan dapat dijalankan
pada mesin lain dengan mengubah sedikit konfigurasi. Mengurangi beban kerja
para staff IT dan mempercepat proses implementasi suatu sistem.
4)
Mengurangi
Panas. Berkurangnya jumlah perangkat otomatis mengurangi panasnya ruang server/data center. Ini akan berimbas
pada pengurangan biaya pendinginan/AC dan pada akhirnya mengurangi biaya
penggunaan listrik.
5)
Mengurangi
Biaya Space. Semakin sedikit jumlah server berarti semakin sedikit pula
ruang untuk menyimpan perangkat. Jika server
ditempatkan pada suatu co-location
server/data center, ini akan berimbas pada pengurangan biaya sewa.
6)
Kemudahan
Maintenance & Pengelolaan. Jumlah
server yang lebih sedikit otomatis
akan mengurangi waktu dan biaya untuk mengelola. Jumlah server yang lebih sedikit juga berarti lebih sedikit jumlah server yang harus ditangani.
7)
Standarisasi
Hardware. Virtualisasi melakukan
emulasi dan enkapsulasi hardware
sehingga proses pengenalan dan pemindahan suatu spesifikasi hardware tertentu
tidak menjadi masalah. Sistem tidak perlu melakukan deteksi ulang hardware sebagaimana instalasi pada
sistem/komputer fisik.
8)
Kemudahan
Replacement. Proses penggantian dan upgrade spesifikasi server lebih mudah
dilakukan. Jika server induk sudah overload dan spesifikasinya tidak mencukupi
lagi, kita bisa dengan mudah melakukan upgrade spesifikasi atau memindahkan
virtual machine ke server lain yang lebih powerful.
Kerugian Virtualisasi
Tidak hanya keuntungan, virtualisasi
juga memiliki beberapa kerugian yang harus dipertimbangkan seperti:
1)
Satu
Pusat Masalah. Virtualisasi bisa dianalogikan dengan menempatkan semua telur di
dalam 1 keranjang. Ini artinya jika server
induk bermasalah, semua sistem virtual machine
di dalamnya tidak bisa digunakan. Hal ini bisa diantisipasi dengan menyediakan
fasilitas backup secara otomatis dan
periodik atau dengan menerapkan prinsip fail
over/clustering.
2)
Spesifikasi
Hardware. Virtualisasi membutuhkan
spesifikasi server yang lebih tinggi untuk menjalankan server induk dan mesin
virtual didalamnya.
3)
Satu
Pusat Serangan. Penempatan semua server
dalam satu komputer akan menjadikannya sebagai target serangan. Jika hacker mampu menerobos masuk kedalam
sistem induk, ada kemungkinan ia mampu menyusup kedalam server-server virtual dengan cara menggunakan informasi yang ada
pada server induk.
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.
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.
Kegiatan
ini merupakan kumpulan beberapa komputer yang terhubung untuk melakukan
pendistribusian, seperti mengirim dan menerima data serta melakukan interaksi
lain antar computer yang dimana membutuhkan sebuah jaringan agar komputer satu
dan lainnya bisa saling berhubung dan melakukan interaksi. Hal ini semua dilakukan
dengan cloud computing yang seperti
kita ketahui memberikan layanan dimana informasinya disimpan di server secara
permanen dan disimpan di computer client secara temporary.
MAP REDUCE
Pengertian MapReduce
MapReduce merupakan sebuah konsep dimana data
yang kontinyu dipecah menjadi bagian data / komponen data kecil dan
didistribusikan melalui mesin-mesin yang terhubung secara cluster. Bisa dibilang map
reduce merupakan sebuah framework
yang digunakan untuk mempercepat proses pengolahan data pada konsep cloud computing. Dalam
memproses data, MapReduce dibagi
menjadi 2 proses utama, yaitu Map dan
Reduce. Proses Map bertugas untuk 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.
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 yaitu Google Big Table.
Desain dan Struktur MapReduce
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. Kemudian hasil akhirnya juga disimpan
secara terdistribusi.
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 2 Struktur
MapReduce
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.
MAP
REDUCE DAN NOT ONLY SQL
Database NoSQL dibuat dengan tujuan khusus untuk model data
spesifik dan memiliki skema fleksibel untuk membuat aplikasi modern. Database
NoSQL dikenal secara luas karena kemudahan pengembangan, fungsionalitas, dan
kinerja dalam berbagai skala. Database NoSQL menggunakan berbagai model data,
termasuk dokumen, grafik, nilai kunci, dalam memori, dan pencarian. Halaman ini
termasuk sumber daya untuk membantu Anda memahami lebih baik database NoSQL dan
mulai menggunakannya.
Pertimbangkan
contoh pemodelan skema untuk database buku sederhana:
Dalam
database relasional, catatan buku sering diselubungkan (atau
"dinormalkan") dan disimpan dalam tabel terpisah, dan hubungan
ditetapkan dengan pembatasan kunci primary dan foreign. Dalam contoh ini, tabel
Buku memiliki kolom untuk ISBN, Judul Buku, dan Nomor Edisi, tabel Penulis
memiliki kolom untuk IDPenulis dan Nama Penulis, dan tabel Penulis-ISBN
memiliki kolom IDPenulis dan ISBN. Model relasional didesain untuk mengaktifkan
database untuk menegakkan integritas referensial antara tabel di dalam
database, dinormalkan untuk mengurangi redundansi, dan umumnya dioptimalkan
untuk penyimpanan.
Dalam
database NoSQL, catatan buku biasanya disimpan sebagai dokumen JSON. Untuk
setiap buku, item, ISBN, Judul Buku, Nomor Edisi, Nama Penulis, dan IDPenulis
disimpan sebagai atribut dalam dokumen tunggal. Dalam model ini, data
dioptimalkan untuk pengembangan intuitif dan skalabilitas horizontal.
Kelebihan
Database
NoSQL sangat cocok untuk digunakan dengan berbagai aplikasi modern seperti
aplikasi seluler, web, dan gaming yang memerlukan database yang fleksibel,
dapat diskalakan, berkinerja tinggi, dan memiliki fungsionalitas tinggi untuk
memberikan pengalaman pengguna yang baik.
·
Fleksibilitas: Database
NoSQL umumnya menyediakan skema fleksibel yang memungkinkan pengembangan yang
lebih cepat dan lebih berulang. Model data fleksibel membuat database NoSQL
ideal untuk data yang semi terstruktur dan tidak terstruktur.
·
Skalabilitas: Database
NoSQL umumnya didesain untuk meningkatkan skala dengan menggunakan klaster
perangkat keras yang terdistribusi alih-alih meningkatkan skala dengan menambah
server yang mahal dan robust. Beberapa penyedia layanan cloud menangani
aktivitas di balik operasi ini sebagai layanan yang dikelola sepenuhnya.
·
Kinerja
tinggi: Database NoSQL dioptimalkan untuk model data spesifik (seperti
dokumen, nilai kunci, dan grafik) dan pola akses yang memberikan kinerja yang
lebih tinggi dibandingkan jika Anda mencoba mendapatkan fungsionalitas yang
mirip dengan database relasional.
·
Fungsionalitas
tinggi: Database NoSQL menyediakan API dan jenis data fungsional yang
dibuat secara khusus untuk setiap model data yang sesuai.
Jenis
Database
Nilai-kunci: Database nilai kunci
dapat dipartisi dan memungkinkan pengembangan horizontal pada skala yang tidak
dapat dicapai oleh jenis database lain. Kasus penggunaan seperti gaming,
teknologi iklan, dan IoT cukup baik dalam menggunakan model data nilai-kunci.
Amazon DynamoDB didesain untuk menyediakan latensi satu-digit milidetik untuk
setiap skala beban kerja. Kinerja yang konsisten ini merupakan alasan besar
fitur Snapchat Stories, yang mencakup beban kerja penulisan ke penyimpanan
terbesar dari Snapchat, dipindahkan ke DynamoDB.
Dokumen: Dalam kode
aplikasi, data sering diwakilkan sebagai sebuah objek atau dokumen seperti JSON
karena ini merupakan model data yang efisien dan intuitif untuk pengembang. Database
dokumen memudahkan pengembang untuk menyimpan dan membuat kueri data dalam
database dengan menggunakan format model dokumen yang sama yang mereka gunakan
dalam kode aplikasi. Sifat dokumen dan database dokumen yang fleksibel,
semiterstruktur, dan hierarkis memungkinkan dokumen dan database dokumen
berevolusi sesuai kebutuhan aplikasi. Model dokumen berfungsi baik dengan
katalog, profil pengguna, dan sistem manajemen konten di mana setiap dokumen
bersifat unik dan berevolusi seiring waktu. Amazon DocumentDB (dengan
kompatibilitas MongoDB) dan MongoDB merupakan database dokumen populer yang
menyediakan API yang mumpuni dan intuitif untuk pengembangan yang fleksibel dan
berulang.
Grafik: Database grafik
bertujuan agar membuat dan menjalankan aplikasi yang berjalan dengan dataset
yang selalu terhubung menjadi lebih mudah. Kasus penggunaan umum untuk database
grafik antara lain jaringan media sosial, mesin rekomendasi, pendeteksian
penipuan, dan grafik pengetahuan. Amazon Neptune merupakan layanan database grafik
yang dikelola sepenuhnya. Neptune mendukung model Property Graph dan Resource
Description Framework (RDF), memberi pilihan dua API grafik: TinkerPop dan
RDF/SPARQL. Database grafik populer termasuk Neo4j dan Giraph.
Dalam memori: Aplikasi
gaming dan teknologi iklan memiliki kasus penggunaan seperti leaderboard,
penyimpanan sesi, dan analisis real-time yang memerlukan waktu respons
milidetik dan dapat setiap saat memiliki puncak lalu lintas yang besar. Amazon
ElastiCache menawarkan Memcached dan Redis, untuk menyediakan beban kerja
dengan latensi rendah dan throughput tinggi, seperti McDonald’s, yang tidak
dapat dilayani dengan penyimpanan data berbasis disk. Amazon DynamoDB
Accelerator (DAX) merupakan contoh lain dari penyimpanan data yang dibuat secara
khusus. DAX membuat DynamoDB membaca dan mengurutkan magnitude dengan lebih
cepat.
Pencarian: Beberapa
output aplikasi dicatat untuk membantu pengembang untuk memecahkan masalah.
Amazon Elasticsearch Service (Amazon ES) dibuat secara khusus untuk memberi
visualisasi hampir secara real-time dan analisis data yang dihasilkan mesin
dengan membuat indeks, mengumpulkan, dan mencari log dan metrik yang semi
terstruktur. Amazon ES juga merupakan mesin pencari yang mumpuni dan berkinerja
tinggi untuk kasus penggunaan pencarian teks lengkap. Expedia menggunakan lebih
dari 150 domain Amazon ES, 30 TB data, dan 30 miliar dokumen untuk berbagai
kasus penggunakan penting, mulai dari pemantauan operasional dan pemecahan
masalah hingga pelacakan stack aplikasi terdistribusi dan pengoptimalan harga.
Map
Reduce dan Not 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.
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 untuk
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.
- Apache Hadoop – http://hadoop.apache.org (open source)
- Pig – http://incubator.apache.org/projects/pig.html
- Cascading – http://www.cascading.org
- Microsoft Dryad – http://research.microsoft.com/research/sv/Dryad/
- IBM MapReduce Tool for Eclipse – http://www.alphaworks.ibm.com/tech/mapreducetools
- Skynet – http://skynet.rubyforge.org
- CouchDB – http://incubator.apache.org/couchdb