Jumat, 16 Maret 2018

Cloud Computing



Pendahuluan

            Cloud computing dalam Bahasa Indonesia adalah komputasi awan. Komputasi awan dapat diartikan sistem komputasi berbasis internet, jadi kumpulan resource (software, data / file, dan aplikasi) disimpan disebuah server, yang mana server tersebut terdapat di internet. Sehingga apabila ada user lain yang ingin menggunakan resource tersebut hanya tinggal mengaksesnya dimanapun dan kapanpun asalkan ada koneksi internet.
           
            Komputasi Grid
          Komputasi grid adalah penggunaan sumber daya computer secara bersama-sama, yang mana tiap komputer terpisah secara geografis. Biasanya komputasi ini digunakan untuk memecahkan masalah besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber – sumber komputer yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas – batas domain administrasi yang ada.
            Mengapa harus komputasi grid? Karna untuk permasalahan yang terakit dengan komputer grid hanya bisa dipecahkan dengan penggunaan super komputer. Namun super komputer masih tergolong sangat mahal dan masih terdapt kekurangan dalammemnuhi kebutuhan riset.
 Berdasarkan tulisan dari Ian Foster (Bapak Grid Computing), terdapat 3 hal yang mengidentifikasi bahwa suatu sistem termasuk di dalam komputasi grid, yaitu:

  1. Sistem tersebut berkoordinasi terhadap sumberdaya komputasi yang tidak berada dalam satu kendali terpusat. Misalnya komputer di Jakarta terhubung dengan komputer di Jayapura, Manado, dan Semarang.
  2. Sistem tersebut menggunakan protokol yang standar dan terbuka, tidak terpaut dengan suatu perusahaan atau produk tertentu. Standar tersebut dibutuhkan dibagian autentikasi, otorisasi, pencarian sumberdaya yang tersedia, dan pengaksesan sumberdaya.
  3. Sistem tersebut bersifat non-trivial (tidak biasa-biasa saja) untuk mencapai kualitas layanan yang canggih. 
Beberapa contoh pengunaan komputasi grid :

Scientific Simulation: Komputasi grid diimplementasikan di bidang fisika, kimia, dan biologi untuk melakukan simulasi terhadap proses yang kompleks.

Medical Images: Penggunaan data grid dan komputasi grid untuk menyimpan medical-image.
Contohnya adalah
 eDiaMoND project

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)
Big Science: Data grid dan komputasi grid digunakan untuk membantu proyek laboratorium yang disponsori oleh pemerintah Contohnya terdapat di DEISA

e-Learning: Komputasi grid membantu membangun infrastruktur untuk memenuhi kebutuhan dalam pertukaran informasi dibidang pendidikan. Contohnya adalah AccessGrid

Visualization: Komputasi grid digunakan untuk membantu proses visualisasi perhitungan yang rumit.

Virtualisasi
Virtualisasi berbeda dengan cloud computing. Virtualisasi secara bahasanya adalah menjalankan suatu aplikasi diatas aplikasi. Secara istilah adalah teknologi yang memungkinkan kita membuat sesuatu yang bersifat fisik misalnya sistem operasi, storage atau sumber daya jaringan menjadi virtual. Dimana kita mampu menjalankan diatas hardware / software nonvirtual yang sedang berjalan.
Dua hal yang telah dijabarkan diatas sebenarnya saling berhubungan. Cloud Computing sendiri bisa dianggap sebagai pengembangan dari virtualisasi. Cloud computing adalah sebuah teknologi yang menggabungkan teknologi virtualisasi dan grid computing. Jadi, selain ada proses virtualisasi, juga terdapat grid computing, dimana seluruh beban proses komputasi yang ada akan didistribusikan ke berbagai server yang saling terhubung di dalam cloud.
sehingga prosesnya akan jauh lebih ringan.Dengan teknologi cloud computing sebuah perusahaan bisa menempatkan aplikasi atau sistem yang digunakan di internet dan tidak perlu mengelolanya secara internal. Contoh dari cloud computing versi publik adalah seperti google drive, google docs/spreadsheet, dropbox, dan lain-lain. Cloud computing versi publik bisa digunakan untuk umum secara gratis. Sedangkan untuk versi non publik, penggunanya harus membayar biaya sewa untuk menggunakan sistem virtual tersebut dalam jangka waktu yang telah ditentukan. Contoh cloud computing versi non publik adalah seperti SmartCloud Enterprise dari IBM, Enterprise Services Cloud-Compute dari HP, SmartMachines dari JoyentCloud dan Elastic Cloud Compute (EC2) dari Amazon.

KEUNTUNGAN MENGGUNAKAN VIRTUALISASI
1.      Hemat Biaya Investasi Hardware.
Virtualisasi hanya menggunakan kapasitas yang sudah ada. Penambahan mungkin hanya dilakukan untuk stabilitas dan kecepatan komputer induk, yang akan lebih murah.

2.      Kemudahan Backup & Recovery.
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.

3.      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
4.      Kemudahan Replacement.
Upgrade dan penggantian spesifikasi server jauh lebih mudah dilakukan. Dengan memindahkan virtual machine ke server lain yang lebih powerful apabila server induk telah mecapai batas maksimal atau bahkan overload.



