Infrastruktur di Balik Pemecahan Rekor Pengalaman Virtual

Meraih Pencapaian Baru Setiap Akhir Pekan di Roblox

Kemampuan Roblox untuk memperbesar kapasitasnya dan mendukung puluhan juta pengguna bermain bersama di jutaan pengalaman virtual unik bukanlah hasil dari 1 inovasi saja. Roblox dapat mencapainya berkat perpaduan antara budaya inovasi yang lebih luas dan banyak hal kecil yang dikerjakan dengan baik. Itulah cara kami membangun infrastruktur yang saat ini mendukung pemecahan rekor kunjungan ke berbagai pengalaman virtual di Roblox. Salah satu pengalaman virtual tersebut, Tumbuhkan Taman , baru-baru ini memecahkan Guinness World Records® sebagai video game yang paling banyak dimainkan secara bersamaan oleh 21,6 juta pengguna. Platform Roblox sendiri terus memecahkan rekor pencapaian baru dalam hal jumlah pemain dalam waktu bersamaan (selama hampir 2 dekade). Rekor yang terbaru melampaui 30 juta pemain secara serentak.

Roblox menghadapi tantangan unik dalam membangun dan memelihara infrastruktur untuk jutaan pengalaman virtual buatan kreator, termasuk Berpakaian untuk Mengesankan , Adopsi Aku , dan Rel Mati , yang membutuhkan metodologi teknologi yang inovatif. Platform ini mendukung puluhan update per jam dan lebih dari 30 juta pengguna serentak dengan infrastruktur yang dapat diperbesar kapasitasnya selama lonjakan traffic yang tidak terduga. Infrastruktur ini harus mendukung lonjakan luar biasa saat lebih dari 21 juta pengguna bergabung dalam 1 pengalaman virtual secara bersamaan (dan kode update-nya berasal dari kreator independen). Teknisi Roblox menciptakan solusi inovatif yang menentang prinsip konvensional, yaitu solusi yang terinspirasi oleh 4 nilai inti kami.

Infrastruktur di Roblox

Teknisi Roblox mengelola 24 pusat data lokal di berbagai penjuru dunia, yang menjalankan server game. Ketika pengguna bergabung ke suatu pengalaman virtual, dia dicocokkan dengan pusat data terdekat dan unit yang paling sesuai di pusat data itu untuk meminimalkan latensi. Kami juga mengelola 2 pusat data inti, yang jauh lebih besar dan menjalankan layanan terpusat seperti situs web, algoritme rekomendasi, filter keamanan, ekonomi virtual, dan platform publikasi, yang diperlukan agar pusat data lokal dapat berfungsi. Jaringan tertutup global menghubungkan semua pusat data lokal ke pusat data inti, dengan pusat data lokal berfungsi sebagai firewall untuk melindungi layanan yang berjalan di pusat data inti.

Raih Solusi Jangka Panjang: Prediksi Kapasitas Secara Proaktif

Idealnya, para kreator tidak perlu memikirkan kapasitas karena infrastruktur yang bekerja di belakang layar tidak perlu terlihat oleh mereka. Ketika seorang kreator memublikasikan pengalaman virtual ke Roblox, tugas kami adalah memberikan dukungan kapasitas yang dibutuhkan, berapa pun jumlah pemain yang bergabung. Pada awalnya, kami merencanakan kapasitas untuk 1 atau 2 tahun ke depan setahun sekali. Namun dalam beberapa tahun terakhir, pengalaman virtual sukses seperti Berpakaian untuk Mengesankan, Ikan, Rel Mati , Tumbuhkan Taman membuat kami memikirkan ulang kerangka kerja kami untuk perencanaan kapasitas.

Sejalan dengan nilai kami untuk meraih solusi jangka panjang, kami kini memprediksi kebutuhan kapasitas hingga 2 tahun sebelumnya, sehingga menyeimbangkan permintaan pengguna dengan pemanfaatan server yang efisien. Siklus perencanaan kami melibatkan akuisisi pusat data, pembaruan hardware server, dan pembuatan jaringan fisik, dengan pusat data baru seperti yang ada di Brasil yang direncanakan bertahun-tahun sebelumnya. Tim jaringan juga mengelola kapasitas “gelap” untuk memastikan operasi tanpa gangguan meskipun ada masalah seperti pemutusan kabel jaringan.

