1. Cloud Computing
Komputasi awan (bahasa
Inggris: 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.
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.
Manfaat
Cloud Computing Serta Penerapan Dalam Kehidupan Sehari – hari
1. Semua Data Tersimpan
di Server Secara Terpusat
2. Keamanan Data
2. Keamanan Data
3.
Fleksibilitas dan Skalabilitas yang Tinggi
2. Grid Computing
Grid
Computing atau Komputasi Grid merupakan salah satu dari tipe Komputasi
Paralel, adalah penggunaan sumber daya yang melibatkan banyak komputer terpisah
secara geografis namun tersambung via jalur komunikasi (termasuk Internet)
untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur
komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari
sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan
demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis
lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.
Grid
computing merupakan salah satu jenis dari komputasi modern. Grid computing
adalah 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
bias disesuaikan dengan kebutuhan.
Keuntungan Grid Computing :
Secara generik, keuntungan dasar
dari penerapan komputasi Grid, yaitu:
1. Perkalian
dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle
2. Lebih
cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat
berjalan lebih cepat dan mencakup domain yang lebih luas
3. Software
dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan
perangkat berbeda, Metodologi penelitian yang lebih baik
4. Data:
Akses terhadap sumber data global, dan Hasil penelitian lebih baik
3. Virtualisasi
Virtualisasi (virtualization)
adalah mengubah sesuatu (mengkonversi) ke bentuk simulasi dari bentuk nyata
yang ada. Virtualisasi membuat sebuah simulasi dari perangkat keras, sistem
operasi, jaringan maupun yang lainnya. Virtualisasi digunakan sebagai sarana
untuk improvisasi skalabilitas dari perangkat keras yang ada (Kaciak, 2013).
Banyak perusahaan melihat TI sebagai beban. Padahal virtualisasi menawarkan
ekspansi IT yang lebih tinggi, tanpa harus dipusingkan oleh pelipatan nilai
investasi.
Keuntungan virtualisasi: (1)
pengurangan biaya investasi, khususnya pembelian hardware, (2) kemudahan backup
dan recovery – tidak perlu melakukan instalasi dan konfigurasi ulang (cukup
mengambil salinan dan melakukan restore hasil backup terakhir), (3) kemudahan
dalam deployment – dapat dikloning sebanyak mungkin dan dapat dijalankan
pada mesin lain dengan mengubah sedikit konfigurasi, (4) mengurangi panas pada
data center, (5) mengurangi biaya sewa ruangan, (6) kemudahan dalam pengelolaan
dan perawatan, (7) standarisasi, dan (8) kemudahan replacement/upgrade.
Kelemahan utama virtualisasi: pusat masalah ada pada satu tempat.
Virtualisasi sistem operasi
adalah penggunaan piranti lunak yang memungkinkan untuk dapat menjalankan
beberapa sistem operasi secara bersamaan (Syarif, 2009). 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 depan, virtualisasi akan banyak digunakan, sebagai
sarana untuk memajukan usahanya (Kaciak, 2013).
Selain
itu, virtualisasi dapat diimplementasikan dalam berbagai bentuk, antara lain
(Harry Sufehmi, Pengenalan Virtualisasi, 2009-06-07):
- Network Virtualization : VLAN, Virtual IP (untclustering), Multilink
- Memory Virtualization : pooling memory dari node-node di cluster
- Grid Computing : banyak komputer = satu
- Application Virtualization : Dosemu, Wine
- Storage Virtualization : RAID, LVM
- Platform Virtualization : virtual computer
Karena
dalam hal ini virtualisasi mengacu pada proses penciptaan kerja mesin secara
virtual layaknya perangkat sebenarnya, maka terdapat beberapa jenis
virtualisasi, diantaranya:
- Para-virtualisasi: Menjalankan sebuah perangkat lunak dalam sebuah host dengan menyesuaikan domain sendiri seolah berada dalam sistem yang berbeda.
- Virtualisasi sebagian: Membuat sebuah lingkungan virtual hanya untuk menjalankan program atau perangkat lunak tertentu , kondisi yang dialami adalah lingkungan dimana tidak semua aspek disimulasikan.
- Virtualisasi penuh: Mirip dengan para-virtualisasi dimana hampir menyerupai perangkat asli dan mampu menjalankan perangkat lunak secara keseluruhan. Yang membedakan adalah tidak ditempatkan pada domain sendiri.
4. Distrubuted Computing
komputasi
terdistribusi adalah bagian dari bidang ilmu komputer, yang menjelaskan tentang
studi didistribusikan sistem. Sebuah sistem terdistribusi adalah sebuah sistem
perangkat lunak, yang terletak pada komputer jaringan komunikasi dan
mengkoordinasi dengan menggunakan pesan. Komponen dalam interaksi satu dengan
lainnya bertujuan untuk mencapai tujuan yang sama.
Tujuan dan Keuntungan
Tujuan utama dari sistem komputasi
terdistribusi adalah untuk menghubungkan setiap pengguna dengan sumber daya
yang terpisah secara fisik ke dalam suatu sistem dengan menggunakan cara yang
terkoordinasi. Dan dengan memerlukan kapasitas yang lebih besar dari kapasitas
individual komponennya.
Openness merupakan properti dari
sistem terdistribusi dimana setiap sub-sistem secara terus-menerus terbuka
untuk berinteraksi dengan sistem yang lain. Salah satu masalah yang dihadapi dalam usaha menyatukan
sumber daya yang terpisah ini antara lain adalah skalabilitas, dapat atau
tidaknya sistem tersebut dikembangkan lebih jauh untuk mencakup sumber daya
komputasi yang lebih banyak.
Konsekuensinya, sistem terdistribusi terbuka
memberikan beberapa tantangan berikut:
· Monotonicity.
Sesuatu yang telah dipublikasikan dalam sistem terbuka
(open system) maka tidak dapat diambil kembali.
· Pluralism.
Sub-sistem-subsistem berbeda dalam sistem open
distributed dapat mempunyai informasi yang berbeda, dan mungkin menyebabkan
konflik. Tidak ada pengatur kebenaran sentral dalam sistem open distributed.
· Unbounded
nondeterminism.
Subsistem-subsistem dapat naik dan turun, dan link
komunikasi dapat masuk dan keluar antar sub-sistem dalam sistem open
distributed. Karena itu, waktu yang diperlukan untuk menyelesaikan suatu
operasi tidak dapat dibatasi dan dipastikan.
Arsitektur umun yang digunakan oleh Distributed
Computing atau Komputasi Terdistribusi yaitu sebagai berikut :
1. Client-server : klien menghubungi server untuk
pengambilan data, kemudian server memformatnya dan menampilkannya ke pengguna.
3. N-tier architecture : N-Tier biasanya menunjuk ke aplikasi web yang menyalurkan
lagi permintaan kepada pelayanan enterprise. Aplikasi jenis ini paling berjasa
bagi kesuksesanserver aplikasi.
4. Tightly coupled (clustered) : biasanya menunjuk kepada satu set
mesin yang sangat bersatu yang menjalankan proses yang sama secara paralel, membagi tugas
dalam bagian-bagian, dan kemudian mengumpulkan kembali dan menyatukannya
sebagai hasil akhir.
5. Peer-to-peer : sebuah arsitektur di mana tidak
terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur
sumber daya dalam jaringan. Dan semua kewajiban dibagi rata ke seluruh mesin,
yang dikenal sebagai peer.
6. Space based : Mengacu ke suatu infrastruktur yang membuat ilusi atau
virtualisasi dari satu ruang-alamat (address-space) tunggal. Data secara
transparan direplikasi sesuai dengan kebutuhan aplikasi.
8. Replicated repository : Di
mana repository dibuat replikanya dan disebarkan ke dalam sistem
untuk membantu pemrosesan online/offline dengan syarat keterlambatan
pembaharuan data dapat diterima.
5.
Map Reduce
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.
6. NoSQL
NOSQL menurut
Wikipedia adalah sistem menejemen database yang berbeda dari sistem
menejemen database relasional yang klasik dalam beberapa hal. NOSQL
mungkin tidak membutuhkan skema tabel 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 adalah database
generasi terbaru yang mengarahkan kepada database yang tidak berelasi
(non-relational), dapat disebarkan kepada siapapun (open-source)
dan berskala horisontal (horizontal scale).
Johan Oskarsson
dari Last.fm memperkenalkan kembali istilah NOSQL pada awal 2009 ketika ia
menyelenggarakan sebuah acara untuk membahas “Distributed Open Source
dan Non-relational Database”. Nama berusaha untuk label munculnya
peningkatan jumlah non-relasional, didistribusikan menyimpan data, termasuk
kloning open source dari Google Bigtable/MapReduce dan Amazon Dynamo.
Berbeda dengan
basis data SQL dimana meskipun berbeda-beda pembuat namun cara kerja NOSQL maupun
cara penggunaannya relatif sama. Contohnya sama-sama menggunakan tabel yang
dihubungkan oleh relasi-relasi, manipulasi data dengan bahasa SQL dan sb. Basis
data NOSQL bisa sangat berbeda satu sama lain.
Sebagian besar
sistem NOSQL pada masa awal tidak berusaha untuk memberikan atomicity,
konsistensi, isolasi dan daya tahan jaminan, bertentangan dengan praktik yang
berlaku di antara sistem database relasional. Namun di kemudian hari,
beberapa database NOSQL dengan pembaruan terkini sudah mampu
mengintegrasikan database yang non-relasional ke dalam bentuk database
relasional sehingga dapat mempermudah pengguna yang masih belum akrab dengan
bahasa standar yang diterapkan NOSQL.
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.