Kamis, 16 April 2020

Konsep Dasar Cloud Computing, Grid Computing, Virtualisasi, Distributed Computing, Map educe, no sql

Cloud Computing



Apa itu Cloud Computing?
Cloud Computing (dalam bahasa Indonesia disebut komputasi awan) adalah proses pengolahan daya komputasi (baik CPU, RAM, Network Speeds, Software, OS maupun Storage) melalui jaringan (biasanya lewat internet). Jadi transfer data yang terjadi bukan secara fisik dan sumber daya komputasi yang dimiliki berada di lokasi pengguna yang memakai layanannya.

Manfaat Cloud Computing
Komputasi awan sebenarnya jadi menurunkan permintaan hardware dan software dari sisi si pengguna. Satu-satunya hal yang harus bisa dijalankan/dilakuka oleh si pengguna adalah software interface dari sistem komputasi awan, yang bisa jadi sesederhana saja semacam browser web. Ini pastinya bisa membantu mengurangi pekerjaan pengguna dengan adanya teknonologi jaringan Cloud yang tanggap dan otomatis menyelesaikan masalah-masalah IT lainnya.
Bila Anda bukan dari pihak korporat/pebisnis, Anda juga sebenarnya sudah menggunakan teknologi komputasi awan. Anda mungkin tidak sadar, beberapa layanan cloud populer yang telah banyak digunakan semacam email tools GMail, Hotmail atau Yahoo bahkan sudah didukung teknologi ini.
Saat mengakses/memakai layanan email, data Anda akan disimpan di server cloud, bukan di komputer Anda. Teknologi dan infrastruktur di belakang cloud memang tidak tampak. Jadi, tidak penting lagi apakah layanan cloud didasarkan pada HTTP, XML, Ruby, PHP atau teknologi spesifik lainnya sejauh itu masih user-friendly dan juga fungsional tentunya. Anda sebagai pengguna bisa terhubung ke sistem cloud dari perangkat pribadi Anda sendiri semacam laptop, atau ponsel.
Komputasi awan juga memang memanfaatkan bisnis kecil secara efektif dengan sumber daya yang terbatas. Teknologi atau layanan ini bisa kasih akses ke usaha kecil menengah untuk teknologi yang sebelumnya berada di luar jangkauan mereka. Cloud computing kini banyak sekali membantu usaha kecil untuk mengubah biaya pengeluaran mereka malah menjadi untung.

Tipe-tipe Cloud
Ada empat macam/tipe cloud yang berbeda yang bisa Anda pakai sebagai pengguna, sesuai dengan kebutuhan bisnis. Berikut adalah keempatnya!
·         Private Cloud
Private Cloud ini berarti sumber daya cloud-nya digunakan bagi satu organisasi tertentu saja (secara privat, tidak dibagi ke pengguna/organisasi lain). Metode ini lebih banyak digunakan buat interaksi semacam intra-bisnis, di mana sumber daya cloud-nya bisa diatur, dimiliki, dan dioperasikan oleh organisasi satu yang sama.
·         Community Cloud
Community cloud mengacu pada penggunaan source bagi komunitas dan organisasi.
·         Public Cloud
Jenis cloud ini biasanya dipakai buat interaksi tipe B2C (Business to Consumer). Public Cloud menggunakan sumber daya komputasi yang dimiliki, diatur dan dioperasikan oleh pemerintah.
·         Hybrid Cloud
Jenis Cloud yang satu ini bisa digunakan untuk kedua jenis interaksi – B2B (Business to Business) atau B2C (Business to Consumer). Jadi, sumber daya komputasi terikat bersama tapi dengan cloud yang berbeda.

Struktur Cloud Computing

