softskill pert.3 cloud computing

19
Nama : Nove Anne Nadya Kelas : 4IA22 NPM : 55412387 Mata Kuliah : Pengantar Komputasi Modern Dosen : Dr. Ana Kurniawati, ST., MMSI KOMPUTASI CLOUD Pendahuluan Cloud computing mungkin masih samar terdengar bagi orang awam. Tetapi keberadaan cloud computing di era digital kini sebenarnya telah terasa di tengah masyarakat dalam kehidupan sehari hari seperti penggunaan email dan juga media sosial. 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.

Upload: noveannenadya

Post on 11-Jul-2016

31 views

Category:

Documents


1 download

DESCRIPTION

Pengantar Komputasi Modern

TRANSCRIPT

Nama : Nove Anne NadyaKelas : 4IA22NPM : 55412387Mata Kuliah : Pengantar Komputasi ModernDosen : Dr. Ana Kurniawati, ST., MMSI

KOMPUTASI CLOUD

Pendahuluan Cloud computing mungkin masih samar terdengar bagi orang awam. Tetapi keberadaan cloud computing di era digital kini sebenarnya telah terasa di tengah masyarakat dalam kehidupan sehari hari seperti penggunaan email dan juga media sosial.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.

Teknologi cloud akan memberikan kontrak kepada user untuk service pada 3 tingkatan:

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 memungkinkan developer untuk tidak memikirkan hardware dan tetap fokus pada

application development nya tampa harus mengkhawatirkan operating system, infrastructure scaling, load balancing dan lainya. Contoh nya yang telah mengimplementasikan ini adalah Force.com dan Microsoft Azure investment.

Software-as-a-service: Hal ini memfokuskan pada aplikasi denga Web-based interface yang diakses melalui Web Service dan Web 2.0. contohnya adalah Google Apps, SalesForce.com dan social network application seperti FaceBook.

Beberapa investor saat ini masih mencoba untuk mengekplorasi adopsi teknologi cloud ini untuk dijadikan bisnis sebagaimana  Amazon dan Google telah memiliki penawaran khusus pada untuk teknologi cloud,Microsoft dan IBM juga telah melakukan investasi jutaan dollar untuk ini. Melihat dari tren ini kita dapat memprediksi masa depan, standard teknologi akan menjadi lebih sederhana karena ketersediaan dari banyak cloud service.

Resiko Cloud computing

Sebagaimana yang dikatakan sebagai bisnis service, dengan teknologi cloud anda sebaiknya mengetahui dan memastikan apa yang anda bayar dan apa yang anda investasikan sepenuhnya memang untuk kebutuhan anda menggunakan service ini. Anda harus memperhatikan pada beberapa bagian yaitu:

Service level – Cloud provider mungkin tidak akan konsisten dengan performance dari application atau transaksi. Hal ini mengharuskan anda untuk memahami service level yang anda dapatkan mengenai transaction response time, data protection dan kecepatan data recovery.

Privacy – Karena orang lain / perusahaan lain juga melakukan hosting kemungkinan data anda akan keluar atau di baca oleh pemerintah U.S. dapat terjadi tampa sepengetahuan anda atau approve dari anda.

Compliance – Anda juga harus memperhatikan regulasi dari bisnis yang anda miliki, dalam hal ini secara teoritis cloud service provider diharapkan dapat menyamakan level compliance untuk penyimpanan data didalam cloud, namun karena service ini masih sangat muda anda diharapkan untuk berhati hati dalam hal penyimpanan data.

Data ownership – Apakah data anda masih menjadi milik anda begitu data tersebut tersimpan didalam cloud? mungkin pertanyaan ini sedikit aneh, namun anda perlu mengetahui seperti hal nya yang terjadi pada Facebook yang mencoba untuk merubah terms of use aggrement nya yang mempertanyakan hal ini.

Data Mobility – Apakah anda dapat melakukan share data diantara cloud service? dan jika anda terminate cloud relationship bagaimana anda mendapatkan data anda kembali? Format apa yang akan digunakan ? atau dapatkah anda memastikan kopi dari data nya telah terhapus ?

