Senin, 05 Oktober 2020

Skalabilitas Layanan Melalui Cloud

             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