Cloud computing terdiri dari dua komponen yaitu Front End dan juga Back End. Front End terdiri dari klien Cloud Computing system-nya. Lalu dibagi lagi menjadi dua yaitu interface dan aplikasi yang diperlukan dalam mengakses platform cloud computing-nya.
Sementara Back End mengacu ke cloud itu sendiri, yaitu yang terdiri dari sumber daya. Sumber daya tersebut diperlukan bagi layanan komputasi awan. Layanannya apa saja? Ada berbagai layanan yang disediakan teknologi komputasi awan yaitu virtual machine, server, data storage, security mechanism, dan lain sebagainya. Jadi, semua layanan itu berada di bawah kendali si provider/penyedia komputasi awan.
Cloud computing bisa mendistribusikan sistem file yang kemudian disebar ke banyak hard disk maupun mesin. Datanya tidak pernah disimpan di satu tempat saja. Selain itu, jika satu unit gagal bekerja atau memproses, maka yang lain akan mengambil alih secara otomatis. Inilah canggihnya teknologi Cloud. Ruang disk pengguna dapat dialokasikan ke sistem file yang terdistribusi, sementara komponen penting lainnya semacam algoritma dimanfaatan buat alokasi sumber daya. Intinya, teknologi komputasi awan ini merupakan sistem distribusi yang kuat dan sangat bergantung ke algoritma yang kuat pula.



Grid Computing

Apa itu Grid Computing
Komputasi Grid atau Grid Computing adalah kumpulan sumber daya komputer dari berbagai lokasi untuk mencapai tujuan bersama. Grid dapat dianggap sebagai sistem terdistribusi dengan beban kerja non-interaktif yang melibatkan sejumlah besar file.
            Komputasi grid dibedakan dari sistem komputasi kinerja tinggi konvensional seperti komputasi cluster dalam bahwa komputer jaringan memiliki setiap node diatur untuk melakukan tugas yang berbeda atau aplikasi.  komputer Grid juga cenderung lebih heterogen dan geografis (dengan demikian tidak secara fisik ditambah) dari komputer klaster  Meskipun grid tunggal dapat didedikasikan untuk aplikasi tertentu, umumnya grid digunakan untuk berbagai tujuan.. Grids sering dibangun dengan tujuan umum perpustakaan software jaringan middleware.

Contoh Grid Computing:

·         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 disponsorioleh 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.
·         Microprocessor design
komputasi grid membantu untuk mengurangi microprocessor design cycle dan memudahkan design center untuk membagikan resource lebih efisien. Contohnya ada diMicroprocessor Design Group at IBM Austin.

Beberapa konsep dasar dari grid computing :
·         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 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.

Kemudian hal yang tidak boleh dilupakan adalah mengenai keberadaan dari elemen-elemen dari grid computing, elemen ini tidak bisa dilepaskan dari grid computing. Elemen grid computing adalah hardware, software, dan brainware

Keuntungan Utama Penggunaan Grid Computing      
            Teknologi grid computing mampu menjadi solusi bagi perusahaanperusahaan untuk memiliki suatu sistem informasi yang berteknologi canggih, yang mampu mendukung kinerja perusahaan, dengan biaya yang lebih murah.     
Kemampuan teknologi tersebut untuk mendukung kinerja perusahaan tidak      diragukan lagi.  Teknologi grid computing membuka peluang bagi adanya kerjasama lintas organisasi, lintas benua, dan lintas bangsa. Selain itu, terbuka pula peluang untuk  melakukan komputasi yang rumit dengan menggunakan superkomputer yang canggih, tanpa harus melakukan investasi besar - besaran dalam bidang teknologi informasi
            Grid computing menjadi suatu hal yang menjanjikan bagi perusahaan disebabkan oleh 3 hal, yaitu:
1.    Lebih hemat biaya dalam penggunaan sejumlah tertentu sumber daya komputer,

2.    Sebagai cara untuk memecahkan masalah yang mungkin tidak dapat dipecahkan tanpa sejumlah besar daya komputasi, dan

3.    Karena menunjukkan bahwa sumberdaya dari banyak komputer dapat kooperatif dan dimanfaatkan secara sinergis, serta dikelola sebagai sebuah kolaborasi mencapai tujuan bersama

