Perkataan “cloud” rasanya tak asing lagi dalam kamus anak muda zaman sekarang tapi kebanyakannya merujuk kepada “cloud storage” iaitu servis penyimpanan data online. Kali ini saya ingin menerangkan konsep cloud computing dari sudut seorang programmer.
Apa itu cloud?
‘The cloud is just someone else’s computer’, adalah salah satu meme yang banyak ditemui online. Hakikatnya begitulah, gambar yang diupload ke iCloud, website Twitter yang anda akses setiap hari, video yang anda tonton di YouTube, semuanya dilayan (hosted) oleh komputer-komputer yang tersusun di data center besar di seluruh dunia.
Okay, tapi cloud itu bukan sekadar timbunan komputer seluas berpuluh-puluh padang bola sahaja. Ada beberapa ciri-ciri penting untuk sesuatu itu dipanggil cloud computing.
Ciri-Ciri Cloud Computing
Berikut adalah ciri-ciri cloud computing yang utama bagi saya:
- sumber atas permintaan (on-demand resources)
- kitaran maklum balas pendek (short feedback cycle)
- berskala infinity (infinitely scalable)
- ketersediaan global (global availability)
Sumber Atas Permintaan (on-demand resources)
Ciri ini adalah kelebihan utama apabila menggunakan servis cloud computing. Sebarang sumber yang diperlukan untuk menyebarkan aplikasi anda sama ada server, sistem penyimpanan atau pengkalan data, kebiasaannya boleh disiapkan dalam masa kurang daripada 30 minit. Dengan ini, apabila aplikasi itu telah siap dibangunkan, ia boleh siap tersedia untuk disebarkan dalam masa yang amat singkat.
Dalam artikel Alkisah Syarikat A saya ingin menggambarkan bagaimanakah proses ini dilakukan sebelum ini. Terdapat pelbagai tugas yang perlu dilakukan sebelum sesuatu sumber itu sedia untuk digunakan. Cloud computing mengambil alih tugas ini dari syarikat A.
Kitaran Maklum Balas Pendek (short feedback cycle)
Salah satu kelebihan kebolehan menyiapkan sumber atas permintaan adalah kebolehan untuk bertindak dan menyelesaikan masalah kekurangan kapasiti sumber dengan segera. Sebelum ini, masa untuk menyiapkan sumber baru amat besar, oleh sebab itu sumber untuk aplikasi sentiasa disiapkan dengan konfigurasi lebih besar daripada keperluannya hanya supaya mereka mempunyai kapasiti untuk berkembang sebelum perlu dipesan sumber baru.
Tapi dengan kelebihan waktu singkat untuk menyediakan sumber baru, tidak perlu lagi server itu disiapkan dengan konfigurasi lebih dari keperluan. Jika aplikasi itu tiba-tiba mendapat trafik yang tinggi, penyiapan sumber baru untuk menampung kapasiti boleh dilakukan segera.
Berskala Infiniti (infinitely scalable)
Platform-platform hyperscaler cloud computing dikatakan mempunyai sumber infiniti. Pada hakikatnya, apa-apa sumber tidak boleh dikatakan infiniti kerana sumber asli dunia pasti akan habis suatu hari nanti. Tapi infiniti di sini bermaksud, platform-platform hyperscaler ini mampu berkembang lebih cepat daripada kadar keperluan sumber oleh semua pengguna platform tersebut.
Ketersediaan Global (global availability)
Secara teori satu sumber yang disebarkan dari sebuah data center di Malaysia punyai kebolehan untuk melayan permintaan daripada seluruh dunia. Hakikatnya, ini akan meninggalkan kesan kepada pengguna-pengguna yang berada di lokasi bertentangan dengan lokasi di mana aplikasi itu dilayan.
Oleh itu, untuk mengembangkan aplikasi ke taraf global, syarikat-syarikat perlu menyediakan server di seluruh dunia supaya permintaan dari pengguna boleh dilayan daripada data center yang terdekat dengan mereka. Bahkan teknologi seperti edge computing wujud hanya untuk mengurangkan masa untuk melayan permintaan pengguna dengan meletakkan server pelayan sedekat mungkin dengan pengguna.
Tapi untuk sesebuah syarikat itu menyediakan server di sebuah lokasi baru tidaklah mudah, terutamanya jika mereka tiada kehadiran fizikal di negara tersebut. Hal-hal regulasi, pembayaran bil dan sebagainya akan menjadi lebih rumit kerana terdapat transaksi rentas negara.
Platform hyperscaler cloud computing seperti AWS, Azure, Oracle dll. memudahkan proses ini. Semua aspek fizikal akan diuruskan pihak mereka. Sebagai syarikat pengguna kita hanya perlu membayar sumber-sumber tersebut. Tidak perlu lagi difikirkan aspek-aspek lain.
Konklusi
4 ciri-ciri di atas pada hemat saya adalah karakteristik utama sesebuah platform cloud computing. Dengan memahami ciri-ciri ini kita dapat menjadikan cloud computing ini sebagai alat untuk menyelesaikan permasalahan yang wujud dalam menyediakan aplikasi kita.
Pemahaman ini amatlah penting kerana tanpa memahami bagaimana teknologi cloud computing ini mampu membantu menyelesaikan masalah yang kita hadapi, kita hanyalah seperti lembu diikat hidung, ikut sahaja apa trend yang orang lain suapkan. Akhirnya masa dan wang dibazirkan tanpa kita memperoleh manfaat apa-apa pun.