Cloud Computing
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.
Sumber :
http://putrifebiani.blogspot.co.id/2014/05/map-reduce-dan-nosql.html