Kekurangan Grid Computing
Kekurangan pada grid computing yang lebih saya tekankan disini adalah mengenai hambatan yang dialami oleh masyarakat Indonesia dalam mengaplikasikan teknologi grid computing. Hambatan-hambatan tersebut adalah sebagai berikut :
1.    Manajemen institusi  yang terlalu birokratis menyebabkan mereka enggan untuk fasilitas yang dimiliki untuk digunakan secara bersama agar mendapatkan manfaat yang lebih besar bagi masyarakat luas.

2.    Masih sedikitnya sumber daya manusia yang  kompeten dalam mengelola grid computing.

3.    Kurangnya pengetahuan yang mencukupi bagi teknisi IT maupun user non teknisi mengenai manfaat dari grid computing itu sendiri.

KONSEP DASAR 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

Pengertian
Komputasi terdistribusi adalah bagian dari bidang ilmu komputer, yang menjelaskan tentang studi didistribusikan sistem. Sebuah sistem terdistribusi adalah sebuah sistem perangkat lunak, yang terletak pada komputer jaringan komunikasi dan mengkoordinasi dengan menggunakan pesan. Komponen dalam interaksi satu dengan lainnya bertujuan untuk mencapai tujuan yang sama.

Tujuan dan Keuntungan
Tujuan utama dari sistem komputasi terdistribusi adalah untuk menghubungkan setiap pengguna dengan sumber daya yang terpisah secara fisik ke dalam suatu sistem dengan menggunakan cara yang terkoordinasi. Dan dengan memerlukan kapasitas yang lebih besar dari kapasitas individual komponennya.
Openness merupakan properti dari sistem terdistribusi dimana setiap sub-sistem secara terus-menerus terbuka untuk berinteraksi dengan sistem yang lain. Salah satu masalah yang dihadapi dalam usaha menyatukan sumber daya yang terpisah ini antara lain adalah skalabilitas, dapat atau tidaknya sistem tersebut dikembangkan lebih jauh untuk mencakup sumber daya komputasi yang lebih banyak.
Konsekuensinya, sistem terdistribusi terbuka memberikan beberapa tantangan berikut:
·         Monotonicity.
Sesuatu yang telah dipublikasikan dalam sistem terbuka (open system) maka tidak dapat diambil kembali.
·         Pluralism.
Sub-sistem-subsistem berbeda dalam sistem open distributed dapat mempunyai informasi yang berbeda, dan mungkin menyebabkan konflik. Tidak ada pengatur kebenaran sentral dalam sistem open distributed.
·         Unbounded nondeterminism.
Subsistem-subsistem dapat naik dan turun, dan link komunikasi dapat masuk dan keluar antar sub-sistem dalam sistem open distributed. Karena itu, waktu yang diperlukan untuk menyelesaikan suatu operasi tidak dapat dibatasi dan dipastikan.

Kelemahan dan Kerugian
Jika tidak direncanakan dengan tepat, suatu distributed system dapat menurunkan reliabilitas total dari komputasi jika ketidak-tersediaan dari suatu node dapat menyebabkan gangguan bagi node-node lain. Troubleshooting dan diagnosing terhadap masalah dalam distributed system dapat menjadi lebih sulit, karena perlu analisis yang berkaitan dengan node jauh atau menginspeksi komunikasi antar node di dalam sistem.
Banyak tipe komputasi tidak cocok bagi lingkungan terdistribusi, biasanya yang berhubungan dengan jumlah komunikasi jaringan atau sinkronisasi yang dibutuhkan antar node. Jika bandwidth, latency, atau persyaratan komunikasi begitu signifikan, maka tidak ada keuntungan dari distributed computing dan kinerja dapat lebih burukk daripada lingkungan non-distributed.

