Minggu, 06 April 2014

CLOUD COMPUTING

A. PENDAHULUAN CLOUD COMPUTING
gbr1

Cloud Computing adalah model komputasi dimana sumber daya seperti daya komputasi, media penyimpanan(storage), jaringan(network), dan software dijalankan sebagai layanan melalui media jaringan, bahkan dapat diakses di tempat manapun selama terkoneksi dengan internet.
Cloud computing mempunyai tiga tingkatan layanan yang diberikan kepada pengguna, yaitu:
  • Infrastructure as service, hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
  • Platform as a service, hal ini memfokuskan pada aplikasi dimana dalam hal ini seorang developer tidak perlu memikirkan hardware dan tetap fokus pada pembuatan aplikasi tanpa harus mengkhawatirkan sistem operasi, infrastructure scaling, load balancing dan lain-lain. Contohnya yang sudah mengimplementasikan ini adalah Force.com dan Microsoft Azure investment.
  • Software as a service: Hal ini memfokuskan pada aplikasi dengan Web-based interface yang diakses melalui Web Service dan Web 2.0. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti Facebook.
Para investor sedang mencoba untuk mengeksplorasi adopsi teknologi cloud computing untuk dijadikan bisnis seperti Google dan Amazon yang sudah punya penawaran khusus pada teknologi cloud. Dan juga Microsoft dan IBM tidak mau kalah dalam hal ini, mereka juga sudah menginvestasikan jutaan dolar untuk hal ini.
Bisa dipastikan ke depannya cloud computing ini akan menjadi sebuah trend, standar teknologi akan menjadi lebih sederhana karena ketersediaan dari layanan cloud. Berikut adalah beberapa keuntungan dan kekurangan yang dapat dilihat dari perkembangan cloud computing :
Kelebihan Cloud Computing:
  1. Menghemat biaya investasi awal untuk pembelian sumber daya.
  2. Bisa menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.
  3. Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
  4. Menjadikan kolaborasi yang terpercaya dan lebih ramping.
  5. Mengehemat biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem informasi yang dibangun.
Kekurangan Cloud Computing: 
  1. Komputasi awan tidak dapat dilakukan jika tidak dapat terhubung ke Internet.
  2. Apabila koneksi internet yang lambat, maka cloud computing tidak lagi optimal untuk digunakan.
  3. Fitur yang ditawarkan tidak selengkap aplikasi desktop.
  4. Data yang disimpan dalam awan secara umum tidaklah aman karena diperbanyak di beberapa mesin.
  5. Satu Pusat Serangan. Penempatan semua server dalam satu komputer akan menjadikannya sebagai target serangan.
Contoh cloud computing untuk versi public adalah layanan-layanan milik Google seperti Google Docs dan Google Spreadsheet.

B. PENGANTAR KOMPUTASI GRID
Komputasi Grid adalah sebuah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar. Komputasi grid juga dapa disebut sebagai sebuah infrastruktur perangkat keras dan perangkat lunak yang menyediakan akses yang bisa diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi mutakhir yang tersedia. Grid computing merupakan 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 virtual.
Pada intinya Grid computing adalah sebuah 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 bisa disesuaikan dengan kebutuhan. ORACLE 10g merupakan suatu aplikasi yang biasa digunakan oleh perusahaan sebagai DBMS.
aa

Jenis-jenis atau komponen-komponen grid computing adalah:
  1. Gram (Grid Resources Allocation & Management)
Komponen ini dibuat untuk mengatur seluruh sumberdaya komputasi yang tersedia dalam sebuah sistem komputasi grid. Pengaturan ini termasuk eksekusi program pada seluruh komputer yang tergabung dalam sistem komputasi grid, mulai dari inisiasi, monitoring, sampai dengan penjadwalan dan koordinasi antar proses yang terjadi dalam sistem tersebut.
  1. RFT/GridFTP(Reliable File Transfer/Grid File Transfer Protocol)
Komponen ini dibuat agar pengguna dapat mengakses data yang berukuran besar dari semua simpul komputasi yang telah tergabung dalam sebuah sistem komputasi secara efisien. Hal ini tentu saja berpengaruh karena kinerja komputasi tidak hanya bergantung pada kecepatan komputer yang tergabung dalam mengeksekusi program, tapi juga seberapa cepat data yang dibutuhkan dapat diakses.
  1. MDS (Monitoring and Discovery Service)
Komponen ini dibuat untuk memonitoring proses komputasi yang sedang dijalankan agar dapat mendeteksi masalah yang timbul dengan segera.  Sedangkan fungsi disovery dibuat agar pengguna mampu mengetahui keberadaan sumber daya komputasi beserta karakteristiknya.
  1. GSI (Grid Security Infrastructure)
Komponen ini dibuat untuk mengamankan sistem komputasi grid secara keseluruhan. Komponen ini membedakan teknologi GT4 dengan teknologi-teknologi sebelumnya. Dengan menerapkan mekanisme keamanan yang tergabung dengan komponen-komponen komputasi grid lainnya, sistem ini dapat diakses secara luas tanpa sedikitpun mengurangi tingkat keamanannya. Sistem keamanan ini dibangun dengan segala komponen yang telah diuji, mencakup proteksi data, autentikasi, delegasi dan autorisasi.