Pengantar Komputasi GridPengertian 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.Grid computing menawarkan solusi komputasi yang murah, yaitu dengan memanfaatkan sumber daya yang tersebar dan heterogen serta pengaksesan yang mudah dari mana saja. Globus Toolkit adalah sekumpulan perangkat lunak dan pustaka pembuatan lingkungan komputasi grid yang bersifat open-source. Dengan adanya lingkungan komputasi grid ini diharapkan mempermudah dan mengoptimalkan eksekusi program-program yang menggunakan pustaka paralel. Dan Indonesia sudah menggunakan sistem Grid dan diberi nama InGrid (Inherent Grid). Sistem komputasi grid mulai beroperasi pada bulam Maret 2007 dan terus dikembangkan sampai saat ini. InGrid ini menghubungkan beberapa perguruan tinggi negeri dan swasta yang tersebar di seluruh Indonesia dan beberapa instansi pemerintahan seperti Badan Meteorologi dan Geofisika.

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 berubah4. 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 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).

Hardware dalam komputasi grid mencakup perangkat penyimpanan, prosesor, memori, jaringan, dan software yang di desain untuk mengelola hardware ini, misalnya database, manajemen penyimpan, manajemen sistem, server aplikasi, dan sistem operasi. Hardware pada grid komputing di atur secara lokal, dan hardware yang berbeda memiliki kebijakan dan cara kerja yang berbeda. Hardware dan user grid komputing sering bersifat dinamis tergantung penerapan grid tersebut.

Software merupakan suatu perangkat yang menghubungkan semua middleware-nya. Middleware itu sendiri adalah bagian dari software, yaitu lapisan sofware yang terletak antara sistem operasi dan aplikasi yang berfungsi sebagai penghubung komunikasi antar-objek dari sistem yang berbeda. Unsur-unsur dasar suatu middleware adalah keamanan (security), pengaturan sumber daya (resource management), pengaturan data (data management), dan layanan informasi (information services). Contoh beberapa middleware adalah Globus Toolkit, Gridbus, Microsoft’s COM/DCOM, Unicore, dan masih banyak contoh-contoh middleware lainnya.

Brainware dalam komputasi grid hanya meliputi pemelihara dan pemakai grid. Dahulu grid computing cenderung hanya di pakai oleh para ilmuan untuk kepentingan ilmiah. Pada saat itu memang ekspose terbesar lebih banyak pada proyek-proyek sains, seperti riset genetika, fisika dan yang paling terkenal adalah proyek SETI ( Search for Extra Terrestrial Intelligence ) atau riset pencari kehidupan di luar bumi. Hal ini memunculkan persepsi bahwa teknologi komputasi grid ini sulit di terima di kalangan non-ilmuan, terutama di kalangan bisnis. Namun, sekarang penerapan komputasi grid telah merambah penggunaanya bukan hanya pada proyek sains saja. Bahkan baru-baru ini, teknologi grid computing telah di kenalkan pada dunia enterpreneur dan mendapat banyak respon positif. Orang yang memelihara dan menggunakan teknologi grid computing ini, berdasarkan penelitian penggunaannya akan meluas pada:

Jaringan penelitian publik bagi para peneliti dan ilmuan; Layanan (service), artinya grid computing tidak lagi hanya bersifat komputasional; Berbagai institusi keuangan, seperti perbankan; Service Oriented Architecture (SOA), yaitu enkapsulasi sekumpulan aplikasi sebagai

interface tunggal yang dapat di rekonfigurasi.

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

Perbedaan Grid Computing dan Cloud Computing

Komputasi grid di mana lebih dari satu komputer koordinat untuk memecahkan masalah bersama. Sering digunakan untuk masalah yang melibatkan banyak nomor berderak, yang dapat dengan mudah parallelisable.

Cloud computing adalah di mana aplikasi tidak mengakses sumber daya memerlukan langsung, melainkan mengakses mereka melalui sesuatu seperti layanan. Jadi, bukannya berbicara dengan hard drive khusus untuk penyimpanan, dan CPU khusus untuk perhitungan, dll itu berbicara untuk beberapa layanan yang menyediakan sumber daya tersebut. Layanan ini kemudian memetakan setiap permintaan untuk sumber daya untuk sumber daya fisik, dalam rangka untuk menyediakan aplikasi. Biasanya layanan memiliki akses ke sejumlah besar sumber daya fisik, dan dinamis dapat mengalokasikan mereka seperti yang diperlukan.

