Pada artikel sebelumnya, saya menuliskan tentang virtualisasi hardware yang merupakan salah satu teknologi di cloud computing. Tetapi saya sendiri belum menjelaskan apa itu cloud computing. Maka karena itu di kesempatan kali ini saya akan mencoba menjelaskan apa itu cloud computing dan secara logis kenapa kita membutuhkan cloud computing.
Vertical Scaling
Sebut saja ada sebuah perusahaan, misalnya CS. CS adalah sebuah perusahaan yang menyediakan pembelajaran via internet, sehingga memiliki sebuah website adalah kewajiban.
Awalnya CS hanya memiliki sedikit pengunjung sehingga arsitektur seperti Gambar 1 pun sudah memadai. Owner (pemilik) CS memiliki sebuah komputer pribadi yg mempunyai kecepatan biasa-biasa saja (mid-end) dan menggunakannya sebagai server untuk melayani permintaan dari users. Untuk (misalnya) 100 users pertama komputernya masih bisa untuk melayaninya, tetapi ketika pelanggannya semakin banyak akhirnya komputer mid-endnya pun kewalahan. Membuka website CS terasa lambat. Solusinya? Cukup beli komputer yang high-end untuk menggantikan computer mid-endnya. Apa yang dilakukan oleh owner CS ini disebut dengan vertical scaling.
Gambar 1. Arsitektur server konvensional
Tetapi semakin bertambahnya users CS, semakin tinggi juga keperluan dari servernya sehingga komputer high-endnya pun kewalahan. Dan di pasaran sudah tidak ada lagi spesifikasi komputer yang lebih tinggi dari apa yang sudah dimiliki oleh sang owner. Lalu apa solusinya? Perkenalkan horizontal scaling.
Horizontal Scaling
Owner CS mempelajari bahwa untuk melayani users yang semakin membludak bisa menggunakan arsitektur seperti yang ditunjukkan oleh gambar 2. Permintaan dari users yang datang via internet akan mampir ke load balancer (LB) terlebih dahulu sebelum benar-benar diproses oleh server. Tugas LB adalah mengirimkan permintaan user ke server-server yang ada di belakangnya. Misalkan sang owner CS memiliki 100 server dan ada 50.000 user terhubung, maka masing-masing server secara rata-rata akan melayani 500 user. Jika hanya ada 10.000 user terhubung, maka masing-masing server secara rata-rata akan melayani 100 user.
LB tidak akan kewalahan, karena tugas LB hanya untuk mendelegasikan permintaan ke server. Dan mendelegasikan permintaan itu sangatlah cepat prosesnya, berbeda dengan yang dilakukan oleh server yang harus memeriksa ke database, melakukan penghitungan, dan lain sebagainya.
Gambar 2. Arsitektur server konvensional dengan horizontal scaling
Jika ternyata semakin banyak penggunanya dan 100 server tidaklah cukup, maka CS cukup membeli server baru dan menempatkannya di belakang LB. Sederhana kan? Hal ini disebut dengan horizontal scaling. Tidak akan lagi ada masalah karena secara teori sekarang arsitektur server CS bisa mengatasi berapa pun jumah user yang terhubung ke websitenya hanya dengan menambah server. Tetapi owner CS memperhatikan sebuah tren bahwa penggunjung websitenya ramai di sekitar hari rabu dan sangat sepi di hari minggu seperti yang ditunjukkan oleh gambar 3.
Gambar 3. Contoh statistik pengunjung sebuat website atau aplikasi
Saat di titik puncak, CS membutuhkan banyak server, sebut saja 100 server. Saat di titik rendah, CS hanya membutuhkan sedikit server, sebut saja 30 server. Agar koneksi ke website selalu cepat, maka CS memiliki 100 server untuk amannya. Tapi saat hari minggu, 70 server yang ada sebenarnya tidak dibutuhkan. Owner CS pun berang dan mengganggap ini adalah sebuah pemborosan! Karena sebagai sebuah badan bisnis, CS tentunya ingin menekan pengeluaran sebanyak mungkin.
Dari sisi teknis pun, menambah dan mengurangi server secara manual adalah sebuah pekerjaan yang membosankan dan menghabiskan waktu. Administrator harus memasang server di rak, men-set networknya, meng-install OSnya, dan lain-lain. seperti itu terus berulang-ulang setiap CS membutuhkan server baru agar bisa menampung pengunjungnya yang terus bertambah. Belum lagi jika ada salah konfigurasi atau salah pasang kabel yang bisa mengakibatkan layanan menjadi lambat atau berhenti. Secara teknis pun kondisi seperti ini tidaklah ideal.
Lalu apa solusi untuk kedua hal ini? Mari kita sambut cloud computing.
Cloud Computing
Pada akhirnya owner CS pun berkenalan dengan yang namanya cloud computing atau komputasi awan. Sang owner mengetahui bahwa ada provider cloud computing seperti Amazon Web Service, RackSpace, DigitalOcean, dan lain sebagainya.
Mari kita anggap CS menggunakan jasa dari sebuah perusahaan bernama DO sebagai provider cloud computing-nya. Cara kerjanya dari sisi CS sederhana, CS bisa menyewa "komputer" yang ada di jaringan komputer milik DO yang bisa diakses via internet seperti pada Gambar 4. Apakah anda memperhatikan tanda kutip di kata "komputer"? Ya, karena "komputer" yang kita bicarakan adalah komputer virtual atau istilah kerennya virtual machine (VM). VM adalah "komputer" yang berjalan diatas hardware virtual. Karena sifatnya yang virtual, maka VM bisa dikloning atau di-copy-paste selayaknya file-file di komputer anda.
Gambar 4. Dengan cloud computing, server yang ada adalah virtual machine.
VM yang disewa oleh CS bisa dikonfigurasi sebagai apapun. CS bisa menyewa satu VM dari DO dan mengkonfigurasikanya sebagai server. Jika sudah selesai maka CS bisa menyimpan VM tersebut. Dan jika CS membutuhkan 100 server, maka CS tinggal mengkloning VM tersebut sebanyak 100 kali! Sangat mudah hanya dengan beberapa kali klik tanpa perlu proses yang ribet dan panjang. Umumnya di DO untuk menghidupkan satu VM hanya butuh waktu sekitar 1 menit. Bandingkan dengan proses sebelumnya yang akan memakan waktu yg lama dan rawan kesalahan. Dari sisi teknis, ini sangat baik dan ideal.
Dan ketika CS hanya membutuhkan 30 server, maka CS bisa langsung mematikan 70 VM yang tidak dibutuhkan. Penyewaan VM di Cloud Computing umumnya adalah per jam atau per menit. Sehingga saat anda tidak membutuhkan VM dan mematikannya, maka anda akan menghemat uang. Owner CS pun akan girang saat menghitung berapa uang yang bisa diselamatkan!
Jika CS tidak nyaman dalam menggunakan komputer dari perusahaan lain karena alasan privacy atau harga, maka CS bisa saja memasang cloud computing di server sendiri. Sudah ada platform untuk cloud computing yang open source seperti OpenStack atau CloudStack. Untuk OpenStack salah satu komputernya berfungsi sebagai controller seperti yang ditunjukkan di Gambar 4. Apakah hanya butuh controller? tentu tidak, ini baru pemanasan. Apa itu controller dan apa lagi komponen yang lain, mungkin di artikel berikutnya.
Kesimpulan
Cloud computing merupakan sebuah bidang yang relatif baru di dunia komputer. Walaupun demikian kehadirannya sudah sangat dibutuhkan oleh banyak perusahaan. Banyak layanan yang berkembang dari cloud computing seperti IaaS, Paas, SaaS, dan lain sebagainya yang juga mungkin akan dijelaskan di artikel berikutnya. Untuk ke depannya Cloud computing akan semakin populer, mempelajari dan menjadi ahli di bidang ini merupakan pilihan yang baik sekali.
Tentunya penjelasan ini baru penjelasan awal seputar cloud computing. Masih banyak yang tidak disebutkan di sini. Bukan karena memang disimpan untuk nanti, tetapi saya juga memang masih belajar... hahaha.. Di sini tidak dijelaskan seperti buku-buku pelajaran sekolah yang menjelaskan horizontal scaling adalah bla bla... cloud computing adalah bla bla bla... tetap saya harap penjelasan ini dapat dimengerti oleh pembaca. Silahkan anda membuat definisi sendiri dari artikel ini.
Ada komentar? Koreksi? Atau permintaan? Silahkan tulis di bawah! ^^
Level artikel ini adalah beginner.
Dituliskan oleh
Ganis (ganis)
pada 22 Desember 2015 dan telah dibaca sebanyak 7815 kali.
Tag:
cloud computing,
horizontal scaling,
vertical scaling
Komentar:
januridp
300
190
·
8 tahun, 8 bulan yang lalu
·
2 jempol
di tunggu artikel terkait ya om :-D
ganis
198
841
penulis
·
8 tahun, 8 bulan yang lalu
·
1 jempol
siap, kalo sudah agak longgar sedikit waktunya (baca: kalau sudah tidak males2an T_T) hahaha~
agizta
163
1
·
8 tahun, 5 bulan yang lalu
·
2 jempol
oke deh. keren artikel nya
prawido
36
1
·
8 tahun, 4 bulan yang lalu
·
2 jempol
Bagus gan sharenya, klu bisa juga dijelaskan soal auto scallingnya di cloud gan jadi kita bisa lebih mengerti lagi
basri
19
0
·
8 tahun, 3 bulan yang lalu
·
1 jempol
Ok ok
rendyfebry
98
1
·
8 tahun, 1 bulan yang lalu
·
1 jempol
Nice,, tapi bisa tolong jelaskan tentang LB atau controller nya itu sendiri? Saya tau DO dan semua tentang server dan clonning nya. Tapi untuk menerapkan Load Balancer / Controller lebih detailnya bagaimana ya? Terima Kasih.
ganis
198
841
penulis
·
8 tahun, 1 bulan yang lalu
·
1 jempol
Halo @rendryfebry, pertanyaan yang bagus ^^ untuk menerapkan LB bisa menggunakan Nginx atau Apache. Untuk nginx bisa mengikuti dokumentasinya di sini -> http://nginx.org/en/docs/http/lo...
rendyfebry
98
1
·
8 tahun, 1 bulan yang lalu
·
1 jempol
@ganis quick question lainnya. Bagaimana dengan database nya di antara server2 itu? Jika masing2 server dengan database sendiri2, sync nya bagaimana. Jika hanya 1 server database, server ini jg akan kelebihan beban.
Artikel Lainnya
Hadi Hidayat Hammurabi
27 Desember 2015Cara Kerja If
$artikel[1]; //tegur saya jika saya salah :)
Bagaimana if bekerja? Kenapa tiba-tiba sebuah kode dijalankan ketika kondisi benar?
Sebenarnya, kondisi if bekerja seperti ilustrasi di bawah ini:
if(true/false ...
1 menit bacaan
Septian Adhi Tama
17 Desember 2015Apa Itu JSON?
Assalamu'alaikum Wr. Wb.
Kali ini saya akan berbagi mengenai sebuah bahasa atau format yang digunakan untuk menyimpan dan melakukan pertukaran data, yaitu JSON. JSON sendiri saat ini banyak digunakan ...
6 menit bacaan · beginner
ahmadrifai280
55
·
8 tahun, 9 bulan yang lalu
·
2 jempol