Arsitektur
Terdapat banyak arsitektur dari perangkat keras dan perangkat lunak yang sangat bervariasi dan digunakan untuk distributed computing atau komputasi terdistribusi. Pada tingkat yang rendah, perlu adanya penghubung antara CPU dengan CPU lainnya yang berjumlah banyak. Pada tingkat yang lebih tinggi perlu dibutuhkannya interkoneksi untuk menghubungkan CPU yang ada dengan sistem komunikasi
Arsitektur umun yang digunakan oleh Distributed Computing atau Komputasi Terdistribusi yaitu sebagai berikut :
1. Client-server : klien menghubungi server untuk pengambilan data, kemudian server memformatnya dan menampilkannya ke pengguna.
2. 3-tier architecture : Kebanyakan aplikasi web adalah 3-Tier.
3. N-tier architecture : N-Tier biasanya menunjuk ke aplikasi web yang menyalurkan lagi permintaan kepada pelayanan enterprise. Aplikasi jenis ini paling berjasa bagi kesuksesanserver aplikasi.
4. Tightly coupled (clustered) : biasanya menunjuk kepada satu set mesin yang sangat bersatu yang menjalankan proses yang sama secara paralel, membagi tugas dalam bagian-bagian, dan kemudian mengumpulkan kembali dan menyatukannya sebagai hasil akhir.
5. Peer-to-peer : sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan. Dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer.
6. Space based : Mengacu ke suatu infrastruktur yang membuat ilusi atau virtualisasi dari satu ruang-alamat (address-space) tunggal. Data secara transparan direplikasi sesuai dengan kebutuhan aplikasi.
7. Mobile code : berdasarkan prinsip arsitektur mendekatkan pemrosesan ke sumber data
8. Replicated repository : Di mana repository dibuat replikanya dan disebarkan ke dalam sistem untuk membantu pemrosesan online/offline dengan syarat keterlambatan pembaharuan data dapat diterima.


Map Reduce

Definisi
Setiap istilah perlu definisi, dan harus ada kesepakatan akan definisi tersebut biar tidak terjadi salah pengertian ataupun salah paham diantara para pengguna istilah tersebut. MapReduce pun punya definisi. 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.

Desain dan Struktur, MapReduce itu sederhana.
Dari definisinya, MapReduce mungkin terkesan sangat ribet. 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. Terus hasil akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan merepotkan.
Beruntunglah, 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.
Untuk memperdalam pemahaman, mari kita simak satu contoh. Taruhlah kita akan membuat program MapReduce untuk menghitung jumlah tiap kata dalam beberapa file teks yang berukuran besar. Dalam program ini, fungsi Map dan fungsi Reduce dapat didefinisikan sebagai berikut:

      map(String key, String value):
            //key : nama file teks.
            //value: isi file teks tersebut.
            for each word W in value:
                  emitIntermediate(W,"1");
      reduce(String key, Iterator values):
            //key : sebuah kata.
            //values : daftar yang berisi hasil hitungan.
            int result = 0;
            for each v in values:
                  result+=ParseInt(v);
            emit(AsString(result));

Hasil akhir  dari program ini adalah jumlah dari tiap kata yang terdapat dalam file teks yang dimasukkan sebagai input program ini.



NoSQL