Dengan cara ini, jika aplikasi membutuhkan hanya sejumlah kecil dari beberapa sumber, mengatakan perhitungan, maka layanan hanya mengalokasikan sedikit, mengatakan pada CPU fisik tunggal (yang dapat dibagi dengan beberapa aplikasi lain yang menggunakan layanan). Jika aplikasi membutuhkan sejumlah besar beberapa sumber daya, maka layanan mengalokasikan bahwa jumlah besar, mengatakan grid CPU. Aplikasi ini relatif tidak menyadari ini, dan semua penanganan yang kompleks dan koordinasi dilakukan oleh layanan, tidak aplikasi. Dengan cara ini aplikasi dapat skala dengan baik.

Misalnya sebuah situs web yang ditulis "di awan" mungkin berbagi server dengan banyak situs web lain sementara ia memiliki jumlah rendah lalu lintas, tetapi dapat pindah ke dedicated server sendiri, atau grid server, jika pernah memiliki sejumlah besar lalu lintas. Ini semua ditangani oleh layanan cloud, sehingga aplikasi tidak harus dimodifikasi secara drastis untuk mengatasinya.

Awan biasanya akan menggunakan grid. Sebuah grid tidak selalu awan atau bagian dari awan

VirtualisasiVirtualisasi merupakan teknologi yang memungkinkan pengguna untuk membuat versi virtual dari sesuatu yang bersifat fisik, seperti system operasi, penyimpanan data atau sumber daya jaringan. Istilah virtualisasi merupakan pemisahan sumber daya computer yang terdiri atas jaringan, penyimpanan dan server. Virtualisasi menyembunyikan karakteristik fisik sumber daya komputasi ke pengguna.Sebuah physical resources (sebuah server/aplikasi/penyimpanan) dapat terlihat seperti beberapa resources virtual dan begitu pun sebaliknya. Berikut ini adalah beberapa teknologi virtual : virtualisasi storage, virtualisasi komputasi dan virtualisasi network.Dalam cloud computing 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.

Contoh Aplikasi Menggunakan Virtualiasi :

-> Virtual Box

Gambar 1. Virtual Box

Software ini dibangun oleh Inotek yang kemudian dibeli oleh Sun Microsystems pada 12 Februari 2008 lalu. Belakangan software ini cukup popular sebagai virtual machine x86 yang kaya fitur dan mudah digunakan. Selain itu virtual Box juga dilisensikan di bawah GPL. Untuk host, software ini mendukung : Linux, Windows, Macintosh, open solaris. Informasi selengkapnya, lihat www.virtualbox.org/ 

-> VmWare

Gambar 2. VmWare

VmWare merupakan salah satu virtual machine yang popular dengan fitur yang cukup lengkap dibanding software Virtual komputer yang lain. Sayangnya VMWare termasuk software yang tidak gratis, anda memberi lisensi untuk menggunkan software ini.

Distributed Computation dalam Cloud ComputingDistributed 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. Distributed computing terkait dengan system perangkat keras dan perangkat lunak yang memiliki lebih dari satu elemen pemrosesan atau storage element.

Pada cloud computing, penyimpanan data hanya dilakukan pada server utama, sehingga pengguna hanya dapat mengaksesnya tanpa harus mengetahui infrastruktur pembuatan aplikasinya. Hanya perlu interface software saja untuk mengakses server. Interface ini pada umumnya merupakan web browser yang tersedia dengan banyak pilihan dan tidak berbayar.Cloud computing dipecah ke dalam beberapa kategori yang berbeda berdasarkan jenis layanan yang disediakan. SaaS (Software as a Service) adalah kategori komputasi awan di mana sumber daya utama yang tersedia sebagai layanan perangkat lunak aplikasi. PaaS (Platform as a Service) adalah kategori / penerapan komputasi awan di mana penyedia layanan memberikan platform komputasi atau solusi tumpukan untuk pelanggan mereka melalui internet. IaaS (Infrastructure as a Service) adalah kategori komputasi awan di mana sumber daya utama yang tersedia sebagai layanan yang infrastruktur perangkat keras. DaaS (Desktop sebagai Layanan), yang merupakan layanan muncul-Aas berkaitan dengan memberikan pengalaman seluruh desktop melalui internet. Ini kadang-kadang disebut sebagai virtualisasi desktop / virtual desktop atau desktop host.Bidang ilmu komputer yang berkaitan dengan sistem terdistribusi disebut komputasi terdistribusi. Sebuah sistem terdistribusi terdiri dari lebih dari satu komputer self-directed berkomunikasi melalui jaringan. Komputer-komputer ini menggunakan memori lokal mereka sendiri. Semua komputer dalam sistem terdistribusi berbicara satu sama lain untuk mencapai tujuan bersama tertentu. Atau, pengguna yang berbeda pada setiap komputer mungkin memiliki kebutuhan individu yang berbeda dan sistem terdistribusi akan melakukan koordinasi sumber daya bersama (atau bantuan berkomunikasi dengan node lain) untuk mencapai tugas-tugas masing-masing. Node berkomunikasi menggunakan message passing. Komputasi terdistribusi juga dapat diidentifikasi sebagai menggunakan sistem terdistribusi untuk memecahkan masalah besar tunggal dengan melanggar itu dengan tugas, masing-masing yang dihitung masing-masing komputer dari sistem terdistribusi. Biasanya, mekanisme toleransi berada di tempat untuk mengatasi kegagalan komputer individu. Struktur (topologi, delay dan kardinalitas) dari sistem ini tidak dikenal di muka dan itu bersifat dinamis. Komputer individu tidak harus tahu segala sesuatu tentang seluruh sistem atau masukan lengkap (untuk masalah yang akan dipecahkan).