C. VIRTUALISASI
Virtualisasi merupakan sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal; atau dapat juga termasuk definisi untuk membuat beberapa sumber daya fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber daya logical.
Virtualisasi sendiri dibagi menjadi 3, yaitu:
  • Full VirtualizationMenggunakan aplikasi khusus yang disebut Hypervisor untuk proses virtualisasi. Hypervisor berinteraksi langsung dengan semberdaya yang ada pada host server, Hypervisor juga menjadi jembatan antara komputer guest dengan komputer host. Hypervisor membagi sumberdaya server secara independen pada setiap komputer guest, sehingga setiap komputer guest memeliki sistem operasi yang berbeda-beda.
  • Para VirtualizationJenis ini menggunakan pendekatan yang sedikit berbeda. Berbeda dengan full virtualization, host dan guest pada para virtualizaiton dapat mengetahui keberadaan komputer virtual lain pada server yang sama. Hypervisor disini digunakan untuk mengelola komputer guest yang tidak memerlukan sumberdaya yang besar, karena setiap sistem operasi menerima informasi tentang kebutuhan sistem operasi lain yang ada pada satu komputer host. 
  • Virtualization at the OS levelTidak menggunakan teknologi hypervisor melainkan menjalankan semua fungsi virtualisasi pada komputer host Yang menjadi pemasalahan besar pada implemenatasi jenis ini adalah semua komputer guest harus menggunakan sistem operasi yang sama dengan komputer host. Sehingga jenis ini disebut Homogen.
KEUNTUNGAN PENGGUNAAN VIRTUALISASI
  1. 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 baru.
  2. 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, merestore data hasil backup terakhir dan server berjalan seperti sedia kala. Hemat waktu, tenaga dan sumber daya.
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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 PENGGUNAAN VIRTUALISASI
  1. Satu Pusat Masalah. Virtualisasi bisa dianalogikan dengan menempatkan semua telur didalam 1 keranjang. Ini artinya jika server induk bermasalah, semua sistem virtual machine didalamnya tidak bisa digunakan. Hal ini bisa diantisipasi dengan menyediakan fasilitas backup secara otomatis dan periodik atau dengan menerapkan prinsip fail over/clustering
  2. Spesifikasi Hardware. Virtualisasi membutuhkan spesifikasi server yang lebih tinggi untuk menjalankan server induk dan mesin virtual didalamnya
  3. 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 induk.

D. Distributed Computation dalam Cloud Computing
Komputasi Terdistribusi merupakan salah satu tujuan dari Cloud Computing, karena menawarkan pengaksesan sumber daya secara paralel, para pengguna juga bisa memanfaatkannya secara bersamaan (tidak harus menunggu dalam antrian untuk mendapatkan pelayanan), terdiri dari banyak sistem sehingga jika salah satu sistem crash, sistem lain tidak akan terpengaruh dan juga dapat menghemat biaya operasional karena tidak membutuhkan sumber daya (resourches).

E. Map Reduce danNoSQL (Not Only SQL)
Map Reduce danNoSQL (Not Only SQL) adalah sebuah pemogramaan framework guna untuk membantu user mengembangkan sebuah data yang ukuran besar dapat terdistribusi satu sama lain.
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.
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.

F. NoSQL Database
Database NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk pengelolaan data dan desain database yang berguna untuk set yang sangat besar data terdistribusi. NoSQL, yang mencakup berbagai teknologi dan arsitektur, berusaha untuk memecahkan masalah skalabilitas dan kinerja data yang besar yang database relasional tidak dirancang untuk menanganinya. 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.
Berbeda dengan model basis data relasional yang selama ini digunakan, NoSQL menggunakan beberapa metode yang berbeda-beda. Metode-metode tersebut menurut Dwight Merriman, salah satu kontributor MongoDB, di antaranya adalah:
  • Key-value stores.
  • Table-oriented.
  • Document-oriented.
  • Graph-oriented.
Metode-metode dalam NoSQL menyederhanakan proses yang terjadi dalam sistem basis data relasional. Penyederhanaan proses ini memungkinkan data direplikasi di banyak server secara mudah dan menjamin ketersediaan data. Namun di sisi lain, penyederhanaan proses ini memiliki beberapa efek samping. Beberapa metode tersebut mengurangi integritas data, satu hal yang dijamin oleh basis data relasional. Namun demikian, ada beberapa implementasi NoSQL yang juga telah menyediakan integritas data seperti basis data relasional. NoSQL ditegaskan tidak untuk menggantikan basis data relasional.
Tujuan pengembangan NoSQL adalah untuk menyelesaikan berbagai masalah yang tidak bisa ditangani oleh basis data relasional, yaitu masalah skalabilitas untuk pemrosesan data berukuran besar. Jika data yang anda gunakan dalam aplikasi nanti akan berkembang menjadi berukuran besar, maka NoSQL dapat menjadi pertimbangan alternatif sebagai penyimpanan data.
disusun oleh:
AGNES GANISA                                          (50410280)
ANDRE HARDIAN F.                                   (50410725)
LANCASTER JANUARIO S.                       (5A411160)
MUHAMMAD NOVANTO                            (54410774)
MUHAMMAD RIZKY RIANDA                     (54410812)
RISKI SYENDI                                                (56410044)
SITI KHODIJAH D.                                         (56410597)

Sumber :