Pengantar Komputasi Modern – Komputasi Cloud
Silvia
April 23, 2019
0 Comments
PENDAHULUAN
Cloud computing merupakan suatu
teknologi yang memberikan layanan yang bisa dimanfaatkan atau diakses
oleh pelanggannya melalui jaringan internet. Istilah cloud merujuk pada simbol awan yang di dunia teknologi informasi digunakan untuk menggambarkan jaringan internet. Cloud computing memungkinkan pengguna untuk menggunakan aplikasi tanpa instalasi dan mengakses file pribadi mereka di setiap device dengan akses Internet.
Dengan adanya teknologi ini maka pengguna
dapat bebas bergerak dengan data yang dapat diakses kapan saja dan di
mana saja. Segala komputasi terjadi di cloud dan menjadi infrastuktur publik. Teknologi cloud computing ini juga tidak memerlukan berbagai software, mulai dari Sistem Operasi dan berbagai software lain dalam device pengguna. Device
yang digunakan oleh pengguna pun tidak perlu memiliki spesifikasi yang
bagus seperti memori maupun media penyimpanan yang besar serta prosesor
yang berkecepatan tinggi. Pada device yang digunakan oleh pengguna hanya memerlukan suatu web browser dengan koneksi ke jaringan internet untuk dapat menggunakan teknologi ini.
PENGANTAR KOMPUTASI GRID
Pengertian 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.
Komputasi grid merupakan cabang dari distributed computing. Komputasi grid 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.
Konsep Komputasi Grid
Beberapa konsep dasar dari komputasi grid:
- Sumber daya dikelola dan dikendalikan secara lokal.
- 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.
- Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah
- Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet)
- 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
Cara Kerja Komputasi Grid
Menurut tulisan singkat oleh Ian Foster ada checklist yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :
- Sistem tersebut melakukan koordinasi terhadap sumber daya 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.
- 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 sumber daya, dan akses terhadap sumber daya.
- Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari 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 :
- Grid computing menjanjikan peningkatan utilitas, dan fleksibilitas yang lebih besar untuk sumberdaya infrastruktur, aplikasi dan informasi. Dan juga menjanjikan peningkatan produktivitas kerja perusahaan.
- Grid computing bisa memberi penghematan uang, baik dari sisi investasi modal maupun operating cost–nya.
Ada pula beberapa hambatan yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid computing adalah sebagai berikut :
- 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.
- 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
Pengertian Virtualisasi
Virtualisasi bisa diartikan sebagai
pembuatan suatu bentuk atau versi virtual dari sesuatu yang bersifat
fisik, misalnya sistem operasi, perangkat storage dan sumber daya jaringan. Virtualisasi bisa diimplementasikan kedalam berbagai bentuk, antara lain:
- Network Virtualization : VLAN, Virtual IP (Unclustering), Multilink
- Memory Virtualization : Memory pooling
- Application Virtualization : Emulator
- Storage Virtualization : RAID, LVM
- Platform Virtualization : Virtual computer
Keuntungan Virtualisasi
Penggunaan virtualisai pada infrastruktur
IT kita dapat memberikan keuntungan-keuntungan yang dapat mempermudah
segala jenis kegiatan. Berikut keuntungan dari virtualisasi:
- 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
- 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, me-restore 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.
Kerugian Virtualisasi
Tidak hanya keuntungan, virtualisasi juga memiliki beberapa kerugian yang harus dipertimbangkan seperti:
- Satu Pusat Masalah. Virtualisasi bisa dianalogikan dengan menempatkan semua telur di dalam 1 keranjang. Ini artinya jika server induk bermasalah, semua sistem virtual machine di dalamnya 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
DISTRIBUTED COMPUTATION 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.
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.
Kegiatan ini merupakan kumpulan beberapa
komputer yang terhubung untuk melakukan pendistribusian, seperti
mengirim dan menerima data serta melakukan interaksi lain antar computer
yang dimana membutuhkan sebuah jaringan agar komputer 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.
MAP REDUCE
Pengertian MapReduce
MapReduce merupakan sebuah
konsep dimana data yang kontinyu dipecah menjadi bagian data / komponen
data kecil dan didistribusikan melalui mesin-mesin yang terhubung secara
cluster. Bisa dibilang map reduce merupakan sebuah framework yang digunakan untuk mempercepat proses pengolahan data pada konsep cloud computing. 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.
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 yaitu Google Big Table.
Desain dan Struktur MapReduce
Untuk memproses sebuah data raksasa, data itu harus dipotong-potong kemudian dibagi-bagikan ke tiap komputer dalam suatu cluster. Lalu proses Map dan proses Reduce
pun harus dibagi-bagikan ke tiap komputer dan dijalankan secara
paralel. Kemudian hasil akhirnya juga disimpan secara terdistribusi.
MapReduce telah didesain sangat sederhana alias simple. 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.
Program yang memuat kalkulasi yang akan dilakukan dalam proses Map disebut Fungsi Map, dan yang memuat kalkulasi yang akan dikerjakan oleh proses Reduce disebut Fungsi Reduce. Jadi, seorang programmer yang akan menjalankan MapReduce harus membuat program Fungsi Map dan Fungsi Reduce.
Fungsi Map bertugas untuk membaca input dalam bentuk pasangan Key/Value, lalu menghasilkan output berupa pasangan Key/Value juga. Pasangan Key/Value hasil fungsi Map ini disebut pasangan Key/Value intermediate. Kemudian, fungsi Reduce akan membaca pasangan Key/Value intermediate hasil fungsi Map, dan menggabungkan atau mengelompokkannya berdasarkan Key tersebut. Lain katanya, tiap Value yang memiliki Key yang sama akan digabungkan dalam satu kelompok. Fungsi Reduce juga menghasilkan output berupa pasangan Key/Value.
NoSQL DATABASE
Pengertian NoSQL Database
NoSQL adalah sebuah memcache dari bagian database sederhana yang berisi key dan value. Database ini bersifat struktur storage dimana sistem database-nya yang berbeda dengan sistem database relasional. NoSQL tidak membutuhkan skema table dan menghindari operasi join
dan berkembang secara horisontal. 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.
Database NoSQL, juga disebut NotOnly SQL
adalah sebuah pendekatan untuk pengelolaan data dan desain database
yang berguna untuk set yang sangat besar data terdistribusi. NoSQL
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 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.
Jenis-jenis dan Contoh Database NoSQL
NoSQL memiliki berbagai jenis dan tipe database yang dapat dipergunakan sesuai dengan kebutuhan, ada pun jenis-jenis database tersebut adalah sebagai berikut:
- Nilai-kunci
Database nilai kunci
dapat dipartisi dan memungkinkan pengembangan horizontal pada skala yang
tidak dapat dicapai oleh jenis database lain. Kasus penggunaan seperti gaming,
teknologi iklan, dan IoT cukup baik dalam menggunakan model data
nilai-kunci. Amazon DynamoDB didesain untuk menyediakan latensi
satu-digit milidetik untuk setiap skala beban kerja. Kinerja yang
konsisten ini merupakan alasan besar fitur Snapchat Stories, yang
mencakup beban kerja penulisan ke penyimpanan terbesar dari Snapchat,
dipindahkan ke DynamoDB.
- Dokumen
Dalam kode aplikasi,
data sering diwakilkan sebagai sebuah objek atau dokumen seperti JSON
karena ini merupakan model data yang efisien dan intuitif untuk
pengembang. Database dokumen memudahkan pengembang untuk menyimpan dan
membuat kueri data dalam database dengan menggunakan format model
dokumen yang sama yang mereka gunakan dalam kode aplikasi. Sifat dokumen
dan database dokumen yang fleksibel, semi terstruktur, dan hierarkis
memungkinkan dokumen dan database dokumen berevolusi sesuai kebutuhan
aplikasi. Model dokumen berfungsi baik dengan katalog, profil pengguna,
dan sistem manajemen konten di mana setiap dokumen bersifat unik dan
berevolusi seiring waktu. Amazon DocumentDB (dengan kompatibilitas
MongoDB) dan MongoDB merupakan database dokumen populer yang menyediakan
API yang mumpuni dan intuitif untuk pengembangan yang fleksibel dan
berulang.
- Grafik
Database grafik
bertujuan agar membuat dan menjalankan aplikasi yang berjalan dengan
dataset yang selalu terhubung menjadi lebih mudah. Kasus penggunaan umum
untuk database grafik antara lain jaringan media sosial, mesin
rekomendasi, pendeteksian penipuan, dan grafik pengetahuan. Amazon
Neptune merupakan layanan database grafik yang dikelola sepenuhnya.
Neptune mendukung model Property Graph dan Resource Description
Framework (RDF), memberi pilihan dua API grafik: TinkerPop dan
RDF/SPARQL. Database grafik populer termasuk Neo4j dan Giraph.
- Dalam memori
Aplikasi gaming dan teknologi iklan memiliki kasus penggunaan seperti leaderboard, penyimpanan sesi, dan analisis real-time
yang memerlukan waktu respons milidetik dan dapat setiap saat memiliki
puncak lalu lintas yang besar. Amazon ElastiCache menawarkan Memcached
dan Redis, untuk menyediakan beban kerja dengan latensi rendah dan
throughput tinggi, seperti McDonald’s, yang tidak dapat dilayani dengan
penyimpanan data berbasis disk. Amazon DynamoDB Accelerator (DAX)
merupakan contoh lain dari penyimpanan data yang dibuat secara khusus.
DAX membuat DynamoDB membaca dan mengurutkan magnitude dengan lebih
cepat.
- Pencarian
Beberapa output
aplikasi dicatat untuk membantu pengembang untuk memecahkan masalah.
Amazon Elasticsearch Service (Amazon ES) dibuat secara khusus untuk
memberi visualisasi hampir secara real-time dan analisis data yang dihasilkan mesin dengan membuat indeks, mengumpulkan, dan mencari log
dan metrik yang semi terstruktur. Amazon ES juga merupakan mesin
pencari yang mumpuni dan berkinerja tinggi untuk kasus penggunaan
pencarian teks lengkap. Expedia menggunakan lebih dari 150 domain Amazon
ES, 30 TB data, dan 30 miliar dokumen untuk berbagai kasus penggunakan
penting, mulai dari pemantauan operasional dan pemecahan masalah hingga
pelacakan stack aplikasi terdistribusi dan pengoptimalan harga.