Map Redure dan NO SQL( Not Only SQL)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.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.Jadi, 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.

NO SQL DatabaseNoSQL adalah suatu evolusi baru yang ada didalam dunia database. Dalam namanya sendiri NoSQL bukan berarti No dengan tetapi lebih ke Non Stop SQL. Yaitu jika SQL diibaratkan dengan relational database maka NoSQL adalah non-relational Database. Sebenarnya NoSQL ini dikembangkan pertama kali pada tahun 1998 oleh Carlo Strozzi. Lalu, pada tahun 2009, Eric Evans memperkenalkan kembali teknologi NoSQL.Apakah yang dimaksud dengan Non Stop SQL itu sendiri? Ini adalah suatu perkembangan dari database rational yang telah sejak ada dan digunakan mulai tahun 1970-an sampai sekarang. Mengapa perkembangan dari database rational ini dibutuhkan dan pada akhirnya membuat suatu database system baru bernama NoSQL. Untuk bisa memahami alasan mengapa sampai ada NoSQL mungkin kita bisa melihat perkembangan internet dan aplikasi – aplikasi selama 10-15 tahun terakhir.

Pada 10-15 tahun yang lalu jumlah user pengguna internet dan juga jumlah transaksi data pada aplikasi – aplikasi yang ada tidaklah sebanyak saat ini dan database relational yang telah ada dulu sudah sangat mencukupi untuk mengatur transaksi data yang ada karena secara umum mereka mendukung operasi transaksi, yang mengijinkan kita merubah sebagian data, melakukan kontrol terhadap operasi database, support terhadap constraint seperti unique, primary key, foreign key dan check. Mereka juga memiliki bahasa SQL atau Simplified Query Language untuk mengakses data, merubah data seperti operasi insert, update dan delete. Tetapi semakin dengan berkembanganya jaman terutama semakin berkembangnya dunia internet pada saat ini membuat sebuah perubahan besar pada aplikasi – aplikasi yang digunakannya dikomputer dan juga berimbas pada management datanya. Setiap hari semakin banyak user yang aktif di internet dan menggunakan aplikasi – aplikasi yang juga terhubung dengan internet, semakin banyak data yang harus diatur oleh database dan akan semakin sulit

bagi sebuah database relational untuk terus memanage datanya karena akan semakin banyak timbul masalah seperti redudansi data dll.

Bahkan oracle saja sampai perlu membangun ORACLE RAC atau Real Application Cluster, yang menemui banyak tantangan untuk melakukan sinkronisasi data di internal cache melalui inter-koneksi khusus tapi itu juga belum mampu mengurangi kesulitan – kesulitan yang muncul dalam melakukan manage data dalam jumlah yang sangat besar jika menggunakan database relational.

Google, Amazon, Facebook, and LinkedIn adalah perusahaan – perusahaan besar pertama yang mengetahui batasan – batasan yang ada pada relational database untuk dapat menyupport kebutuhan dari aplikasi – aplikasi baru yang terus dikembangkan. Akhirnya pun mereka membuat sebuah data management yang baru. Muncullah Open Source NoSQL, proyek database yang dibentuk untuk meningkatkan kinerja perusahaan – perusahaan yang menjadi pelopor dan perusahan – perusahaan komersial yang menjalin kerja sama dengan proyek ini setelahnya. Apa yang membuat NoSQL berbeda dengan SQL yang berbasis RDBMS atau relational database tadi? NoSQL tidak menggunakan sintaks SQL untuk memyimpan data. Penyimpanan data dalam NoSQL tidak memerlukan skema tabel yang tetap seperti pada relational database.NoSQL memiliki empat metode, yaitu:

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.

