Jabatan Profesional Muda – JPro

GANGGUAN PENDAFTARAN LAMAN WEB PENDAFTARAN VAKSIN PADA 26 MEI:

JAWAPAN KEPADA 4 SOALAN POPULAR NETIZEN

Apabila pendaftaran bagi vaksin Astrazenega Siri Kedua dibuka pada 12 tengahari 26 Mei lalu, netizen berpusu-pusu masuk ke laman web pendaftaran di bawah kendalian Jawatan Kuasa Jaminan Akses Vaksin (JKJAV). Ini menyebabkan laman web tersebut mengalami gangguan akibat trafik masuk yang terlalu tinggi. Dianggarkan lebih 1juta pengguna internet telah cuba mendaftar diri.
 
Apa yang dialami netizen di bahagian laman web boleh diumpamakan seperti sebuah restoran makanan. Pembeli hanya berurusan di kaunter pembelian (muka hadapan laman web) dan tidak tahu apa berlaku di bahagian dapur restoran. Bagi memahami sebab berlaku, kita perlu tahu dahulu apa yang berlaku di bahagian “dapur” laman web.
 
Setiap laman web ada bahagian hadapan (kaunter jualan) dan bahagian belakang (dapur masakan).
 
1| Bahagian Hadapan atau “User Interface”
 
HTML dan Javascript antara bahagian hadapan laman web yang digunakan untuk pamer borang (form) kepada pengguna (user). Di dalam konteks website JKJAV, anda akan nampak form untuk mengisi no. kad pengenalan, no. telefon dan maklumat lain termasuk pengesahan melalui “Captcha” serta butang hantar apabila semua maklumat sudah diisi.
 
2| Bahagian Belakang atau Application Programming Interface (API)
 
API atau bahasa mudahnya “orang tengah” berfungsi menghubungkan antara Bahagian Hadapan laman web dengan pengkalan data (database). Apabila anda tekan negeri, akan keluar senarai pilihan tarikh temujanji. Apa yang berlaku adalah negeri yang dipilih tersebut memanggil satu API untuk menyenaraikan tarikh yang dihubung kepada pengkalan data.
 
Artikel ini menjelaskan secara ringkas antara 4 soalan popular daripada netizen.
 
1| Mengapa isu ini hangat diperkatakan?
 
Apa yang berlaku pada hari kejadian adalah tiada maklum balas daripada laman web kepada pengguna apabila senarai tarikh tidak muncul. Ini menyebabkan pengguna tekan refresh banyak kali. Sebenarnya kita boleh melihat di console laman web memaparkan kesalahan “errors” seperti “500 Service Unavailable/Timeout” dan “429 Too Many Requests” serta “CORS”. Ini berlaku disebabkan API telah mencapai had limit yang ditetapkan (API limitation)
 
2| Apakah admin laman web tidak pernah menguji keupayaan sistem pada waktu penggunaan yang tinggi?
 
Sesuatu server telah ditetapkan had pengguna pada suatu masa berdasarkan ujian bebanan (stress test) pengguna ke atas server. Contohnya, sistem telah lulus ujian untuk 1000 pengguna pada satu saat. Namun sekiranya pada hari kejadian had telah melebihi 1000 pengguna, setiap user akan cuba tekan butang refresh beberapa kali menyebabkan bertambah tekanan ke atas server.
 
Kejadian ini bertambah buruk dengan kesalahan “CORS” yang merupakan kesalahan “multi-cross platform”. Dalam kejadian laman web pendaftaran vaksin ini, bilangan pengguna adalah jauh lebih tinggi daripada anggaran asal.
 
3| Kenapa perlu pengesahan oleh “CAPTCHA” setiap kali refresh?
 
CAPTCHA adalah singkatan nama bagi “Completely Automated Public Turing test to tell Computers and Humans Apart”. Ianya adalah ciri keselamatan bagi membezakan samada robot ataupun manusia yang sedang mengisi maklumat. Ianya bertujuan mengelakkan unsur-unsur penipuan atau user duplication.
 
4| Kenapa ada pengguna yang berjaya daftar dan ada yang tidak berjaya?
 
Ini adalah kerana had limit dan CORS yang ditetapkan oleh pengendali laman web.
 
Kami yakin pasukan yang membina Laman Web Pendaftaran Vaksin ini telah pun mengambil “lesson learnt” daripada pelbagai komen netizen, developer dan software architect yang telah mengesyorkan “design architecture” yang sesuai.
 
Walau sehebat mana kebijaksanaan manusia mencipta sesuatu, ianya pasti tidak sempurna. Kerana yang sempurna hanyalah Allah s.w.t dan kita hanyalah hambaNya yang sentiasa memerlukan bantuan dan petunjuk dari Allah.

Ditulis oleh

Anas Faris Fakhruddin
Kluster Teknologi Maklumat,
Jabatan Profesional Muda, JPro
Penulis merupakan AJK Kluster Teknologi Maklumat JPro. Beliau bekerja sebagai software developer.
 

30 Mei 2021