A. Komputasi Cloud
Cloud computing mungkin
masih samar terdengar bagi orang awam. Tetapi keberadaan cloud computing di era digital kini
sebenarnya telah terasa di tengah masyarakat dalam kehidupan sehari hari
seperti penggunaan email dan juga media sosial.
Secara umum, definisi
cloud computing (komputasi awan) merupakan gabungan pemanfaatan teknologi
komputer (komputasi) dalam suatu jaringan dengan pengembangan berbasis internet
(awan) yang mempunyai fungsi untuk menjalankan program atau aplikasi melalui
komputer – komputer yang terkoneksi pada waktu yang sama, tetapi tak semua yang
terkonekasi melalui internet menggunakan cloud computing.
Teknologi komputer
berbasis sistem Cloud ini merupakan sebuah teknologi yang menjadikan internet
sebagai pusat server untuk mengelola data dan juga aplikasi pengguna. Teknologi
ini mengizinkan para pengguna untuk menjalankan program tanpa instalasi dan
mengizinkan pengguna untuk mengakses data pribadi mereka melalui komputer
dengan akses
internet.
Cara
Kerja Sistem Cloud Computing
Sistem Cloud bekerja
menggunakan internet sebagai server dalam mengolah data. Sistem ini
memungkinkan pengguna untuk login ke internet yang tersambung ke program untuk
menjalankan aplikasi yang dibutuhkan tanpa melakukan instalasi. Infrastruktur
seperti media penyimpanan data dan juga instruksi/perintah dari pengguna
disimpan secara virtual melalui jaringan internet kemudian perintah – perintah
tersebut dilanjutkan ke server aplikasi. Setelah perintah diterima di server
aplikasi kemudian data diproses dan pada proses final pengguna akan disajikan
dengan halaman yang telah diperbaharui sesuai dengan instruksi yang diterima
sebelumnya sehingga konsumen dapat merasakan manfaatnya.
Contohnya lewat
penggunaan email seperti Yahoo ataupun Gmail. Data di beberapa server
diintegrasikan secara global tanpa harus mendownload software untuk
menggunakannya. Pengguna hanya memerlukan koneksi internet dan semua data
dikelola langsung oleh Yahoo dan juga Google. Software dan juga memori atas
data pengguna tidak berada di komputer tetapi terintegrasi secara langsung
melalui sistem Cloud menggunakan komputer yang terhubung ke internet.
B. 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.
Contoh Grid Komputing :
- 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.
- Visualization
Komputasi grid
digunakan untuk membantu proses visualisasi perhitungan yang rumit.
- Microprocessor design
Komputasi grid membantu
untuk mengurangi microprocessor design cycle dan memudahkan design center untuk
membagikan resource lebih efisien. Contohnya ada diMicroprocessor Design Group
at IBM Austin.
C. Virtualisasi
Istilah
virtualisasi (virtualization) memiliki banyak pengertian. Jika merujuk pada
kamus Oxford, istilah virtualization merupakan turunan dari
kata virtualize yang memiliki makna “Convert (something) to a
computer-generated simulation of reality”. Dalam terjemahan bebas, virtualisasi
berarti Mengubah sesuatu (mengkonversi) ke bentuk simulasi dari bentuk nyata
yang ada.
Inti
dari virtualisasi adalah membuat sebuah simulasi dari perangkat keras, sistem
operasi, jaringan maupun yang lainnya. Di bidang teknologi informasi,
virtualisasi digunakan sebagai sarana untuk improvisasi skalabilitas dari
perangkat keras yang ada.
Dengan
virtualisasi, beberapa sistem operasi dapat berjalan secara bersamaan pada satu
buah komputer. Hal ini tentunya dapat mengurangi biaya yang harus dikeluarkan
oleh sebuah perusahaan. Di masa akan datang, teknologi virtualisasi akan banyak
digunakan baik oleh perusahaan yang bergerak dibidang teknologi informasi
maupun yang tidak murni bergerak di bidang teknologi informasi namun
menggunakan teknologi informasi sebagai sarana untuk memajukan usahanya.
Menurut
Alan Murphy dalam papernya Virtualization Defined – Eight Different Ways,
menyebutkan setidaknya terdapat delapan istilah dalam penerapan virtualisasi.
Diantaranya adalah operating system virtualization, application server
virtualization, application virtualization, management virtualization, network
virtualization, hardware virtualization, storage virtualization dan service
virtualization.
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 Linux Mint. Kemudian dengan
menggunakan perangkat lunak virtualisasi misalnya Virtualbox, kita dapat
menginstall sistem operasi lain sebagai contoh Windows XP atau FreeBSD.
Sistem
operasi yang terinstall di komputer secara fisik dalam hal ini Linux Mint
disebut sebagai host machinesedangkan 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 dalam 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 adalah KVM dan OpenVZ. Adapun contoh yang lain seperti
VMWare ESXi, Microsoft Hyper-V.
Type 2 berjalan pada
sistem operasi diatasnya. Pada tipe ini sistem operasi guest berada
diatas sistem operasi host. Contoh tipe ini adalah VirtualBox.
D. Distributed Computation Dalam Cloud Computing
Kegiatan
ini merupakan kumpulan beberapa computer yang terhubung untuk melakukan
pendistribusian, seperti mengirim dan menerima data serta melakukan interaksi
lain antar computer yang dimana membutuhkan sebuah jaringan agar computer 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.
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.”
Komponen dasar Cloud computing
Clients adalah seperangkat komputer / software yang didesain secara khusus untuk penggunaan layananberbasis cloud computing.
Contoh:
- Mobile
- Windows Mobile, Symbian
- Thin Client
- Windows Terminal Service, CherryPal
- Thick Client
- Internet Explorer, FireFox, Chrome
Datacenter adalah tempat disimpannya
server-server.Dapat berupa ruang besar bawah tanah atau gedungbesar kosong.
Namun, pada perkembanganselanjutnya telah dikembangkan Virtuallizing
server,dimana software yang telah di-install disertai beberapavirtual server
untuk digunakan. Dengan demikian,beberapa virtual server menggunakan 1 server
secarafisik. Cloud computing menyediakan perangkat lunak sebagai layanan
―cadangan untuk pengguna terakhir, tapi infrastruktur yang mendasari harus
cukup terukur dan kuat serta harus fokus pada sistem Cloud perusahaan skala
besar dan meneliti bagaimana perusahaan dapat menggunakan service-oriented
architecture (SOA) untuk menyediakan antarmuka yang efisien untuk proses
bisnis. Untuk meningkatkan proses bisnis, masing-masing tingkatan SOA biasanya
menyebarkan beberapa server untuk muatan distribusi dan toleransi kesalahan.
Salah satu keterbatasan dari pendekatan ini adalah beban yang tidak dapat
didistribusikan lebih lanjut saat semua server pada tingkatan /jajaran yang
sama dimuat. Cloud computing terlihat untuk perhitungan dan penyimpanan data
menjauh dari end user dan ke server yang berlokasi di pusat data, dengan
demikian mengurangi beban pengguna dari penyedian aplikasi dan manajemen. Dalam
sistem cloud enterprise, arsitektur berorientasi layanan (SOA) dapat digunakan
untuk menyediakan antarmuka yang mendasari proses bisnis, yang ditawarkan
melalui awan(cloud). SOA dapat bertindak sebagai sebuah front-end terprogram ke
berbagai komponen layanan yang dibedakan sebagai individu dan pendukung server.
Permintaan yang masuk ke layanan yang disediakan oleh gabungan SOA harus
diteruskan ke komponen yang benar dan server masing-masing, dan seperti routing
harus terukur untuk mendukung sejumlah besar permintaan. Dalam rangka untuk meningkatkan
proses bisnis, setiap tingkatan dalam sistem biasanya menyebarkan beberapa
server untuk mendistribusikan beban dan toleransi kesalahan. seperti distribusi
beban di beberapa server dalam tingkat yang sama dapat dilihat sebagai
distribusi beban horisontal
E. Map Reduse & No SQL (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.
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. 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.
Berlawanan dengan kesalahpahaman yang disebabkan oleh namanya, NoSQL tidak melarangbahasa query terstruktur (SQL) Meskipun benar bahwa beberapa sistem NoSQL sepenuhnya non-relasional, yang lain hanya menghindari fungsi relasional dipilih seperti skema tabel tetap dan bergabung dengan operasi. Sebagai contoh, daripada menggunakan tabel, database NoSQL mungkin mengatur data menjadi objek, kunci / nilai berpasangan atau tupel
F. No SQL Database
Berbeda
dengan SQL Database, dari namanya saja sudah bisa ditebak bahwa nosql database
adalah kebalikan dari sql database. Tidak relational / tanpa relation. Database
nosql atau yang biasa disebut NoSQL database / cloud database merupakan
penyimpanan data / database yang tidak terstruktur.
Nosql
database tidak seperti sql database yang menggunakan tabel dalam penyusunan
datanya, nosql database menggabungkan semua database tidak membedakan jenis2nya
dan tanpa karakteristik umum. Tapi nosql database ini memiliki kecepatan yang
super cepat dibanding dengan sql database, pencariannya lebih terfokus. Nosql
sebetulnya tidak 100% menyimpan data dengan cara tidak terstruktur, terkadang
ada miripnya dengan sql database dengan sedikit susunan pada saat2 tertentu.
Bedanya
nosql database ini menyusun bagian didalam bagian lainnya (subset). Jadi setiap
bagian akan memiliki beberapa bagian lagi didalamnya. Nosql ini cocok dan biasa
digunakan untuk penyimpanan aplikasi atau data yang sangat besar. Karena dengan
menggunakan nosql data dapat diakses dengan sangat fleksibel dan sangat sedikit
kemungkinan error ketika mengakses banyak data dengan format yang berbeda-beda.
Pengelompokan database
noSQL
Secara umum, database
noSQL dibagi menurut format penyimpanan dokmentnya . Berikut ini adalah
pengelompokan database noSQL berdasarkan model (penyimpanan) datanya
1. Document
Database contohnya MongoDB, seiap satu object data disimpan dalam
satu dokumen. Dokumen sendiri bisa terdiri dari key-value, dan value sendiri
bisa berupa array atau key-value bertingkat.
2. Graph
, Format penyimpanan data dalam struktur graph. Format ini sering dipakai untuk
data yang saling berhubungan seperti jejaring social. Contoh database noSQL
dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.
3. Key
– Value, contoh database jenis ini adalah Apache Cassandra.
4. Object
Database. Format database yang disimpan dalam object object, Object disini sama
dengan pengertian object di Pemrograman beroreintasi object , Contoh
databasenya adalah Db4o.
5. Tipe
lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu
populer.
Kelebihan
NoSQL di banding Relasional Database
1. NoSQL
bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur
secara efesien dalam skala besar (big data/cloud).
2. Menggunakan
OOP dalam pengaksesan atau manipulasi datanya.
3. NoSQL
tidak mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL
sangat cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini
adalah Dynamic Schema.
4. Autosharding,
istilah sederhananya, jika database noSQL di jalankandi cluster server
(multiple server) maka data akan tersebar secara otomatis dan merata keseluruh
server.
Kekurangan
dari database NoSQL sendiri , minimal bagi saya adalah Hostingnya mahal.
beberapa layanan di luar negeri mencharge biaya 100-200USD untuk hosting
database noSQL. Selain itu, saya belum pernah menemukan hosting Cpanel yang
mendukung database MongoDB atau database noSQL lainnya.
Selain
itu, karena bervariasinya produk dan format penyimpanan, berpindah antar satu
produk database ke produk noSQL lainnya perlu waktu untuk belajar. Contohnya
ketika anda pindah dari MongoDB ke Cassandra, maka anda harus belajar lagi dari
awal, berbeda dengan database RDMS.