Metode NoSQL yang pertama adalah table-oriented. Metode ini biasanya hanya dikembangkan oleh yang membuatnya sendiri seperti Google dan Facebook dengan Big Table dan Cassandranya. Performa dan hasil dari metode ini tidak perlu kita ragukan lagi karena kita telah tiap hari menggunakan kedua website ini dan meskipun dengan berjuta – juta data yang ada di database mereka tapi kita tetap bisa memaksimalkan website mereka.

Metode NoSQL yang kedua adalah Document-oriented database. Jenis NoSQL ini merupakan database yang berbasiskan dokumen. Tidak ada tabel, field dan record, yang ada hanyalah koleksi dan dokumen. Koleksi dapat disamakan dengan tabel dan dokumen disamakan dengan field. Berbeda dengan database relasional, pada document oriented database, dokumen dapat memiliki field yang berbeda dengan dokumen lain walaupun berada dalam satu koleksi. Hal ini tidak dapat dilakukan dengan database relasional dimana sebuah record tidak mungkin memiliki field yang berbeda dengan record yang berada dalam satu tabel. Document Oriented digunakan oleh Mongodb, Couchdb, Ravendb, dan lain-lain.

Metode NoSQL selanjutnya adalah graph-oriented, yaitu jenis database NoSQL yang menggunakan struktur graph dengan node, edge dan properties untuk menyimpan datanya. Metode ini digunakan oleh Infinite Graph, InfoGrid, Neo4J dan lain-lain.

Yang terakhir adalah key-value store. Hampir sama seperti document-oriented database, yang berbeda adalah media penyimpanannya. Dalam key-value store, data tidak langsung disimpan dalam disk seperti database pada umumnya. Data disimpan dalam memori komputer dan sesekali data dalam memori ditulis ke disk.

Penyimpanan data dalam memori menyebabkan proses query akan lebih cepat, karena tidak perlu lagi mengambil data dari disk. Key-Value Stores, cara ini digunakan oleh REDIS, Tokyo Cabinet, Azure Table Storage dan lain-lain.Mengapa banyak yang beralih ke NoSQL terlebih koorporasi atau perusahaan – perusahaan besar yang menggunakan data yang banyak. Pada hari ini terdapat 3 hal besar yang mempengaruhi perkembangan ini yaitu Jumlah User yang Banyak, Jumlah Data yang besar dan yang terakhir teknologi terbaru yaitu cloud computing. Dan dengan 3 hal besar diatas juga menjadikan database system harus mampu bergerak secara :

1. Data harus bisa bergerak secara flexible,2. Harus mampu bergerak secara cepat dengan data dan user yang besar;3. Dan yang terakhir peningkatan performa untuk dapat memuaskan user yang menginginkan

pengolahan data yang cepat.

Dan ketiga hal tersebutlah yang diharapkan mampu didatangkan oleh NoSQL dengan metode – metodenya. Karena NoSQL memiliki model data yang lebih flexible daripada Relational database. Jika pada relational database memasukkan data pada table – table yang terrelasi dan ditiap table – table tersebut terdapat baris dan kolom untuk menyimpan infomasi – informasi yang ada. Referensi tiap table yang terelasi berasal dari foreign key dimasing – masing table. Sebenarnya cara penyimpanan ini meminialisir penggunaan data karena penyimpanan tiap data hanya pada satu tempat. Tetapi penyimpanan yang kecil ini lama kelamaan akan menjadi besar jika tingkat kekompleksan database tersebut bertambah. Karena jika akan melakukan pencarian data maka data tersebut akan dilook-up atau dicari dibanyak table bahkan bisa mencapai ratusan table yang tersebar dan menggabungkannya sebelum disajikan di website atau aplikasi.

Gambar 1. Menunjukan Kompleksitas Pada Database Relational Yang Besar

