Nama : Dino
Arinanda
Npm : 5C414929
Kelas : 4IA12
A.Cloud Computing
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.
Jenis jenis Cloud Computing
Berdasarkan jenis layanan-nya, Cloud Computing dibagi menjadi berikut ini:
1.Software as a Service (SaaS)
Adalah salah satu layanan dari Cloud Computing dimana kita
tinggal memakai software (perangkat lunak) yang telah disediakan. User
hanya tahu bahwa perangkat lunak bisa berjalan dan bisa digunakan dengan
baik.
Contoh, layanan email publik (Gmail, YahooMail, Hotmail),
social network (Facebook, Twitter, LinkedIn) instant messaging (Yahoo
Messenger, Skype, Line, WhatsApp) dan masih banyak lagi yang lain.
Dalam perkembangan-nya, banyak perangkat lunak yang dulu
hanya kita bisa nikmati dengan menginstall aplikasi tersebut di komputer
kita (on-premise) mulai sekarang bisa kita nikmati lewat Cloud
Computing.
Keuntungan-nya, kita tidak perlu membeli lisensi dan
tinggal terkoneksi ke internet untuk memakai-nya. Contoh, Microsoft
Office yang sekarang kita bisa nikmati lewat Office 365, Adobe Suite
yang bisa kita nikmati lewat Adobe Creative Cloud.
Baca Juga Apa itu Landing Page dan Bagaimana Cara Kerjanya?
2.Platform as a Service (PaaS)
Adalah layanan dari Cloud Computing kalau kita analogikan
dimana kita menyewa “rumah” berikut lingkungan-nya (sistem operasi,
network, database engine, framework aplikasi, dll), untuk menjalankan
aplikasi yang kita buat.
Kita tidak perlu pusing untuk menyiapkan “rumah” dan
memelihara “rumah” tersebut. Yang penting aplikasi yang kita buat bisa
berjalan dengan baik di “rumah” tersebut. Untuk pemeliharaan “rumah” ini
menjadi tanggung jawab dari penyedia layanan.
Sebagai analogi, misal-nya kita sewa kamar hotel, kita
tinggal tidur di kamar yang sudah kita sewa, tanpa peduli bagaimana
“perawatan” dari kamar dan lingkungan-nya. Yang penting, kita bisa
nyaman tinggal di kamar itu, jika suatu saat kita dibuat tidak nyaman,
tinggal cabut dan pindah ke hotel lain yang lebih bagus layanan-nya.
Contoh penyedia layanan PaaS ini adalah: Amazon Web
Service, Windows Azure, bahkan tradisional hosting-pun merupakan contoh
dari PaaS.
Keuntungan dari PaaS adalah kita sebagai pengembang bisa
fokus pada aplikasi yang kita buat, tidak perlu memikirkan operasional
dari “rumah” untuk aplikasi yang kita buat.
3.Infrastructure as a Service (IaaS)
Adalah layanan dari Cloud Computing dimana kita bisa
“menyewa” infrastruktur IT (komputasi, storage, memory, network). Kita
bisa definisikan berapa besar-nya unit komputasi (CPU), penyimpanan data
(storage), memory (RAM), bandwith, dan konfigurasi lain-nya yang akan
kita sewa.
Mudah-nya, IaaS ini adalah menyewa komputer virtual yang
masih kosong, dimana setelah komputer ini disewa kita bisa
menggunakan-nya terserah dari kebutuhan kita. Kita bisa install sistem
operasi dan aplikasi apapun diatas-nya.
Contoh penyedia layanan IaaS ini adalah: Amazon EC2, Windows Azure (soon), TelkomCloud, BizNetCloud, dan sebagainya.
Keuntungan dari IaaS ini adalah kita tidak perlu membeli
komputer fisik, dan konfigurasi komputer virtual tersebut bisa kita
rubah (scale up/scale down) dengan mudah. Sebagai contoh, saat komputer
virtual tersebut sudah kelebihan beban, kita bisa tambahkan CPU, RAM,
Storage dan lainnya dengan segera.
B.Grid Computing
Komputasi
Grid adalah penggunaan sumber daya yang melibatkan banyak komputer yang
terdistribusi dan terpisah secara geografis untuk memecahkan persoalan
komputasi dalam skala besar. Grid computing merupakan cabang dari
distributed computing.Grid komputer 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.
KONSEP GRID COMPUTINGBeberapa konsep dasar dari grid computing :
a.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.
b.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.
Contoh Grid Computing
1.Scientific
Simulation. Komputasi grid diimplementasikan di bidang fisika, kimia,
dan biologi untuk melakukan simulasi terhadap proses yang kompleks.
2.Medical Image. Penggunaan data grid dan komputasi grid untuk menyimpan medical-image. Contohnya adalah eDiaMoND project
3.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).
4.Big
Science. Data grid dan komputasi grid digunakan untuk membantu proyek
laboratorium yang disponsori oleh pemerintah Contohnya terdapat di
DEISA.
5.E-Learning.
Komputasi grid membantu membangun infrastruktur untuk memenuhi
kebutuhan dalam pertukaran informasi dibidang pendidikan. Contohnya
adalah AccessGrid.
6. Visualization. Komputasi grid digunakan untuk membantu proses visualisasi perhitungan yang rumit.
7.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.
Manfaat Komputasi Grid
Penggunaan
Grid Computing System untuk perusahaan-perusahaan akan banyak
memberikan manfaat, baik manfaat secara langsung maupun tidak langsung.
Beberapa manfaat tersebut antara lain :
a.Grid
computing menjanjikan peningkatan utilitas, dan fleksibilitas yang
lebih besar untuk sumberdaya infrastruktur, aplikasi dan informasi. Dan
juga menjanjikan peningkatan produktivitas kerja perusahaan.
b.Grid computing bisa memberi penghematan uang, baik dari sisi investasi modal maupun operating cost–nya
c.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.
C.Virtualisasi
Istilah
virtualisasi (virtualization) memiliki banyak pengertian. Jika merujuk
pada kamus Oxford, istilah virtualization merupakan turunan dari kata
virtualize yang memiliki makna “Convert (something) to a
computer-generated simulation of reality”. Dalam terjemahan bebas,
virtualisasi berarti Mengubah sesuatu (mengkonversi) ke bentuk simulasi
dari bentuk nyata yang ada.
Inti
dari virtualisasi adalah membuat sebuah simulasi dari perangkat keras,
sistem operasi, jaringan maupun yang lainnya. Di bidang teknologi
informasi, virtualisasi digunakan sebagai sarana untuk improvisasi
skalabilitas dari perangkat keras yang ada.
Menurut
Alan Murphy dalam papernya Virtualization Defined – Eight Different
Ways, menyebutkan setidaknya terdapat delapan istilah dalam penerapan
virtualisasi. Diantaranya adalah operating system virtualization,
application server virtualization, application virtualization,
management virtualization, network virtualization, hardware
virtualization, storage virtualization dan service virtualization.
D.Distrubuted dalam Cloud Computign
Komputasi
Terdistribusi merupakan salah satu tujuan dari Cloud Computing, karena
menawarkan pengaksesan sumber daya secara parallel, 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, dapat menghemat biaya operasional karena tidak membutuhkan
sumber daya (resourches).
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 cloud 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.
2. 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
3. Penghubung antara keduanya
Penghubung keduanya bisa berupa jaringan LAN atau internet.
E.Map Reduce & No.SQL
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
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.
Penjelasan lebih mengenai NoSQL database akan dijelaskan pada sub bab
dibawah ini.
Database
NoSQL, juga disebut Not Only SQL, adalah sebuah pendekatan untuk
pengelolaan datadan desain database yang berguna untuk set yang sangat
besar data terdistribusi. NoSQL, yang 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
melarangbahasa 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.
F.No SQL Database
Berbeda
dengan SQL Database, dari namanya saja sudah bisa ditebak bahwa nosql
database adalah kebalikan dari sql database. Tidak relational / tanpa
relation. Database nosql atau yang biasa disebut NoSQL database / cloud
database merupakan penyimpanan data / database yang tidak terstruktur.
Nosql
database tidak seperti sql database yang menggunakan tabel dalam
penyusunan datanya, nosql database menggabungkan semua database tidak
membedakan jenis2nya dan tanpa karakteristik umum. Tapi nosql database
ini memiliki kecepatan yang super cepat dibanding dengan sql database,
pencariannya lebih terfokus. Nosql sebetulnya tidak 100% menyimpan data
dengan cara tidak terstruktur, terkadang ada miripnya dengan sql
database dengan sedikit susunan pada saat2 tertentu.
Bedanya
nosql database ini menyusun bagian didalam bagian lainnya (subset).
Jadi setiap bagian akan memiliki beberapa bagian lagi didalamnya. Nosql
ini cocok dan biasa digunakan untuk penyimpanan aplikasi atau data yang
sangat besar. Karena dengan menggunakan nosql data dapat diakses dengan
sangat fleksibel dan sangat sedikit kemungkinan error ketika mengakses
banyak data dengan format yang berbeda-beda.
Pengelompokan database noSQL
Secara
umum, database noSQL dibagi menurut format penyimpanan dokmentnya .
Berikut ini adalah pengelompokan database noSQL berdasarkan model
(penyimpanan) datanya
1. Document
Database contohnya MongoDB, seiap satu object data disimpan dalam satu
dokumen. Dokumen sendiri bisa terdiri dari key-value, dan value sendiri
bisa berupa array atau key-value bertingkat.
2. Graph
, Format penyimpanan data dalam struktur graph. Format ini sering
dipakai untuk data yang saling berhubungan seperti jejaring social.
Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB.
FlockDB dipakai oleh twitter.
3. Key – Value, contoh database jenis ini adalah Apache Cassandra.
4. Object
Database. Format database yang disimpan dalam object object, Object
disini sama dengan pengertian object di Pemrograman beroreintasi object ,
Contoh databasenya adalah Db4o.
5. Tipe lainnya adalah tabular, tuple store dan berbagai jenis lain yang tidak terlalu populer.
Kelebihan NoSQL di banding Relasional Database
1. NoSQL
bisa menampung data yang terstruktur, semi terstruktur dan tidak
terstuktur secara efesien dalam skala besar (big data/cloud).
2. Menggunakan OOP dalam pengaksesan atau manipulasi datanya.
3. NoSQL
tidak mengenal schema tabel yang kaku dengan format data yang kaku.
NoSQL sangat cocok untuk data yang tidak terstruktur, istilah singkat
untuk fitur ini adalah Dynamic Schema.
4. Autosharding,
istilah sederhananya, jika database noSQL di jalankandi cluster server
(multiple server) maka data akan tersebar secara otomatis dan merata
keseluruh server.
Kekurangan
dari database NoSQL sendiri , minimal bagi saya adalah Hostingnya
mahal. beberapa layanan di luar negeri mencharge biaya 100-200USD untuk
hosting database noSQL. Selain itu, saya belum pernah menemukan hosting
Cpanel yang mendukung database MongoDB atau database noSQL lainnya.
Selain
itu, karena bervariasinya produk dan format penyimpanan, berpindah
antar satu produk database ke produk noSQL lainnya perlu waktu untuk
belajar. Contohnya ketika anda pindah dari MongoDB ke Cassandra, maka
anda harus belajar lagi dari awal, berbeda dengan database RDMS.
No comments:
Post a Comment