Apa Itu noSQL Databases?
Database noSQL adalah Database yang tidak memiliki perintah SQL dan konsep penyimpanannya semistuktural atau tidak struktural dan tidak harus memiliki relasi seperti layaknya tabel-tabel MySQL.
Tujuan dari penggunaan database noSQL adalah untuk model data spesifik dan memiliki skema fleksibel dalam membuat aplikasi modern. Kebanyakan dalam beberapa kasus penggunaan Database noSQl berfungsi dalam pengembangan real time application.
Cara kerja database noSQL yakni dengan menggunakan berbagai model database untuk mengelolah dan mengakses data, seperti document, key-value, grapik, in-memory dan search-engine.
Kita akan mengulas beberapa model database noSQL diatas.
Document, mendefenisikan database sebagai dokumen artinya penyimpanan data dan proses manipulasinya dalam bentuk objek dokument. Contoh objek dokument yang sering diterapkan dalam pemograman adalah format Json. Konsep dari Json merupakan konsep data yang efesien dalam pembangunan aplikasi karena Json memiliki sifat yang fleksible, semi struktur dan hirarki. Sehingga memungkinkan program akan lebih mudah dikembangkan karena document akan menyusaikan penyimpanan data berdasarkan kebutuhan dari aplikasi. Berikut ini adalah contoh document dengan konsep data Json.
Key-value, defenisi database dengan key-value adalah penyimpanan data dengan dengan metode key-value (nilai kunci) sebagai tempat akses data-data. Contoh database yang manganut konsep key-value adalah dyamondDB.
Grapik, database jenis grafik menggunakan node sebagai entitas data dan edge sebagai hubungan antar entitas. Setiap edge memiliki node awalan dan node akhiran. Edge juga menggambarkan hubungan antara oratua-anak, kepemilikan, tindakan dan lain sebagainya. Tidak ada batasan jumlah suatu node untuk terhubung dengan node lainnya. Tujuan dari database jenis grapik ini adalah jejaring media sosial, grafik pengetahuan dan mesin rekomendasi. Untuk lebih mudah memahi database grafik anda dapat melihat gambar dibawah ini tentang relasi pertemanan.
In-Memory, Database model ini bekerja dengan menyimpan data pada memori utama, yang familiar dengan perangkat keras pasti akan tau apa nama perangakat tersebut? yah… betul nama perangkatnya adalah RAM (Random Access Memory). Dengan penyimpanan data didalam RAM maka aksesnya akan sangat cepat sekali. Tidak ada perangkat disk manapun yang mampu menyaingi kecepatan dari akses langsung ke memori utama (RAM) sekali pun itu SSD (Solid State Disc). Jika demikian bagaimana jika perangkat (server) mati tentunya seluruh data akan hilang. Akan tetapi cara kerja database jenis ini tidak seperti itu sepenuhnya, karna database dala in-memory dapat disimpan dalam sebuah disc penyimpanan layaknya MySQL dan Postgres. Database in-memory cara kerja penyimpanan datanya kedalam sebuah disk yaitu dengan cara pengambilan log dan snapshot. Anda dapat perhatikan gambar dibawah ini untuk menjelaskan cara kerjanya.
Search-Engine, bagi anda yang senang berselancar didunia maya tentunya pernah memakai google untuk mencari suatu informasi yang berupa konten data baik itu berupa text, gambar, vidio dan lain-lain. Dalam hal ini search-engine database digunakan pada saat proses pencarian karena penciptaan dari konsep database search-engine didedikasikan untuk mesin pencari. Cara kerja dari search-engine database digunakan untuk mencari data yang sangat panjang, besar dan tidak terstruktur yakni dengan menggunakan index sebagai sumber informasi untuk pengoptimalan pencarian.


DAFTAR PUSTAKA

https://www.dewaweb.com/blog/cloud-computing/

http://id.m.wikipedia.org/wiki/Komputasi_grid

http://syahrulzzadie.blogspot.com/2014/10/pengertian-cloud-compunting-grid.html?m=1

http://speedradene.blogspot.com/2013/04/grid-pengertiankelebihandan-kekurangan.html?m=1

http://mersannurhakim.blogspot.com/2015/06/apa-itu-grid-computing.html

https://sis.binus.ac.id/2014/10/11/konsep-dasar-virtualisasi/

http://jaisicamm.blogspot.com/2015/02/distributed-parallel-computing.html

http://www.teknologi-bigdata.com/2013/02/mapreduce-besar-dan-powerful-tapi-tidak.html

https://muhammadiqbal.art.blog/2019/08/23/apa-itu-database-nosql-dan-jenis-jenis-database-nosql/