Cloud Computing adalah model komputasi dimana sumber daya seperti daya
komputasi, media penyimpanan(storage), jaringan(network), dan software dijalankan sebagai layanan melalui
media jaringan, bahkan dapat diakses di tempat manapun selama terkoneksi dengan
internet.
Cloud computing mempunyai tiga tingkatan layanan yang
diberikan kepada pengguna, yaitu:
- Infrastructure as service, hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
- Platform as a service, hal ini memfokuskan pada aplikasi dimana dalam hal ini seorang developer tidak perlu memikirkan hardware dan tetap fokus pada pembuatan aplikasi tanpa harus mengkhawatirkan sistem operasi, infrastructure scaling, load balancing dan lain-lain. Contohnya yang sudah mengimplementasikan ini adalah Force.com dan Microsoft Azure investment.
- Software as a service: Hal ini memfokuskan pada aplikasi dengan Web-based interface yang diakses melalui Web Service dan Web 2.0. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti FaceBook.
Bisa dipastikan ke depannya cloud computing ini akan menjadi
sebuah trend, standar teknologi akan menjadi lebih sederhana karena
ketersediaan dari layanan cloud. Berikut adalah beberapa keuntungan dan
kekurangan yang dapat dilihat dari perkembangan cloud computing :
Kelebihan Cloud Computing:
- Menghemat biaya investasi awal untuk pembelian sumber daya.
- Bisa menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.
- Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
- Menjadikan kolaborasi yang terpercaya dan lebih ramping.
- Mengehemat biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem informasi yang dibangun.
- Komputasi awan tidak dapat dilakukan jika tidak dapat terhubung ke Internet.
- Apabila koneksi internet yang lambat, maka cloud computing tidak lagi optimal untuk digunakan.
- Fitur yang ditawarkan tidak selengkap aplikasi desktop.
- Data yang disimpan dalam awan secara umum tidaklah aman karena diperbanyak di beberapa mesin.
- Satu Pusat Serangan. Penempatan semua server dalam satu komputer akan menjadikannya sebagai target serangan.
Google Spreadsheet.
B. PENGANTAR KOMPUTASI GRID
Selanjutnya
adalah pembahasan mengenai Komputasi Grid. Komputasi Grid adalah sebuah
penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan
terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala
besar. Komputasi grid juga dapa disebut sebagai sebuah infrastruktur
perangkat keras dan perangkat lunak yang menyediakan akses yang bisa
diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi
mutakhir yang tersedia. Grid computing merupakan sebuah sistem
komputasi terdistribusi, yang memungkinkan seluruh sumber daya (resource) dalam
jaringan, seperti pemrosesan, bandwidth jaringan, dan kapasitas media
penyimpan, membentuk sebuah sistem tunggal secara virtual.
Pada
intinya Grid computing adalah sebuah
arsitektur TI baru yang menghasilkan sistem informasi perusahaan yang berbiaya
rendah dan lebih adaptif terhadap dinamika bisnis. Dengan grid computing,
sejumlah komponen hardware dan software yang modular dan independen akan dapat
dikoneksikan dan disatukan untuk memenuhi tuntutan kebutuhan bisnis. Lebih
jauh, dari sisi ekonomi, implementasi grid computing berarti membangun pusat
komputasi data yang tangguh dengan struktur biaya variatif yang bisa
disesuaikan dengan kebutuhan. ORACLE 10g merupakan suatu aplikasi yang biasa
digunakan oleh perusahaan sebagai DBMS.
Jenis-jenis atau komponen-komponen
grid computing adalah:
- Gram (Grid Resources Allocation & Management)
Komponen ini dibuat untuk mengatur
seluruh sumberdaya komputasi yang tersedia dalam sebuah sistem komputasi grid.
Pengaturan ini termasuk eksekusi program pada seluruh komputer yang tergabung
dalam sistem komputasi grid, mulai dari inisiasi, monitoring, sampai dengan
penjadwalan dan koordinasi antar proses yang terjadi dalam sistem
tersebut.
- RFT/GridFTP(Reliable File Transfer/Grid File Transfer Protocol)
Komponen ini dibuat agar pengguna
dapat mengakses data yang berukuran besar dari semua simpul komputasi yang
telah tergabung dalam sebuah sistem komputasi secara efisien. Hal ini tentu
saja berpengaruh karena kinerja komputasi tidak hanya bergantung pada kecepatan
komputer yang tergabung dalam mengeksekusi program, tapi juga seberapa cepat
data yang dibutuhkan dapat diakses.
- MDS (Monitoring and Discovery Service)
Komponen ini dibuat untuk
memonitoring proses komputasi yang sedang dijalankan agar dapat mendeteksi
masalah yang timbul dengan segera. Sedangkan fungsi disovery dibuat agar
pengguna mampu mengetahui keberadaan sumber daya komputasi beserta
karakteristiknya.
- GSI (Grid Security Infrastructure)
Komponen ini dibuat untuk
mengamankan sistem komputasi grid secara keseluruhan. Komponen ini membedakan
teknologi GT4 dengan teknologi-teknologi sebelumnya. Dengan menerapkan
mekanisme keamanan yang tergabung dengan komponen-komponen komputasi grid
lainnya, sistem ini dapat diakses secara luas tanpa sedikitpun mengurangi
tingkat keamanannya. Sistem keamanan ini dibangun dengan segala komponen yang
telah diuji, mencakup proteksi data, autentikasi, delegasi dan autorisasi.
C. VIRTUALISASI
Virtualisasi
merupakan sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber
daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna
berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah
sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi,
atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya
logikal; atau dapat juga termasuk definisi untuk membuat beberapa sumber daya
fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai
satu sumber daya logical.
Virtualisasi
sendiri dibagi menjadi 3, yaitu:
- Full Virtualization. Menggunakan aplikasi khusus yang disebut Hypervisor untuk proses virtualisasi. Hypervisor berinteraksi langsung dengan semberdaya yang ada pada host server, Hypervisor juga menjadi jembatan antara komputer guest dengan komputer host. Hypervisor membagi sumberdaya server secara independen pada setiap komputer guest, sehingga setiap komputer guest memeliki sistem operasi yang berbeda-beda.
- Para Virtualization. Jenis ini menggunakan pendekatan yang sedikit berbeda. Berbeda dengan full virtualization, host dan guest pada para virtualizaiton dapat mengetahui keberadaan komputer virtual lain pada server yang sama. Hypervisor disini digunakan untuk mengelola komputer guest yang tidak memerlukan sumberdaya yang besar, karena setiap sistem operasi menerima informasi tentang kebutuhan sistem operasi lain yang ada pada satu komputer host.
- Virtualization at the OS level. Tidak menggunakan teknologi hypervisor melainkan menjalankan semua fungsi virtualisasi pada komputer host Yang menjadi pemasalahan besar pada implemenatasi jenis ini adalah semua komputer guest harus menggunakan sistem operasi yang sama dengan komputer host. Sehingga jenis ini disebut Homogen.
- 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.
- 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, merestore data hasil backup terakhir dan server berjalan seperti
sedia kala. Hemat waktu, tenaga dan sumber daya.
- 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
- 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
- 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
- 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
- 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
- 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
- Satu
Pusat Masalah. Virtualisasi bisa dianalogikan dengan menempatkan semua
telur didalam 1 keranjang. Ini artinya jika server induk bermasalah, semua
sistem virtual machine didalamnya tidak bisa digunakan. Hal ini bisa
diantisipasi dengan menyediakan fasilitas backup secara otomatis dan
periodik atau dengan menerapkan prinsip fail over/clustering
- Spesifikasi
Hardware. Virtualisasi membutuhkan spesifikasi server yang lebih tinggi
untuk menjalankan server induk dan mesin virtual didalamnya
- 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.
Komputasi Terdistribusi
merupakan salah satu tujuan dari Cloud Computing, karena menawarkan pengaksesan
sumber daya secara paralel, para pengguna juga bisa memanfaatkannya secara
bersamaan (tidak harus menunggu dalam antrian untuk mendapatkan pelayanan),
terdiri dari banyak sistem sehingga jika salah satu sistem crash, sistem lain
tidak akan terpengaruh dan juga dapat menghemat biaya operasional karena tidak
membutuhkan sumber daya (resourches).
E. Map Reduce danNoSQL (Not Only SQL)
Map Reduce danNoSQL
(Not Only SQL) adalah sebuah pemogramaan framework guna untuk membantu user
mengembangkan sebuah data yang ukuran besar dapat terdistribusi satu sama lain.
MapReduce adalah model
pemrograman rilisan Google yang ditujukan untuk memproses data berukuran
raksasa secara terdistribusi dan paralel dalam cluster yang terdiri atas ribuan
komputer. Dalam memproses data, secara garis besar MapReduce dapat dibagi dalam
dua proses yaitu proses Map dan proses Reduce. Kedua jenis proses ini
didistribusikan atau dibagi-bagikan ke setiap komputer dalam suatu cluster
(kelompok komputer yang salih terhubung) dan berjalan secara paralel tanpa
saling bergantung satu dengan yang lainnya. Proses Map bertugas untuk
mengumpulkan informasi dari potongan-potongan data yang terdistribusi dalam
tiap komputer dalam cluster. Hasilnya diserahkan kepada proses Reduce untuk
diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim
ke pengguna. 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.
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.
F. NoSQL Database
Database NoSQL, juga disebut Not Only SQL,
adalah sebuah pendekatan untuk pengelolaan data dan desain database yang
berguna untuk set yang sangat besar data terdistribusi. NoSQL, yang mencakup
berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah
skalabilitas dan kinerja data yang besar yang database relasional tidak
dirancang untuk menanganinya. 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 melarang bahasa 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.
Berbeda dengan model
basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa
metode yang berbeda-beda. Metode-metode tersebut menurut Dwight Merriman, salah
satu kontributor MongoDB, di antaranya adalah:
- Key-value stores.
- Table-oriented.
- Document-oriented.
- Graph-oriented.
Tujuan pengembangan NoSQL adalah untuk
menyelesaikan berbagai masalah yang tidak bisa ditangani oleh basis data
relasional, yaitu masalah skalabilitas untuk pemrosesan data berukuran besar.
Jika data yang anda gunakan dalam aplikasi nanti akan berkembang menjadi
berukuran besar, maka NoSQL dapat menjadi pertimbangan alternatif sebagai
penyimpanan data