Ahmad Izzudin Prastomo
I Gusti Ngura Putu
Intan Oka Herdanis
Nurul Annis (55411385)
Tiara Indah
Cloud Computing adalah
sebuah model komputasi / computing, dimana sumber daya seperti processor /
computing power, storage, network, dan software menjadi abstrak dan diberikan
sebagai layann di jaringan / internet menggunakan pola akses remote. Hal ini karena
komputasi awan memlalui konsep virtualisasi, standarisasi dan fitur mendasar
lainnya dapat mengurangi biaya Teknologi Informasi (TI), menyederhanakan
pengelolaan layanan TI, dan mempercepat penghantaran layanan.
Model billing dari
layanan in umumnya mirip dengan modem layanan publik. Ketersediaan on-demand
sesuai kebutuhkan, mudah untuk di kontrol, dinamik dan skalabilitas yang hampir
tanpa limit adalah beberapa atribut penting dari cloud computing.
Kehadiran komputasi
awan awalnya memang hadir bagi kalangan industri. Beberapa alasan yang melatar
belakangi penerapan teknologi ini, antara lain :
1. Ini
adalah sebuah mdel layanan berbasis internet untuk menampung sumberdaya sebuah
perusahaan. Artinya sebuah perusahaan tak perlu lagi memiliki atau mendirikan
infrastruktur lantaran sudah ada perusahaan lain yang menyediakan “penampung”di
cloud alis internet.
2. Sebuah
perusahaan tak perlu lagi mengalokasikan anggaran untuk pembelian dan perawatan
infrastruktur software.
3. Perusahaan
pun tak perlu memiliki pengetahuan serta merekrut tenaga pakar dan tenaga
pengontrol infrastruktur di cloud yang mendukung mereka.
Karakteristik
Komputasi Awan :
Berikut lima karakteristik, seperti yang didefinisikan oleh NIST, dianggap melekat dalam layanan komputasi awan :
1. On-Demand Self-Service
Sebuah layanan cloud computing harus dapat dimanfaatkan oleh
pengguna melalui mekanisme swalayan dan langsung tersedia pada saat dibutuhkan.Berikut lima karakteristik, seperti yang didefinisikan oleh NIST, dianggap melekat dalam layanan komputasi awan :
1. On-Demand Self-Service
2. Broad
Network Access
Sebuah layanan cloud computing harus dapat diakses dari mana
saja, kapan saja, dengan alat apa pun, asalkan kita terhubung ke jaringan
layanan. Contoh HP, Tablet.
3. Resource
Pooling
Sebuah layanan cloud computing harus tersedia secara terpusat dan
dapat membagi sumber daya secara efisien.
4. Rapid
Elasticity
Sebuah layanan cloud computing harus dapat menaikkan (atau
menurunkan) kapasitas sesuai kebutuhan.
5. Measured Service
Sebuah layanan cloud computing harus disediakan secara terukur,
karena akan digunakan dalam proses pembayaran.
Cloud computing mempunyai 3 tingkatan
layanan yang diberikan kepada pengguna, yaitu:
1.
Infrastructure as service
Hal
ini meliputi Grid untuk virtualized server, storage & network. Contohnya
seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
2.
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.
3.
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 dan SalesForce.com.
Ada
3 komponen dasar komputasi awan dalam topologi yang sederhana menurut
Velte(2010) yaitu :
1.
Client, yaitu terminal atau interface
dimana para user duduk dan mengakses layanan yang disediakan provider. Terdiri
atas tiga tipe, yaitu thin (client yang tidak memiliki hard
drive internal), thick (komputer personal pada umumnya) dan mobile
(seperti PDA, Smartphone dan lain sebagainya).
2.
Datacenter, yaitu server dimana aplikasi yang
kita jalankan sebagai layanan berada.
3.
Distributed Server, yaitu server yang posisinya
“berdekatan secara virtual” meskipun sebenarnya letaknya berjauhan. Biasanya
digunakan karena kepraktisannya dan fleksibilitas. Berarti jika kita memerlukan
server tambahan, kita tinggal memasukkannya ke sistem cloud kita saja (attach).
Mekanisme
Akses Cloud Computing
Mekanisme akses ke cloud computing
"mungkin" dapat dijalankan secara beraneka ragam, mulai dari akses standar LAN maupun intranet
dengan sedikit aplikasi agen atau klien,sampai kepada akses extranet dan internet
melalui browser yang terhubung ke sebuah portal aplikasi dari penyedia layanan
cloud computing. Protokol aplikasi yang digunakan pun dapat seragam, tetapi hal
ini tidaklah terlalu signifikan bila dilihat dari sisi pengguna akhir, dimana
pengguna akhir cukup mengetahui bagaimana cara mengakses dan mempergunakan jasa
layanan yang terdapat pada Cloud computing.
Perangkat
Lunak Cloud Computing
Belakangan ini dikembangkan sebuah bentuk nyata
(atau setidaknya sebuah common platform/bentuk umum) dari konsep Cloud
Computing agar dapat di-implementasikan secara umum dan lebih luas, seperti
contoh berikut :
•
Ubuntu Enterprise Cloud (UEC)
•
Proxmox
•
OpenStack
•
OpenNebula
•
Eucalyptus
Engine utama dalam cloud computing sebetulnya adalah
aplikasi virtualisasi di sisi server, seperti,
•
KVM
•
QEMU
• Xen
Implementasi Komputasi Awan (Cloud
Computing)
Sudah
banyak, komputasi awan yang sekarang sudah mulai banyak digunakan fasilitasnya
oleh masyarakat. Disini akan dibahas tentang implementasi komputasi awan GAE
dan AWS.
1. Google App Engine (GAE)
Tujuan utama dari
Google berkontribusi dalam komputasi awan adalah untuk memanfaatkan sumberdaya
komputer yang dimilikinya dalam jumlah yang sangat besar yang berjumlah jutaan
komputer dan tersebar di seluruh dunia serta untuk mempercepat operasi-operasi
yang dilakukan oleh aplikasi-aplikasi Web saat ini. Dalam hal ini, komputasi
awan yang dikembangkan oleh Google pada dasarnya berada di seputar jaringan
komputer raksasa yang bekerja untuk aplikasi-aplikasi utamanya seperti Google
Search dan Google Mail (GMail).
Tidak sebarang aplikasi
dapat berjalan di komputer-komputer milik Google yang membentuk jaringan
komputasi awan itu. Agar dapat berjalan dengan baik, aplikasi-aplikasi harus
dikembangkan menggunakan ‘aturan-aturan’ yang ditetapkan oleh Google.
Aplikasi-aplikasi seperti itu dinamakan sebagai Google App Engine (GAE),
dimana saat ini aplikasi-aplikasi jenis ini bisa ditulis dengan cara yang
relatif mudah oleh para pemrogram komputer yang memahami bahasa pemrograman
Java dan Phyton.
Google memantau lama
waktu kerja CPU (Central Processing Unit) yang dilakukan untuk melakukan
pemrosesan layanan, berapa kapasitas memori yang digunakannya, serta dapat
menghitung kapasitas ruang penyimpanan (hardisk) yang digunakannya, sehingga
kelak dapat menarik biaya sejumlah US$ tertentu pada penggunanya. Berikut
adalah Arsitektur Aplikasi Google App
Engine Secara Umum .
Dalam hal ini, Apps
Engine Request yang dimilikinya menentukan jumlah permintaan (request)
yang bisa ditangani oleh aplikasi. Kita perlu tau bahwa Google App Engine
menggunakan sistem basis data non-relasional BigTable untuk data yang
diletakkan di dalam sistemnya yang disebut DataStore. Apps Engine Request juga,
dengan komponen URL Fetch Service-nya, dapat berkomunikasi dengan
aplikasi-aplikasi lainnya atau mengakses sumberdaya lainnya yang ada di Web
dengan menggunakan URL (Uniform Resource Locator) yang dimiliki
aplikasi/sumberdaya itu.
Untuk mengembangkan
aplikasi Google App Engine, pengembang yang memiliki preferensi yang tinggi
terhadap bahasa pemrograman Java bisa menggunakan XMPP (Extensible
Messaging and Presence Protocol) yang merupakan versi 1.2.5 dari Java
SDK for App Engine. Layanan ini memungkinkan aplikasi Apps Engine berinteraksi
dengan layanan-layanan XMPP lainnya seperti (menyebutkan suatu contoh) Google
Talk. Jika pengguna menginginkan ‘cara cepat’ untuk mengembangkan
aplikasi-aplikasi Web untuk dijadikan aplikasi-aplikasi Google App Engine,
pengguna juga bisa menggunakan kakas (tool) yang dinamakan sebagai GWT
(Google Web Toolkit) atau menggunakan framework Spring.
GWT memungkinkan pengguna untuk mengembangkan aplikasi-aplikasi Web yang
responsif seperti layaknya aplikasi-aplikasi desktop namun sangat kaya
fitur dimana hal ini dapat dicapai dengan cara mengadopsi konsep RIA (Rich
Internet Applications).
Kelebihan :
1.
Aplikasi dapat dengan mudah
dan cepat dikembangkan menggunakan bahasa pemrograman Java dan/atau Phyton dan
tidak memerlukan usaha pemeliharaan yang ekstra sulit.
2.
Biaya penggunaan relatif
murah (bahkan gratis untuk aplikasi-aplikasi kecil) dan, jika kuota lebih
diinginkan, penambahan kuota dapat dilakukan dengan cara yang sangat masuk
akal.
Kekurangan
:
1.
Aplikasi-aplikasi tertentu,
terutama yang memerlukan akses penuh ke sistem yang mendasari, relatif sukar
untuk dikembangkan.
2.
Sistem yang terkendali penuh
tidak memungkinkan pustaka-pustaka (library) dan framework-framework tertentu
digunakan oleh aplikasi-aplikasi GAE.
3.
Tidak mendukung penggunaan
sistem basis data relasional.
2. Amazon Web Service (AWS)
Amazon.com sebelumnya
lebih terkenal dengan toko buku on-line, beberapa tahun yang lalu
(sekitar tahun 2005), Amazon mengembangkan dirinya menjadi AWS (Amazon
Web Service) yang menyediakan layanan komputasi awan, dimana setiap
fungsi yang ada di dalamnya bisa diakses dengan panggilan Web Service.
Protokol-protokol Web Service yang digunakan adalah SOAP dan REST.
Layanan-layanan di AWS
dapat dimanfaatkan berdasarkan :
1. Waktunya
(waktu penggunaan CPU)
2. Volume
(jumlah data yang ditransfer)
3. Perhitungan
(jumlah antrian pesan [message])
4. Waktu
dan ruang (penggunaan ruang hardisk dalam periode waktu tertentu)
Komponen
AWS :
-
Amazon S3 (Simple Storage
Service). Digunakan untuk menyimpan data untuk
penggunaan pribadi maupun umum. Dalam hal ini, ada 3 lokasi yang memungkinkan
pemanfaatannya, yaitu di Amerika Serikat (termasuk California Utara), Eropa,
serta Asia.
-
Amazon Cloud Front.
Digunakan untuk mendukung Amazon S3 agar bisa bekerja dengan lebih baik dan
lebih cepat.
-
Amazon SQS (Simple Queue Service).
Digunakan untuk mendukung tercapainya pemrosesan AWS yang cepat dan tidak
pernah mengalami kegagalan.
-
Amazon SimpleDB.
Digunakan untuk menyimpan data yang bersifat semi-terstruktur. Basis data yang
digunakan (SimpleDB) tidak bersifat relasional, melainkan menyimpan data dalam
bentuk pasangan nama/nilai (name/value) yang mirip dengan struktur
denormalisasi pada sistem basis data relasional, demi meningkatkan kinerja query.
-
Amazon RDS (Relational Database
Service). Digunakan untuk mengelola data yang
disimpan dalam sistem basis data MySQL.
-
Amazon EC2 (Elastic Compute
Cloud). Digunakan sebagai infrastruktur
(kapasitas pemrosesan, memori, dan ruang hardisk) yang menyediakan layanan (service)
yang dibutuhkan oleh para pengguna.
Menggunakan suatu
teknik yang dinamakan sebagai virtualisasi, para pengguna bisa melakukan
pengembangan aplikasinya di atas berbagai perangkat keras dengan cara yang
serupa dengan saat pengembangan aplikasi dilakukan pada sebuah mesin tunggal.
Perangkat lunak virtualisasi memastikan bahwa masing-masing instance secara
logika dapat saling berbagi waktu kerja CPU (Central Processing Unit)
dan berbagi ruang memori dengan cara yang benar tanpa saling berinterferensi
satu dengan lainnya.
Selanjutnya, sistem
yang besar, yang menggunakan ruang penyimpanan berukuran besar, dapat
melandaskan dirinya pada fasilitas yang ada di dalam Amazon Simple Storage
Service (S3). Dalam hal ini, berlainan dengan pendekatan yang dilakukan oleh
Google dengan sistem basis data non-relasionalnya (BigTable), Amazon menggunakan
berbagai sistem basis data yang bertindak sebagai layanan (service) bagi
komponen-komponen yang membutuhkan data. Sistem basis data yang digunakan
Amazon Web Service (AWS) berupa baik sistem data relasional (RDS-Relational
Database Server) maupun non-relasional (SimpleDB) yang dimotori oleh sistem
basis data non-relasional Dynamo. Dalam semua hal ini, untuk mengoptimalkan
layanannya, Amazon Web Service (AWS) menggunakan perhitungan utilitas perangkat
keras dan menyeimbangkannya menggunakan suatu fasilitas yang dinamakan sebagai
ELB (Elastic Load Balancing). Untuk melakukan pengaturan
komponen-komponen agar mengelompok berdasarkan apa yang dilakukannya serta
berdasarkan utilitasnya, Amazon menggunakan apa yang dinamakan sebagai Amazon
Autoscaling. Sementara untuk melakukan pemantauan terhadap CPU-CPU, lalulintas
jaringan, serta penggunaan hardisk yang melintas jaringan komputer server dalam
sistem komputer awan (cloud computing) yang dimiliki Amazon digunakan
suatu komponen perangkat lunak dalam sistem Amazon Web Services (AWS) yang
dinamakan sebagai Amazon Cloud Watch.
Kelebihan :
1.
Aplikasi-aplikasi AWS yang
ditulis menggunakan bahasa-bahasa pemrograman PHP, Ruby, serta Java, dapat
dikembangkan dengan cara yang sangat fleksibel karena pengguna memiliki kendali
penuh pada sistem yang mendasari.
2.
Struktur pembiayaan sederhana.
3.
Bisa menggunakan sistem
basis data (relasional maupun non-relasional) apa saja yang dibutuhkan oleh
pengguna.
4.
Jika pengguna mau, pengguna
bisa saja menggunakan/menambahkan server-server yang berada di luar Amazon Web
Service.
Kekurangan :
1.
Kurva belajar yang terjal
(relatif sulit untuk mempelajari pengembangan aplikasi-aplikasi di atas Amazon
Web Service dibandingkan di atas Google App Engine).
2.
Memerlukan waktu yang
relatif lebih lama untuk mengembangkan aplikasi (bahkan untuk aplikasi-aplikasi
yang relatif sederhana).
0 komentar:
Posting Komentar