Kapasitas yang dimiliki Roblox saat ini didasarkan pada prediksi yang dibuat 2 tahun lalu, ketika kami belum memprediksi pertumbuhan pengalaman virtual dari tidak dikenal menjadi sangat populer dalam hitungan minggu. Game populer seperti Tumbuhkan Taman dan Berpakaian untuk Mengesankan, yang meningkatkan jumlah pemain bersamaan lebih dari dua kali lipat dari 13,9 juta pada bulan April menjadi 30,6 juta pada bulan Juni 2025, tidaklah ada saat prediksi kapasitas ini dibuat. Misalnya, pada Maret 2025, jumlah pengguna serentak Rel Mati melonjak menjadi 1 juta, sehingga menggunakan semua kapasitas CPU yang tersedia.

Belajar dari lonjakan popularitas seperti ini, kami telah beralih ke siklus perencanaan yang lebih sigap. Untuk secara konsisten mendukung rekor jumlah pemain di Roblox, tim teknis menerapkan siklus perencanaan, pengujian, dan penyesuaian kapasitas mingguan yang ketat. Hari Senin didedikasikan untuk me-review insiden, diikuti dengan perencanaan kapasitas pada hari Selasa. Sepanjang minggu, rekayasa kekacauan berkepanjangan dijalankan. Hari Kamis difokuskan untuk me-review kapasitas untuk semua update besar yang jadwalnya telah diberitahukan kreator kepada kami. Hari Jumat, sumber daya cloud tambahan disediakan untuk memastikan bahwa platform siap untuk penggunaan puncak di akhir pekan. Sepanjang minggu, kami terus merilis fitur yang benar-benar baru dan tidak membatasi deployment berkelanjutan oleh semua teknisi.

Hormati Komunitas: Kapasitas Siap Pakai untuk Kreator

Pembatasan sumber daya adalah konsep yang lazim dalam ilmu komputer. Namun, konsep dalam ilmu komputer ini paling banyak disalahgunakan dan disalahpahami. Ketika teknisi baru bergabung dengan Roblox, solusi pertama mereka sering kali mencakup, “Andai saja kita bisa meminta kreator mengubah konfigurasi ini atau memperlambat acara mereka…”. Teknisi Roblox yang berpengalaman kemudian menjelaskan nilai kami dalam menghormati komunitas dan bahwa kami tidak mendikte kreator.

Contohnya, sebagian besar sistem game memiliki solusi sederhana untuk pencocokan saat jutaan pemain bermain secara bersamaan. Mereka membatasi akses bergabung, membuat pemain menunggu, atau memasukkan mereka ke server acak dengan mengabaikan algoritme pencocokan. Di Roblox, kami melakukan sebaliknya. Kami merancang ulang seluruh sistem pencocokan kami untuk lonjakan jumlah pemain. Paling tinggi, sistem ini mengevaluasi hingga 4 miliar kemungkinan kombinasi bergabung per detik. Beberapa tahun yang lalu, kami menetapkan target 10 juta aktivitas bergabung dalam 10 detik, dan kami terus berusaha mencapai target itu.

Untuk menghindari pembatasan sumber daya karena kapasitas, kami bereksperimen dengan cloud bursting sebagai bagian dari transisi kami ke infrastruktur seluler, yang memungkinkan peningkatan kapasitas secara dinamis dan hemat tenaga komputasi. Arsitektur ini menangani permintaan puncak dengan mencocokkan pengguna ke unit pusat data inti dan unit pusat data lokal cloud. Kami sedang berupaya membuat pusat data lokal berbasis cloud yang sepenuhnya dapat diaktifkan dan dinonaktifkan secara otomatis, serta sepenuhnya didesain untuk algoritme pencocokan.

Contoh lainnya adalah sistem filter teks kami, yang pada puncaknya menangani 250.000 permintaan per detik. Inferensi model besar ini menjalankan 250.000 token dengan jendela konteks yang terus membesar. Dan dengan lebih dari 300 proses inferensi AI yang dijalankan dalam pengoperasiannya, pemilik layanan Roblox menginvestasikan banyak waktu untuk menemukan perpaduan ideal profil inferensi antara GPU dan CPU. Bahkan saat beban puncak, teknisi Roblox menghormati komunitas dengan memprioritaskan kebebasan kreator dan keamanan pengguna.

Berkreasi, Berkembang, dan Menghasilkan: Uji Tekanan Sistem Demi Ketahanan

