Bagaimana e-ujian Menangani 130k+ Concurrent Traffic

Menyediakan platform terbaik untuk membantu digitalisasi pendidikan di Indonesia adalah tujuan utama dari e-ujian.id. Platform yang terbaik bukan hanya sekedar mudah untuk digunakan, namun juga harus reliable atau handal khususnya ketika diakses oleh ribuan pengguna secara bersamaan kapanpun selama 24/7/365.
Hal yang sangat challenging dalam memberikan platform untuk sekolah adalah bahwa pengguna yang mengakses platform tersebut adalah registered users yang setiap user akan memiliki informasi yang berbeda-beda (unique page) baik informasi pengguna, kode ujian, nilai dan informasi lainnya SERTA diakses diwaktu yang bersamaan oleh ratusan ribu pengguna. Dengan kondisi seperti ini, maka tidak mungkin untuk menggunakan teknik page cache seperti pada aplikasi web berita dan lain-lain.
Sebelumnya, kami pernah menjelaskan arsitektur yang kami gunakan untuk menangani ujian yang bisa dilihat di Bagaimana E-ujian.id Memastikan Ujian (PAS) Berjalan Lancar. Arsitektur tersebut bekerja dengan baik dengan kondisi traffic concurrent yang kami terima masih di bawah 41k. Namun, saat ini kami mendapatkan traffic yang jauh lebih besar hingga 130k+ dan terus meningkat dari waktu ke waktu seperti pada gambar di bawah ini

Kondisi ini (meningkatnya traffic yang kami terima dari waktu ke waku yang disebabkan semakin banyaknya pengguna e-ujian.id), memaksa kami untuk melakukan riset dan ujicoba sehingga platform yang kami sediakan akan semakin reliable dalam menangani traffic yang lebih besar dalam jangka yang panjang kedepannya.
Dengan pertolongan Alloh Subhanahu wa ta’ala melalui sebab ikhtiar semua riset dan ujicoba yang kami lakukan, dapat kami simpulkan bahwa hal yang signifikan dalam membantu kami menangani concurrent traffic yang besar adalah rewrite code yang kami gunakan yaitu dari penggunaan PHP yang merupakan bahasa pemrograman interpreter ke Go-Lang yang merupakan bahasa pemrograman compiler dan penggunaan auto scaling infrastructure.
Secara sederhana, berikut adalah gambaran arsitektur yang kami gunakan saat ini.

Dalam praktiknya, arsitektur yang kami gunakan tidak sesederhana yang terlihat pada gambar di atas karena kami menerapkan penggunaan micro services dan auto scaling infrastructure untuk menangani traffic yang ada. Namun, kami bisa sampaikan bahwa penggunaan bahasa pemrograman yang tepat dalam sebuah aplikasi akan sangat berpengaruh dalam menangani concurrent traffic yang besar.
Dengan perubahan yang kami lakukan tersebut, kami melihat peningkatan performa yang sangat signifikan pada platform e-ujian.id yang akhirnya mampu menangani concurrent traffic yang besar dengan baik. Kami memiliki keyakinan bahwa arsitektur yang kami gunakan saat ini adalah yang terbaik sehingga akan terus kami lakukan improvement dengan dasar arsitektur yang ada saat ini.
Tentu kami tidak akan berhenti di sini. Kami akan terus melakukan riset dan ujicoba untuk terus meningkatkan performa platform e-ujian.id sehingga akan semakin mudah digunakan dan reliable dari waktu ke waktu (Lihat daftar update aplikasi e-ujian.id). Kami terus berdo’a dan memohon kepada Alloh Subhanahu wa ta’ala agar aplikasi e-ujian.id dapat terus memberikan kontribusi kepada dunia pendidikan di Indonesia.
Semoga bermanfaat!