KERUGIAN PENGGUNAAN VIRTUALISASI
1.      Satu Pusat Masalah
Jika server induk bermasalah maka seluruh data yang ada di virtual machine akan terkena imbasnya juga. Karna sejatinya virtualisasi ini ibarat menempatkan telur dalam satu keranjang.

2.      Spesifikasi Hardware
Server induk harus mempunyai spesifikasi yang tinggi, untuk menunjang stabilitas dan performa yang digunakan.

Distribusi Komputasi dalam Cloud Computing
            Salah satu tujuan dari Cloud Computing adalah Distribution Computing atau distribusi komputasi. Dalam distribusi komputasi ini adalah pengaksesan sumber daya secara parallel, bersamaan tanpa harus menunggu antrian untuk mendapatkan pelayanan. Mempunyai banyak sistem sehingga tidak akan mempengaruhi sistem alin jika salah satu sistem ada yang crash.
            Kegiatan ini merupakan kumpulan beberapa computer yang terhubung untuk melakukan pendistribusian, seperti mengirim dan menerima data serta melakukan interaksi lain antar computer yang dimana membutuhkan sebuah jaringan agar computer 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.
Distribusi komputasi ini memiliki definisi mempelajari penggunaan terkoordinasi dari computer secara fisik terpisah atau terdistribusi. Pada distributed computing ini, program dipisah menjadi beberapa bagian yang dijalankan secara bersamaan pada banyak computer yang terhubung melalui jaringan internet.





Implementasi Distribusi Komputasi Awan
Ada tiga poin utama yang diperlukan dalam implementasi could computing, yaitu :
  1. Komputer Front End
Komputer front end merupakan sebuah media tatap muka yang digunakan untuk melakukan interaksi dengan data yang ada dalam sebuah sistem. Biasanya merupakan komputer desktop biasa. Front-end lebih mengarah kepada sebuah layanan umum yang memungkinkan semua orang dapat menerima atau memberikan informasi kepada banyak proses yang dilakukan.

  1. Komputer Back End
Komputer back end dalam skala besar biasanya berupa server komputer yang dilengkapi dengan data center dalam penyimpanan besar. Pada umumnya komputer back end harus mempunyai kinerja yang tinggi, karena harus melayani hingga ribuan permintaan data.

  1. Penghubung antara keduanya (Front End dan Back End)
Penghubung dari kedua komputer Front end dan Back end bisa berupa jaringan LAN dan internet.

Map Redusce & NoSQL (Not Only SQL)
            Dalam memproses data berukuran sangat besar terdapat cara dan metode khusus, yaitu dengan map reduce. Teknik yang dilakukan yaitu dengan cara mendistribusikannya secara parallel dalam sebuah cluster yang terdiri dari ribuan komputer. Secara garis besar MapReduce dibagi dalam dua proses yaitu proses Map dan Reduce. Kedua proses didistribusikan ke setiap komputer yang saling terhubung satu dengan lainnya dalam satu clusterdan berjalan secara parallel dan tidak tergantung satu dengan lainnya. Sedangkan proses Map, mengumpulkan informasi potongan-potongan data darii tiap komputer yang terdistribusi dalam custer. Kemudian akan keluar hasil yang akan diserhakan ke proses Reduce. Hasil dari proses Reducelah yang akan dikirim ke pengguna.
            Program yang digunakan hanya ada dua, yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan oleh proses Map dan Reduce. 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.
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. Dengan kata lain fungsi mam akan memetakan data dengan pemberian key & value, kemudian fungsi reduce berfungsi untuk menggabung-gabungkannya.

No SQL Database
            NoSQL adalah sebuah mekanisme untuk menyimpan data dan mengambil data yang dilakukan oleh database kita. NoQSL tidak membutuhkan data model relational dan bahasa SQL untuk melakukan hal tersebut. NoSQL menggunakan metadata pada database kita dan memanfaatkan index dari data tersebut. 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 mempunyai empat mekanisme:

  • Table-oriented, contoh: Google dengan Big Table dan juga Facebook dengan Cassandra,
  • Graph-oriented,
  • Document-oriented database, contoh: MongoDB dan juga CouchDB,
  • Key-value store, contoh: Memcache dan Redis






SQL
NoSQL
Query
+
Transaksi
+
Konsistensi
+
Scalability
+
Management
+
Schema
+

Berdasarkann komparasi diatas query SQL memang jauh unggul, karena SQL sangat mudah untuk mengubah dari satu query ke query yang lainnya. Namun NoSQL hal tersebut sangatlah rumit, NoSQL lebih cocok untuk transaksi yang sama. Maka dapat dikatakan SQL sangatlah cocok untuk transaksi harian dan NoSQL sangatlah cocok jika diterapkan pada transaksi histori.

Contoh database NoSQL:
  • MongoDB
  • CouchDB.
  • GemFire.
  • Redis.
  • Cassandra.
  • memcached.
  • Hazelcast.
  • HBase.
  • Mnesia.
  • Neo4j.




Sumber :