·
Cloud Computing
Cloud
computing atau komputasi awan merupakan definisi untuk teknologi komputerasi
grid (grid computing) yang digunakan pada pertengahan hingga akhir tahun
1990-an. Jargon cloud computing atau komputasi awan mulai muncul pada akhir
tahun 2007, digunakan untuk memindahkan layanan yang digunakan sehari-hari ke
Internet, bukan disimpan di komputer lokal lagi. Pada saat itu, layanan lain
termasuk pengolahan kata, spreadsheet, dan presentasi telah dipindahkan ke
dalam komputasi awan.
·
Konsep Dasar
- Infrastructure as a Service (IaaS)
Infrastructure as a Service merupakan layanan komputasi awan yang
menyediakan infrastruktur IT berupa CPU, RAM, storage, bandwith dan konfigurasi
lainnya. Komponen-komponen tersebut digunakan untuk membangun komputer virtual.
Komputer virtual dapat diinstal sistem operasi dan aplikasi sesuai kebutuhan.
Keuntungan layanan IaaS ini adalah tidak perlu membeli komputer fisik sehingga
lebih menghemat biaya. Konfigurasi komputer virtual juga bisa diubah sesuai
kebutuhan. Misalkan saat storage hampir penuh, storage bisa ditambah dengan
segera. Perusahaan yang menyediakan IaaS adalah Amazon EC2, TelkomCloud dan
BizNetCloud.
Bagian-bagian dari Iaas
atau Haas :
- Perjanjian Layanan yang merupakan awal dari
persetujuan klien dan provider.
- Hardware komputer.
- Networking.
- Koneksi Internet.
- Virtualisasi Platform.
- Billing.
- Platform as a Service (PaaS)
Platform as a Service adalah layanan yang menyediakan computing
platform. Biasanya sudah terdapat sistem operasi, database, web server dan
framework aplikasi agar dapat menjalankan aplikasi yang telah dibuat.
Perusahaan yang menyediakan layanan tersebutlah yang bertanggung jawab dalam
pemeliharaan computing platform ini. Keuntungan layanan PaaS ini bagi
pengembang adalah mereka bisa fokus pada aplikasi yang mereka buat tanpa
memikirkan tentang pemeliharaan dari computing platform. Contoh penyedia
layanan PaaS adalah Amazon Web Service dan Windows Azure.
Sistem PaaS terbagi menjadi 3 yaitu :
- Fasilitas Pengembangan Add-On. Sistem
ini akan menawarkan beberapa aplikasi PaaS yang bisa dikostumisasi oleh
user.
- Stand Alone Environments. Untuk penggunaan software
developing biasa.
- Application Delivery-Only Environments. Juga mendukung layanan hosting,
seperti keamanan dan skalabilitas. Tidak termasuk development dan debugging.
- Software as a Service (SaaS)
Software as a Service adalah layanan komputasi awan dimana kita bisa
langsung menggunakan aplikasi yang telah disediakan. Penyedia layanan mengelola
infrastruktur dan platform yang menjalankan aplikasi tersebut. Contoh layanan
aplikasi email yaitu gmail, yahoo dan outlook sedangkan contoh aplikasi media
sosial adalah twitter, facebook dan google+. Keuntungan dari layanan ini adalah
pengguna tidak perlu membeli lisensi untuk mengakses aplikasi tersebut.
Pengguna hanya membutuhkan perangkat klien komputasi awan yang terhubung ke
internet. Ada juga aplikasi yang mengharuskan pengguna untuk berlangganan agar
bisa mengakses aplikasi yaitu Office 365 dan Adobe Creative Cloud.
Ada beberapa tipe software yang ditawarkan
SaaS, yaitu :
- Manajemen resources bagi pelanggan.
- Video Conferencing.
- Manajemen Layanan IT.
- Akunting.
- Analisa Web.
- Manajemen web content.
·
Grid Computing.
Pengertian dari Grid Computing
itu sendiri adalah 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
vitual. Seperti halnya pengguna internet yang mengakses berbagai situs web dan
menggunakan berbagai protokol seakan-akan dalam sebuah sistem yang berdiri
sendiri, maka pengguna aplikasi Grid computing seolah-olah akan menggunakan
sebuah virtual komputer dengan kapasitas pemrosesan data yang sangat besar.
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.
Beberapa konsep dasar dari grid computing :
1. Sumber daya dikelola dan
dikendalikan secara lokal.
2. 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.
3. Sifat alami dinamis: Sumber daya
dan pengguna dapat sering berubah
4. Lingkungan kolaboratif bagi e-community
(komunitas elektronik, di internet)
5. Tiga hal yang di-,sharing 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.
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.
Elemen-Elemen dalam Komputasi Grid
Penerapan teknologi grid
computing atau komputasi grid pada kalangan yang membutuhkan, wajib memiliki
elemen-elemen tertentu. Secara garis besar, 3 elemen pokok dari infrastuktur
grid adalah:
1. hardware/sumber daya;
2. software; dan
3. brainware (orang yang memelihara
dan memakai komputasi grid).
Kelebihan dan 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 :
1. Grid computing menjanjikan
peningkatan utilitas, dan fleksibilitas yang lebih besar untuk sumberdaya
infrastruktur, aplikasi dan informasi. Dan juga menjanjikan peningkatan
produktivitas kerja perusahaan.
2. 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 :
1. 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.
2. Masih sedikitnya Sumber Daya
Manusia yang kompeten dalam mengelola grid computing. Contonhya kurangnya
pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai
manfaat dari grid computing itu sendiri.
·
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
Komputasi
terdistribusi merupakan bidang ilmu komputer yang mempelajari sistem
terdistribusi. Sebuah sistem terdistribusi terdiri dari beberapa otonom
komputer yang berkomunikasi melalui jaringan komputer . Komputer yang saling
berinteraksi untuk mencapai tujuan bersama. Sebuah program komputer yang
berjalan dalam sistem terdistribusi disebut program didistribusikan, dan
didistribusikan program adalah proses penulisan program tersebut. Komputasi
terdistribusi juga mengacu pada penggunaan sistem terdistribusi untuk
memecahkan masalah komputasi. Dalam komputasi terdistribusi, masalah dibagi
menjadi tugas banyak, setiap yang diselesaikan oleh satu komputer.
Perbedaan Distributed Computing, Grid Computing, dan Cloud Computing
Distributed Computing adalah ilmu yang memecahkan masalah besar dengan
memberikan bagian kecil dari masalah untuk banyak komputer untuk memecahkan dan
kemudian menggabungkan solusi untuk bagian-bagian menjadi solusi untuk masalah
tersebut.
Grid Computing adalah
kombinasi sumber daya komputer dari beberapa domain administrasi untuk mencapai
tujuan bersama. komputasi Grid (atau penggunaan dari komputasi grid) adalah
menerapkan sumber daya dari banyak komputer dalam jaringan untuk masalah
tunggal pada saat yang sama – biasanya untuk masalah ilmiah atau teknis yang
memerlukan sejumlah besar siklus pengolahan komputer atau akses ke besar jumlah
data .
Cloud computing adalah teknologi yang menggunakan internet dan server remote sentral
dalam menjaga data dan aplikasi. Cloud komputasi memungkinkan konsumen dan
bisnis untuk menggunakan aplikasi tanpa instalasi dan mengakses file pribadi
mereka di setiap komputer dengan akses internet. Teknologi ini memungkinkan
komputasi yang jauh lebih efisien dengan memusatkan penyimpanan, memori,
pengolahan dan bandwidth.
·
Map Reduce
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
Tujuan 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
·
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
Jadi Map
Reduce dan NoSQL (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.
Referensi :