Cloud Computing menjanjikan cara mudah untuk menggunakan dan mengakses sekumpulan besar sumber daya virtual (seperti perangkat keras, platform pengembangan dan / atau layanan) yang dapat disediakan secara dinamis untuk menyesuaikan dengan beban kerja variabel, memungkinkan juga untuk pemanfaatan sumber daya yang optimal. Oleh karena itu, mekanisme penyediaan otomatis CloudComputing dapat membantu aplikasi untuk menskalakan sistem naik dan turun dengan cara menyeimbangkan kinerja dan keberlanjutan secara ekonomi. Jadi, apa artinya menskalakan?
Pada dasarnya,
skalabilitas dapat
didefinisikan "sebagai kemampuan sistem tertentu untuk mengatasi masalah
saat cakupan masalah itu meningkat (jumlah elemen atau objek, volume pekerjaan
yang terus bertambah, dan / atau rentan terhadap pembesaran)". Misalnya,
meningkatkan throughput sistem dengan menambahkan lebih banyak sumber daya
perangkat lunak atau perangkat keras untuk mengatasi peningkatan beban kerja.
Kemampuan untuk meningkatkan skala sistem mungkin bergantung pada desainnya,
jenis struktur data, algoritme, atau mekanisme komunikasi yang digunakan untuk
mengimplementasikan komponen sistem. Karakterisasi berbagai jenis skalabilitas
dilaporkan oleh Bondi (2000), berikut kami rangkum beberapa contoh yang
relevan:
·
Load
Scalability: ketika sistem memiliki kemampuan untuk memanfaatkan sumber daya
yang tersedia dengan baik pada tingkat beban kerja yang berbeda (yaitu
menghindari penundaan yang berlebihan, konsumsi atau pertengkaran yang tidak
produktif). Faktor-faktor yang mempengaruhi skalabilitas beban mungkin
penggunaan paralelisme yang buruk, penjadwalan sumber daya bersama yang tidak
tepat, atau overhead yang berlebihan. Misalnya, server web mempertahankan
tingkat skalabilitas beban yang baik jika kinerja sistem dipertahankan dalam
tingkat yang dapat diterima ketika jumlah utas yang menjalankan permintaan HTTP
meningkat di puncak beban kerja.
·
Space
Scalability: Sistem memiliki kemampuan untuk menjaga konsumsi sumber daya sistem
(mis. Memori atau bandwidth) di antara tingkat yang dapat diterima saat beban
kerja meningkat. Misalnya, sistem operasi menskalakan dengan baik menggunakan
mekanisme memori virtual yang menukar halaman memori virtual yang tidak
digunakan dari memori fisik ke disk, untuk menghindari kehabisan memori fisik.
Contoh lain adalah ketika jumlah akun pengguna layanan web 2.0 seperti jejaring
sosial tumbuh dari ribuan menjadi jutaan.
·
Structural
Scalability: Penerapan standar pada sistem memungkinkan peningkatan jumlah
objek yang dikelola atau setidaknya itu akan dilakukan dalam jangka waktu
tertentu. Misalnya, ukuran tipe data dapat mempengaruhi jumlah elemen yang
dapat direpresentasikan (menggunakan integer 16 bit sebagai pengidentifikasi
entitas hanya memungkinkan mewakili 65.536 entitas).
Faktor-faktor yang dapat meningkatkan atau mengurangi
skalabilitas mungkin sulit diidentifikasi dan bahkan spesifik untuk sistem
target. Terkadang tindakan yang diambil untuk meningkatkan salah satu dari
kemampuan ini dapat merusak yang lain. Misalnya, pengenalan algoritme kompresi
untuk meningkatkan skalabilitas Space (mis. Pesan kompresi pengurangan
bandwidth) berdampak pada skalabilitas beban (yaitu, peningkatan penggunaan
prosesor saat mengompresi pesan). Tindakan untuk menskalakan dapat
diklasifikasikan dalam:
1.
Vertical
Scaling: dengan menambahkan lebih banyak tenaga kuda (lebih banyak prosesor,
memori, bandwidth, dll.) Ke peralatan yang digunakan oleh sistem. Ini adalah
cara aplikasi diterapkan pada server memori bersama yang besar.
2.
Horizontal
Scaling: dengan menambahkan lebih banyak sumber daya perangkat lunak atau
perangkat keras yang sama. Misalnya, dalam layanan dua lapisan, lebih banyak
node front-end ditambahkan (atau dilepaskan) ketika jumlah pengguna dan beban
kerja meningkat (menurun). Ini adalah cara aplikasi digunakan di server
terdistribusi.
Skalabilitas harus selalu diingat sejak awal saat merancang arsitektur
sistem. Meskipun waktu ke pasar yang tepat, pembuatan prototipe yang cepat,
atau menargetkan sejumlah kecil pengguna dapat memerlukan pengembangan cepat,
arsitektur solusi harus mempertimbangkan skalabilitas. Ini berarti sistem dapat
meningkatkan jumlah pengguna dari ratusan menjadi ribuan atau bahkan jutaan
atau dapat meningkatkan kompleksitas. Dengan melakukan ini, risiko kegagalan
dan implementasi ulang sistem akan diminimalkan.
Cloud adalah paradigma komputasi yang bertujuan, di antara target utama
lainnya, untuk memudahkan penyediaan layanan, membantu penyedia layanan dengan
memberikan ilusi sumber daya dasar yang tak terbatas dan skalabilitas otomatis.
Artikel ini menjelaskan bagaimana Cloud Computing dapat membantu membangun
aplikasi yang dapat diskalakan dengan mengotomatiskan proses penyediaan layanan
dengan IaaS (Infrastructure as a Service) Clouds (mengurangi biaya manajemen
dan mengoptimalkan penggunaan sumber daya) dan menyediakan kerangka kerja PaaS
(Platform as a Service) ( dengan lingkungan eksekusi skalar, blok penyusun
layanan, dan API) untuk membangun aplikasi yang peka terhadap Cloud dalam model
Perangkat Lunak sebagai Layanan (SaaS).
Setelah memahami apa yang saat ini dipahami oleh skalabilitas dan secara
singkat digariskan, skalabilitas Cloud didasarkan pada tiga pilar dasar:
1.
Virtualization:
mengurangi kompleksitas sistem, menstandarisasi platform perangkat keras, dan
kemudian mengurangi biaya manajemen sumber daya.
2.
Resource
Sharing: berbagi sumber daya komputasi di antara berbagai aplikasi dan / atau
organisasi akan memungkinkan pengoptimalan penggunaannya untuk menghindari
waktu pendudukan yang jarang atau tidak aktif. Dalam pengertian ini,
virtualisasi membantu mengkonsolidasikan server di mesin fisik yang sama.
3.
Dynamic
provisioning: sumber daya harus disediakan dengan cara sesuai permintaan,
mereka juga harus secara otomatis ditampilkan di fly. Penyediaan dinamis
menyiratkan perlunya memantau kinerja layanan dan mengautomasi keputusan dan
tindakan untuk menanggapi beban kerja yang masuk / menurun.
Warehouse-Scale
Computers
Perusahaan internet, seperti Google, Amazon, Yahoo dan Microsoft’s online services division, telah
mengubah pusat data mereka menggunakan warehouse scale computers (WSC) yang
berbeda dari pusat data tradisional, seperti:
·
Pusat
data dimiliki oleh satu perusahaan.
·
Penggunaan
platform perangkat keras dan perangkat lunak yang relatif homogen.
·
Cluster
besar dianggap sebagai satu unit komputasi, tidak hanya satu set server
individu berkabel.
·
Seringkali
banyak platform perangkat lunak (aplikasi, middleware, dan perangkat lunak
sistem) dibangun sendiri dan disesuaikan dengan layanan yang mereka sediakan
(mesin pencari, gudang media, e-commerce, dll.) Daripada menggunakan perangkat
lunak pihak ketiga (aplikasi standar server, middleware, OS, dll.).
·
Mereka
menjalankan sejumlah kecil aplikasi yang sangat besar.
·
Penggunaan
lapisan manajemen umum yang secara fleksibel dapat mengontrol penyebaran
aplikasi di antara sumber daya bersama.
Gambar berikut menunjukkan arsitektur warehouse scale computer yang elemen
dasarnya adalah server enklosur 1U yang dipasang di dalam rak. Server
dihubungkan oleh switch Ethernet tingkat rak 1–10 Gbps dengan sambungan uplink
ke satu atau beberapa switch Ethernet tingkat cluster atau pusat data. Disk
drive dapat dikelola oleh Network Attached Storage (NAS) yang terhubung
langsung ke sakelar cluster, atau dihubungkan ke setiap server individu dan
dikelola oleh sistem file yang didistribusikan secara global sepertiGoogle’sFileSystem
(GFS).
Seperti yang ditunjukkan di atas, alat manajemen sumber daya adalah kunci
untuk mengontrol penyediaan sumber daya dinamis dan penerapan aplikasi, dan
karenanya, untuk menskalakan dengan cara yang sempurna. Sekali lagi, arsitektur
dan teknologi aplikasi terdistribusi tertentu digunakan juga untuk menghitung
sistem: sistem file terdistribusi, algoritme paralelisasi, penyampaian pesan,
dll. Pusat data dapat direplikasi di antara berbagai wilayah geografis untuk
mengurangi latensi pengguna dan meningkatkan kinerja layanan
Achmad Wikan Hamdani
17051204008
Tidak ada komentar:
Posting Komentar