Dengan perencanaan, kami membangun kapasitas dan algoritme untuk mendukung update paling menarik dari para kreator. Namun, kami perlu memastikan sistem ini dapat bertahan saat beban puncak tertinggi atau satu pemadaman layanan. Informasi yang dikumpulkan dari penggunaan puncak di lebih dari 1.600 layanan mikro membantu mengidentifikasi layanan untuk melakukan uji tekanan lebih lanjut.

Sesuai dengan nilai kami untuk berkreasi, berkembang, dan menghasilkan, setiap hari kami mengambil beberapa layanan tersebut dan menekan kapasitas pengoperasiannya. Kami mengamati karakteristiknya, lalu memperbaikinya sebelum akhir pekan. Kami menjalankan “tes kapasistas aktual” ini pada hari Selasa. Tim keandalan kami juga menjalankan Continuous Capacity Correctness (C3). Setiap tim teknis menggunakan dasbor C3 untuk memprediksi dan mengelola kapasitas CPU layanannya. Hal ini memungkinkan pemilik layanan terus belajar dari beban puncak terakhir untuk meningkatkan atau menurunkan kapasitas untuk beban puncak berikutnya. Kami juga telah meluncurkan sistem yang melacak pola panggilan di mesin inti Roblox untuk rilis baru. Sistem ini membantu memastikan bahwa kami lebih siap selama update berjalan.

Bahkan dengan semua persiapan ini, kami terkadang masih menghadapi skenario di mana pola traffic yang tidak terduga dapat menyebabkan suatu alur layanan atau produk melumpuhkan platform. Contohnya, proses analitik 2 triliun persitiwa dapat memperoleh 30% lebih banyak traffic karena update populer. Di sinilah mekanisme ketahanan kami, seperti kontrol konkurensi adaptif (ACC), pemutus aliran listrik, dan pembatasan permintaan ulang, mulai berfungsi untuk melindungi platform. Tahun ini, kami juga membangun platform rekayasa kekacauan untuk memperkuat ketahanan dan skalabilitas infrastruktur kami dengan menyusupkan kesalahan secara acak, menghabiskan sumber daya, dan mengakhiri proses secara acak dalam pengoperasiannya.

Ambil Tanggung Jawab: Libatkan Semua Orang

Kami menghabiskan waktu sepanjang minggu untuk menguji dan mempersiapkan update besar di akhir pekan. Namun, ketika akhir pekan tiba, masih ada pekerjaan yang harus kami lakukan. Menjelang update akhir pekan, teknisi Roblox berkolaborasi untuk memantau perubahan yang akan dilakukan dan memprediksi kapasitas yang tersisa, sehingga menyediakan sumber daya cloud tambahan sesuai kebutuhan untuk mengakomodasi jutaan pemain tambahan melalui pusat data lokal virtual.

Pada hari Jumat, kami memutuskan apakah kami perlu menambahkan kapasitas ekstra dengan sumber daya cloud. Proses ini memberikan arahan yang jelas kepada tim cloud hybrid kami untuk menyediakan kapasitas ekstra yang cukup untuk mengakomodasi jutaan pemain tambahan. Meskipun 24 pusat data lokal fisik kami berfungsi, setelah semua pengujian, kami mungkin memutuskan bahwa kami membutuhkan pusat data lokal tambahan. Tidak mungkin untuk membangun dan mengaktifkan server dalam 12 jam, jadi kami bekerja dengan mitra cloud kami untuk membangun beberapa pusat data lokal virtual. Kami mengujinya pada hari Jumat, lalu kami siap untuk akhir pekan.

Dengan semangat penuh untuk mengambil tanggung jawab, semua orang, termasuk eksekutif tertinggi kami, berpartisipasi dalam rotasi siaga—bahkan di akhir pekan. Lonjakan jutaan pengguna pada hari Sabtu sering kali dapat memicu ratusan peringatan. Tim mengatasi peringatan ini jauh-jauh hari, sehingga kami dapat menangani tantangan selama update besar atau beban puncak baru di platform.

Seperti pernyataan Leonardo da Vinci yang sering dikutip, “Belajar tidak pernah membuat pikiran lelah.” Setiap beban puncak menginspirasi kami untuk belajar dan menemukan teknik baru untuk membuat infrastruktur kami lebih dapat diandalkan dan tidak terlihat. Kreator kami memublikasikan atau merilis update, dan melalui keajaiban infrastruktur yang tidak terlihat, puluhan juta pengguna mulai menikmati pengalaman virtual baru nyaris seketika. Kami sangat menghargai kreator dan pengguna kami karena telah menantang kami untuk melampaui batas ilmu komputer.