Komputasi Cloud
(https://en.wikipedia.org/wiki/Cloud_computing)
Cloud
computing adalah
paradigma teknologi informasi (TI) yang memungkinkan akses ke
berbagai sumber daya sistem yang dapat dikonfigurasi dan layanan
tingkat tinggi yang dapat dengan cepat disediakan dengan upaya
manajemen minimal, seringkali melalui Internet . Cloud computing bergantung
pada pembagian sumber daya untuk mencapai koherensi dan skala ekonomi ,
mirip dengan utilitas publik .
Awan
pihak ketiga memungkinkan organisasi untuk fokus pada bisnis inti mereka
daripada menghabiskan sumber daya pada infrastruktur dan pemeliharaan komputer.
Para pendukung mencatat bahwa komputasi awan memungkinkan perusahaan untuk
menghindari atau meminimalkan biaya infrastruktur TI di muka. Para pendukung juga mengklaim
bahwa komputasi awan memungkinkan perusahaan untuk membuat aplikasi mereka
berjalan lebih cepat, dengan pengelolaan yang lebih baik dan lebih sedikit
pemeliharaan, dan memungkinkan tim TI untuk menyesuaikan sumber daya dengan
lebih cepat untuk memenuhi permintaan yang fluktuatif dan tidak dapat
diprediksi. Penyedia Cloud biasanya menggunakan model
"pay-as-you-go", yang dapat menyebabkan pengeluaran operasional
yang tidak terduga jika administrator tidak akrab dengan model penetapan
harga cloud.
Sejak
peluncuran Amazon EC2 pada tahun 2006, ketersediaan jaringan
berkapasitas tinggi, komputer dan perangkat penyimpanan berbiaya rendah serta
adopsi virtualisasi perangkat keras, arsitektur berorientasi layanan ,
dan komputasi otonom dan utilitas yang terus meningkat telah
mendorong pertumbuhan cloud komputasi.
Tujuan dari komputasi awan adalah untuk
memungkinkan pengguna mengambil manfaat dari semua teknologi ini, tanpa perlu
pengetahuan mendalam tentang atau keahlian dengan masing-masing dari mereka. Cloud
bertujuan untuk memangkas biaya, dan membantu pengguna fokus pada bisnis inti
mereka bukannya terhambat oleh kendala IT. Teknologi yang memungkinkan
utama untuk komputasi awan adalah virtualisasi . Perangkat lunak
virtualisasi memisahkan perangkat komputasi fisik ke dalam satu atau lebih
perangkat "virtual", yang masing-masing dapat dengan mudah digunakan
dan dikelola untuk melakukan tugas-tugas komputasi. Dengan virtualisasi
tingkat sistem operasi yang pada dasarnya menciptakan sistem terukur dari
berbagai perangkat komputasi independen, sumber daya komputasi tidak terpakai
dapat dialokasikan dan digunakan dengan lebih efisien. Virtualisasi
menyediakan kelincahan yang dibutuhkan untuk mempercepat operasi TI, dan
mengurangi biaya dengan meningkatkan pemanfaatan infrastruktur. Komputasi
otonom mengotomatiskan proses di mana pengguna dapat menyediakan sumber
daya sesuai permintaan . Dengan meminimalkan keterlibatan
pengguna, otomatisasi mempercepat proses, mengurangi biaya tenaga kerja dan
mengurangi kemungkinan kesalahan manusia.
Pengguna secara rutin menghadapi
masalah bisnis yang sulit. Cloud
computing mengadopsi konsep dari Service-oriented Architecture(SOA) yang
dapat membantu pengguna memecahkan masalah-masalah ini menjadi layanan yang
dapat diintegrasikan untuk memberikan solusi. Cloud computing menyediakan
semua sumber dayanya sebagai layanan, dan memanfaatkan standar yang telah
ditetapkan dengan baik dan praktik terbaik yang diperoleh di domain SOA untuk
memungkinkan akses global dan mudah ke layanan cloud dengan cara standar.
Komputasi awan juga memanfaatkan konsep dari
komputasi utilitas untuk menyediakan metrik untuk layanan yang
digunakan. Metrik tersebut merupakan inti dari model bayar per penggunaan
publik. Selain itu, layanan terukur merupakan bagian penting dari loop
umpan balik dalam komputasi otonom, yang memungkinkan layanan untuk skala
on-demand dan untuk melakukan pemulihan kegagalan otomatis. Cloud
computing adalah semacam komputasi grid ; itu telah berevolusi
dengan mengatasi QoS (kualitas layanan) dan masalah keandalan . Cloud
computing menyediakan alat dan teknologi untuk membangun data / menghitung
aplikasi paralel intensif dengan harga yang jauh lebih terjangkau dibandingkan
dengan teknik komputasi paralel tradisional.
Cloud computing berbagi karakteristik dengan:
·
Model klien-server
- Komputasi klien-server merujuk secara luas ke aplikasi
terdistribusi yang membedakan antara penyedia layanan (server) dan peminta
layanan (klien). [36]
·
Komputer biro — biro layanan yang menyediakan
layanan komputer, terutama dari tahun 1960 hingga 1980-an.
·
Komputasi grid -
"Suatu bentuk komputasi terdistribusi dan paralel, di mana 'komputer super
dan virtual' terdiri dari sekelompok jaringan, komputer yang digabungkan
secara longgar yang bekerja bersama untuk melakukan tugas yang sangat
besar."
·
Fog computing —Mendistribusikan
paradigma komputasi yang menyediakan layanan data, komputasi, penyimpanan, dan
aplikasi lebih dekat ke perangkat tepi klien atau dekat-pengguna, seperti
router jaringan. Selain itu, komputasi kabut menangani data di tingkat
jaringan, pada perangkat pintar dan di sisi pengguna pengguna akhir (misalnya
perangkat seluler), daripada mengirim data ke lokasi terpencil untuk diproses.
·
Komputer mainframe —Powerful
komputer yang digunakan terutama oleh organisasi besar untuk aplikasi penting,
biasanya pemrosesan data massal seperti: sensus ; industri dan
statistik konsumen; polisi dan dinas intelijen rahasia; perencanaan
sumber daya perusahaan ; dan pemrosesan transaksi keuangan.
·
Komputasi utilitas -
"Pengemasan sumber daya komputasi , seperti komputasi dan
penyimpanan, sebagai layanan meteran yang mirip dengan utilitas publik
tradisional, seperti listrik."
·
Peer-to-peer —Sebuah
arsitektur terdistribusi tanpa perlu koordinasi pusat. Peserta adalah pemasok
dan konsumen sumber daya (berbeda dengan model client-server tradisional).
·
Komputasi hijau
·
Cloud sandbox —Sebuah
lingkungan komputer yang hidup dan terisolasi di mana program, kode, atau file
dapat berjalan tanpa memengaruhi aplikasi yang menjalankannya.
GRID COMPUTING
Komputasi grid adalah kumpulan sumber daya
komputer dari beberapa lokasi untuk mencapai tujuan bersama. Grid dapat dianggap
sebagai sistem terdistribusi dengan beban kerja non-interaktif yang
melibatkan sejumlah besar file. Komputasi grid dibedakan dari
sistem komputasi berkinerja tinggi konvensional seperti komputasi klaster di
grid komputer yang masing-masing node disetel untuk melakukan tugas / aplikasi
yang berbeda. Grid komputer juga cenderung
lebih heterogen dan tersebar secara geografis (sehingga tidak secara
fisik digabungkan) daripada komputer cluster. Meskipun satu kotak dapat
didedikasikan untuk aplikasi tertentu, biasanya grid digunakan untuk berbagai
tujuan. Grid sering dibangun dengan
perpustakaan perangkat lunak middleware grid tujuan umum. Ukuran
kisi bisa sangat besar.
Grids adalah bentuk komputasi
terdistribusi di mana " komputer virtual super "
terdiri dari banyak jaringan komputer yang digabungkan secara longgar yang bekerja
bersama untuk melakukan tugas-tugas besar. Untuk aplikasi tertentu,
didistribusikan atau komputasi grid dapat dilihat sebagai jenis khusus komputasi
paralel yang bergantung pada komputer lengkap (dengan CPU onboard,
penyimpanan, catu daya, antarmuka jaringan, dll.) Yang terhubung ke jaringan
komputer (pribadi atau publik) oleh antarmuka jaringan konvensional,
seperti Ethernet . Hal ini berbeda dengan
gagasan tradisional superkomputer , yang memiliki banyak prosesor
yang dihubungkan oleh bus komputer berkecepatan tinggi lokal.
Contoh Grid
Computing:
a) Scientific Simulation
Komputasi grid diimplementasikan di bidang fisika, kimia,
dan biologi untuk melakukan simulasi terhadap proses yang kompleks.
b) Medical Images
Penggunaan data grid dan komputasi grid untuk menyimpan
medical-image. Contohnya adalah eDiaMoND project.
c) 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).
d) Big Science
Data grid dan komputasi grid digunakan untuk membantu proyek
laboratorium yang disponsorioleh pemerintah Contohnya terdapat di DEISA.
e) E-Learning
Komputasi grid membantu membangun infrastruktur untuk
memenuhi kebutuhan dalam pertukaran informasi dibidang pendidikan. Contohnya
adalah AccessGrid.
f) Visualization
Komputasi grid digunakan untuk membantu proses visualisasi
perhitungan yang rumit.
g) 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.
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 :
1. 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.
2. 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.
3. Sistem
tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial
quality of service) yang jauh diatas kualitas layanan komponen individu dari
komputasi grid tersebut.
Kemudian hal yang tidak boleh
dilupakan adalah mengenai keberadaan dari elemen-elemen dari grid computing,
elemen ini tidak bisa dilepaskan dari grid computing. Elemen grid computing
adalah berikut :
a. Hardware
b. Software
c. Brainware
VIRTUALISASI
Virtualisasi adalah sebuah teknik
yang saat ini banyak diterapkan untuk memenuhi kebutuhan TI yang semakin tinggi
namun diikuti dengan tuntutan untuk mengefisiensikan biaya yang digunakan
semaksimal mungkin. Virtualisasi adalah teknologi yang telah diterapkan
secara luas saat ini dengan dampak peningkatan operasional dan finansial yang
positif. Virtualisasi adalah konsep dimana akses ke sebuah hardware seperti
server diatur sehingga beberapa operating system (guest operation system) dapat
berbagi sebuah hardware. Tujuan dari virtualisasi adalah kinerja tingkat
tinggi, ketersediaan, keandalan, ketangkasan, atau untuk membuat dasar keamanan
dan manajemen yang terpadu.
Virtualisasi memungkinkan kita untuk berbagi
hardware untuk digunakan beberapa sistem operasi. Virtualisasi dapat membuat
sebuah tempat penyimpanan tunggal yang besar terlihat menjadi beberapa tempat
penyimpanan dengan ukuran yang lebih kecil.
Setiap perusahaan memiliki tujuan yang
berbeda mengapa menerapkan virtualisasi, salah satu tujuan yang ingin dicapai
perusahaan dapat merupakan salah satu dari hal berikut :
·
Memungkinkan semua device yang terhubung
dengan jaringan untuk mengakses aplikasi melalui jaringan, bahkan jika aplikasi
tidak pernah dirancangan untuk dapat bekerja di device tersebut.
·
Isolasi beban perkerjaan atau aplikasi yang
satu dengan yang lainnya untuk meningkatkan keamanan dan kemudahan pengelolaan
lingkungan.
·
Isolasi aplikasi dari sistem operasi,
memungkinkan aplikas untuk tetap berfungsi meskipun dirancang untuk sistem
operasi dengan tipe yang berbeda
·
Isolasi aplikasi dari sistem operasi,
memungkinkan sebuah aplikasi untuk bekerja di sistem operasi yang asing
·
Meningkatkan jumlah orang yang dapat didukung
oleh aplikasi, dengan mengijinkan untuk menjalan aplikasi dari mesin-mesin yang
berbeda secara bersamaan
·
Mengurangi waktu yang diperkukan untuk
menjalankan apliksi, dengan memisahkan data atau aplikasi itu sendiri dan
menyebar pekerjaan di beberapa sistem
·
Mengoptimalkan penggunaan sistem tunggal
·
Meningkatkan keandalan atau ketersediaan dari
aplikasi atau beban kerja dengan pengulangan
Beberapa peralatan komputer dapat
divirtualisasikan. Contoh peralatan komputer yang dapat divirtualisasikan
adalah
·
Server. Mulai dari perspektif akses dan
manajemen, sebuah server fisik tunggal dapat menjadi beberapa server yang biasa
disebut dengan virtual server atau virtual machine (VM)
·
Desktop. Mirip dengan virtualisasi server,
virtualisasi desktop dapat berarti dua hal. Yang pertama, memungkinkan pengguna
untuk menjalankan beberapa sistem operasi desktop (Apple Mac OS dan Microsoft
Windows OS) di dalam komputer yang sama. Yang kedua virtualisasi memungkinkan
data dan layanan yang dimiliki oleh pengguna diletakkan di komputer yang
digunakan bersama dengan data dan layanan milik orang lain.
·
Storage. Satu tempat penyimpanan fisik dapat
terlihat menjadi beberapa driver virtual. Dengan kata lain, dengan menggunakan
windows yang terpisah di console manajemen yang umum, administrator IT dapat
memperlakukan drive virtual seperti drive fisik.
·
Application. Saat memvirtualisasi, aplikasi
yang ditulis untuk sebuah lingkungan sistem operasi dapat dijalankan di
lingkungan operasi yang lain untuk meningkatkan kecocokan aplikasi dan
kemudahan pengelolaan. Operasi akan diarahkan ke sistem operasi yang sesuai.
·
Network. Di dalan jaringan, sebuah router
fisik dapat mendukung beberapa, alamat IP untuk membuat router virtual. Sama
seperti sebuah switch Ethernet fisik dapat mendukung beberapa alamat MAC (media
access control) untuk membuat switch virtual. Sebuah hardware fisik dapat
dibagi menjadi beberapa router atau switch virtual untuk mengurangi biaya.
DISTRIBUTED COMPUTING 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. Dari tujuannya, distributed computing
menghubungkan banyak user dan resource yang bekerjasama memecahkan permasalahan
dalam sistem yang terbuka, transparan dan memiliki skalabilitas yang tinggi.
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.
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.
NO SQL DATABASE
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 saat-saat 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
- 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.
- 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.
- Key – Value, contoh database jenis ini
adalah Apache Cassandra.
- Object Database. Format database yang disimpan
dalam object object, Object disini sama dengan pengertian object di
Pemrograman beroreintasi object , Contoh databasenya adalah Db4o.
- Tipe lainnya adalah tabular, tuple store dan
berbagai jenis lain yang tidak terlalu populer.