Pada NoSQL memiliki model yang sangat berbeda, contohnya sebuah document-oriented model, NoSQL database mengambil data yang ingin disimpan dan menjadikannya satu buah document yang berformat JSON. Tiap dokumen JSON tersebut dapat dianggap bersifat object yang bisa langsung digunakan pada aplikasi anda. Sebuah dokumen JSON dapat mengambil semua data yang tersimpan di satu baris yang terdapat di 20 table yang terelasi dan mengumpulkannya menjadi satu object. Pengumpulan data tersebut menjadi satu document akan dapat menimbulkan duplikasi data tetapi karena storage data tidak menjadi sebuah penghalan maka menimbulkan data menjadi lebih flexible, efisien ketika pendistribusian data dan juga proses read and write.Developers biasanya menggunakan bahasa pemrograman object-oriented untuk membuat aplikasinnya. Dan itu sangat effisien jika data yang ditangani pun berbentuk object. Sedangkan jika dengan relational model yang hanya menyediakan sedikit struktur data yang juga sulit diimplementasikan sebagai bentuk object. Bahkan data harus disimpan pada table – table yang bisa mencapai ratusan table yang tersebar. Memang sudah ada Object-relational framework untuk relational database agar dapat menjadi object tetapi tetap saja karena fundamentalnya relational jadi tetap terdapat celah yang ada pada database dan aplikasi.

Gambar 2. Contoh NoSQL

Salah satu perbedaan besar lainnya adalah pada relational mode memiliki schema yang kaku sedangkan NoSQL adalah schemaless. Relational database mengharuskan sebuah define yang pasti dari sebuah skema untuk melakukan penyimpanan didatabase. Perubahan skema data akan merubah hampir keselurahan database tersebut. Ingin mengambil suatu informasi baru yang belum pernah kita pikirkan sebelumnya untuk masuk database kita ?

Ingin membuat sebuah perubahan mendasar kepada aplikasi yang mengharuskan perubahan data format dan isinya? Jika kita tetap menggunakan relational model maka perubahan – perubahan tersebut akan sangan menggangu dan merusak database dan biasanya akan dihindari oleh developer. Yang sebenarnya cara dari relational database sudah sangat bertentangan dengan era Data Besar / Bid Data yang ada sekarang, dimana developer harus siap dengan data – data baru untuk memperbaiki aplikasi mereka.

Sebagai sebuah perbandingan, document-oriented database adalah schemaless, yang memperbolehkan anda untuk menambahkan data yang ada di field – field dari JSON tersebut tambah harus mendifiniskan perubahan tersebut. Dan juga format data yang dimasukkan pun dapat diubah tiap waktu tanpa menggangu aplikasi tersebut. Cara tersebutpun membuat

developer dapat melangkah lebih cepat memasukan data baru ke aplikasi mereka. Perbedaan besar antara relational dan NoSQL database telah mengambil perhatian dari banyak developer aplikasi. Karena mereka telah mengukur seberapa besar tingkat produktivitas mereka dapat ditingkatkan dengan NoSQL database.Karena itu semualah NoSQL muncul sebagai sebuah evolusi baru dari database system yang dibutuhkan oleh sebuah aplikasi untuk dapat berubah secara drastic karena perkembangan jaman yang ada yang terus menuntun untuk aplikasi dapat bertahan dibalik dari perkembangan pengguna/user yang terus meningkat (dan juga expectations dari user agat aplikasi tersebut berjalan), berkembang dijumlah dan banyaknya jenis data yang developer harus kendalikan, dan pertumbuhannya cloud computing yang juga membutuhkan sebuah distributive three-tier internet architecture. NoSQL technology berkembang secara cepat di perusahaan – perusahaan yang bergerak di internet karena menawarkan managemen data yang memenuhi kriteria dari perkembangan jaman ini.

Sumber :

http://pusatteknologi.com/pengertian-manfaat-cara-kerja-dan-contoh-cloud-computing.html

http://ikipmataram.ac.id/berita-376-komputasi-awan-icloud-definition-and-utilization.html

http://stackoverflow.com/questions/1067987/what-is-the-difference-between-cloud-computing-and-grid-computing

http://nafa1108.blogspot.com/2015/10/distributed-computation-dalam-cloud.html#ixzz47Tk15meQ

http://seto.citravision.com/berita-39-pengantar-komputasi-cloud--map-reduce-dan-nosql-not-only-sql.html

http://www.jejaring.web.id/cara-mudah-memahami-nosql-database/