Cara Grup Infrastruktur Mendorong Masa Depan untuk Semua Kegiatan Kami di Roblox
-
Grup Infrastruktur kami merancang, membuat, dan mengoperasikan sistem penyimpanan, komputasi, jaringan, keamanan, dan produktivitas teknis yang mendasari dan mendukung platform Roblox global.
-
Sistem-sistem tersebut beroperasi dengan skala besar—mendukung 77,7 juta* pengguna aktif harian, konten yang dikirimkan dengan ukuran exabyte, dan lebih dari 250 juta koneksi yang tersambung bersamaan, semuanya di lebih dari 135.000 server.
-
Semua yang dikerjakan oleh grup ini ditujukan untuk memaksimalkan keandalan dan efisiensi sistem kami serta membantu mengoptimalkan produktivitas teknisi kami.
Setiap detik pada setiap harinya, teknisi produk di Roblox dapat menggunakan lebih dari 2.000 layanan yang berjalan di infrastruktur cloud internal global kami. Platform kami mendukung jutaan pembacaan dan penulisan, menangani throughput dalam hitungan terabyte, dan memproses puluhan juta permintaan HTTP. Saat 77,7 juta* pengguna aktif harian kami masuk ke Roblox, mereka masuk melalui lebih dari 250 juta koneksi pada saat bersamaan.
Itu semua adalah skala sistem teknologi di Roblox, dan merupakan tanggung jawab Grup Infrastruktur kami. Dikenal dengan nama Infra, grup ini merancang, membuat, dan mengoperasikan sistem penyimpanan, komputasi, jaringan, keamanan, dan produktivitas teknis, serta pusat data perusahaan kami. Tujuan Infra adalah menawarkan sistem yang dapat diskalakan, andal, dan mudah digunakan. Ada tiga metrik terpenting bagi grup ini:
-
Ketersediaan—keandalan sistem kami
-
Cost-to-serve (biaya per layanan)—efisiensi sistem kami
-
Produktivitas—tingkat produktivitas teknisi Roblox dalam membangun di atas infrastuktur
Pemimpin grup Infra, Vice President of Engineering, Max Ross, mengatakan, “semua yang kami lakukan bertujuan untuk meningkatkan salah satu atau kombinasi dari ketiga hal berikut, yaitu ketersediaan, cost-to-serve, dan produktivitas.”
Semua yang kami lakukan bertujuan untuk meningkatkan satu atau beberapa kombinasi dari ketiga hal berikut, yaitu ketersediaan, cost-to-serve, dan produktivitas.
Menyelesaikan Masalah Baru Setiap Hari
Saat ada lebih dari satu juta pengguna yang bergabung ke suatu pengalaman virtual Roblox populer setelah update besar, atau fenomena yang dikenal dengan nama “thundering herd,” kreator tidak perlu merasa cemas. Tugas Infra adalah memastikan teknisi produk Roblox dapat membuat platform yang menghadirkan pengalaman terbaik dan paling stabil kepada penggunanya. Untuk melaksanakan tugas itu, tim Infra harus menangani sistem yang kompleks dan menyelesaikan masalah baru setiap hari.
Kenapa? Karena kami tidak menghubungkan puluhan juta pengguna aktif harian dengan suatu lokasi pemrosesan transaksi terpusat; itu adalah masalah yang sudah umum dipahami. Sebaliknya, kami menghubungkan pengguna dengan pengguna lain secara real-time di seluruh dunia. Secara keseluruhan, ribuan layanan Infra berjalan di lebih dari 135.000 server di dua pusat data inti, banyak pusat data tepi di seluruh dunia, dan beberapa penyedia layanan cloud publik.
Ketersediaan—Keandalan Sistem Kami
Salah satu faktor utama keberhasilan bisnis kami adalah waktu yang dihabiskan pengguna di Roblox, dan kami memahami bahwa keandalan infrastruktur secara langsung memengaruhi lamanya pengguna menggunakan platform kami.
Kami ingin mencapai 99,99 persen waktu aktif pengguna setiap bulannya, yang berarti sistem kami tidak boleh mengganggu lebih dari 0,01 persen jam interaksi. Teknisi produk kami juga mengharapkan infrastruktur cloud internal kami berfungsi setidaknya sebaik cloud publik. “Infrastruktur kami harus berfungsi selancar mungkin,” ujar Technical Director, Danny Yuan, “agar teknisi lain dapat membuat produk yang memuaskan pengguna kami.”
Infrastruktur kami harus berfungsi selancar mungkin agar teknisi lain dapat membuat produk yang memuaskan pengguna kami.
Salah satu cara kami mencapainya adalah dengan mendekatkan observabilitas dan konektivitas jaringan ke aplikasi pendukung pengalaman virtual Roblox. Kami menerapkan sidecar proksi Envoy bersama dengan setiap instans layanan dan kami bereksperimen dengan eBPF untuk mengamati status di balik koneksi antara proksi dan layanan eksternal. Cara ini membantu kami memahami dan, yang terpenting, mengurangi kehilangan paket, ujar Technical Director, Rob Cameron.
Gangguan Layanan Halloween
Banyak upaya keandalan Infra yang berasal dari pelajaran yang kami dapatkan ketika terjadi gangguan layanan selama 73 jam pada tahun 2021. Momen yang terjadi beberapa tahun lalu tersebut telah menjadi momen yang berdampak besar terhadap pendekatan kami dalam pembangunan infrastruktur yang tahan banting dan kebutuhan kami untuk membuat rencana jangka pendek dan panjang. “Itu adalah momen yang sangat krusial,” ujar Ross, “satu-satunya hal yang harus kami pikirkan sampai kami dapat meyakinkan semua pihak di Roblox bahwa kejadian itu tidak akan pernah terjadi lagi.”
Dari monolith Infra tunggal menjadi 34 sel
Cost to Serve (Efisiensi)
Perusahaan teknologi masa kini jarang membuat infrastruktur cloud sendiri karena penyedia layanan cloud publik telah menyediakan alat esensial, seperti jaringan, fleet management, dan sebagainya.
Namun, dengan skala operasi kami dan sistem kami yang terdesentralisasi, penggunaan cloud privat akan lebih menghemat biaya. Kami selalu berusaha mengidentifikasi dan mengatasi sendiri tantangan yang muncul dari pemeliharaan sistem yang kompleks seperti ini.
Agar dapat mencapai penghematan biaya yang diinginkan, kami harus cermat dalam membuat desain sistem. Cloud privat global kami perlu didesain agar berjalan seefisien mungkin sehingga kami dapat memfokuskan tenaga untuk mendukung komunitas kreator dan pengguna.
Kami berupaya untuk mempermudah teknisi produk kami dalam membuat fitur yang dapat berjalan secara efisien dalam skala besar. Pada saat yang bersamaan, kami menciptakan alat produksi sederhana yang memungkinkan tim kecil mengoperasikan infrastruktur berskala besar. “Orang di luar grup Infra mungkin tidak selalu menyadari,” kata Technical Director, Michael Wolf, “bahwa kami merombak drastis hampir setiap bagian infrastruktur kami.”
Itu berarti mengubah konfigurasi bare-metal menjadi arsitektur dalam kontainer dan berbasis Linux dengan bagian kontrol umum di pusat data inti dan tepi. Hasilnya, teknisi Roblox akan dapat menggunakan repositori baru alat perangkat lunak sumber terbuka yang besar. Selain itu, menjalankan beberapa beban kerja secara bersamaan di mesin yang sama juga akan menjadi lebih mudah.
“Kami tidak takut menghadapi tantangan besar,” kata Technical Director, Andy Wilcox, merujuk ke transisi Infra baru-baru ini ke stack penerapan, komputasi, dan telemetri baru. “Ini adalah faktor-faktor mendasar yang telah dapat kami atasi sebagai organisasi teknis yang memiliki keinginan besar untuk menghadapinya.”
Perubahan tidak dapat terjadi dalam sekejap. Proses ini akan memerlukan beberapa tahun karena kami tidak mungkin memulai ulang Roblox begitu saja—mesin kami harus tetap menyala dan berjalan. Oleh karena itu, kami perlu proses penulisan ulang perangkat lunak dan adaptasi terhadap alat baru secara manual. “Ini seperti mengganti ban mobil,” kata Wolf, “sambil berkendara di jalan tol.”
Produktivitas
Setiap hari, tim teknisi kami secara efisien menyelesaikan masalah serius berskala besar dan memastikan sistem kami sebisa mungkin selalu bebas dari masalah.
Untuk itu, kami secara rutin mengumpulkan data kuantitatif dan kualitatif tentang produktivitas teknisi kami. Pengumpulan data ini membantu kami mengidentifikasi hambatan yang dapat diatasi dengan solusi pihak ketiga atau alat khusus kami sendiri.
Salah satu contohnya adalah dasbor yang kami rilis pada bulan Maret untuk mengatasi kesulitan yang dialami teknisi terkait dengan proses review kode. Alat ini membantu teknisi melacak PR yang memerlukan review berdasarkan berbagai kriteria yang kami tentukan. Alat ini juga menyatukan tugas-tugas review kode dan memungkinkan adanya notifikasi penjadwalan. Sejak dasbor ini diterapkan secara luas, waktu P75 PR hingga penggabungan berkurang sebesar 30 persen.
Tentu saja, fitur produktivitas teknis terbaik adalah infrastruktur yang stabil dan dapat diskalakan sebagai landasan pembangunan. Oleh karena itu, kami selalu melakukan upaya jangka panjang untuk sistem level rendah kami.
Hal ini mencerminkan dua nilai Roblox yang utama: Raih solusi jangka panjang dan Berkreasi, berkembang, dan menghasilkan. Sebagai grup infrastruktur yang mengutamakan pelanggan, kami bersikap pragmatis tentang meningkatkan kesuksesan dan produktivitas pelanggan kami. Jika pelanggan memerlukan sesuatu yang tidak kami sediakan sebagai layanan terkelola, kami dapat mempertimbangkan untuk mengintegrasikan solusi vendor guna melengkapi alat internal di cloud privat kami.
Namun, meskipun solusi jangka pendek yang “memastikan sistem tetap berjalan” terlihat menggoda, kami harus mengimbanginya dengan solusi untuk masa depan.
Manfaat yang dirasakan dengan memaksimalkan produktivitas adalah perusahaan akan mendapat keuntungan dan kami dapat menyelesaikan proyek untuk mencapai tujuan bisnis.
Budaya yang Mendorong Penjelajahan
Mengingat tujuan kami adalah menghubungkan satu miliar orang dengan kesopanan dan keamanan, akan selalu ada tantangan teknis besar yang harus diatasi. Kami telah menyelesaikan banyak tantangan dan belajar banyak hal. Namun, fokus kami tetap terarah pada infrastruktur yang makin dapat diskalakan sambil berusaha mengurangi kompleksitas sistem kami.
Kedua target yang bertentangan ini akan memberikan banyak pelajaran baru pada tahun-tahun mendatang, khususnya saat kami menghadapi beban kerja AI yang terus meningkat. Selain itu, kami yakin bahwa untuk mencapai tujuan kami, sistem Infra harus mengalami perubahan secara signifikan dari waktu ke waktu.
Bagi teknisi Infra, setiap proyek adalah potensi titik transformasi untuk perusahaan ini, dan setiap individu memiliki tugas yang penting. “Infra adalah organisasi tempat orang dapat melakukan pekerjaan luar biasa yang benar-benar bermakna bagi Roblox dan penggunanya,” kata Wolf, “dan tidak ada batasan yang benar-benar menjadi batas.”
Pola pikir yang mengutamakan pelanggan
Pada akhirnya, tugas kami adalah membantu meningkatkan efisiensi teknisi Roblox lain, saat ini dan pada masa mendatang, dengan kewajiban untuk belajar dengan cepat, dan memberikan solusi berdasarkan pelajaran yang didapatkan.
Kami menghadapi tantangan itu tanpa rasa takut. “Saya ingin memastikan kami memberikan kontribusi yang bernilai untuk Roblox hari ini, kuartal ini, dan tahun ini,” kata Ross. “Saya juga ingin memastikan kami mendirikan fondasi yang akan mendukung kami dengan baik selama 5 hingga 10 tahun mendatang.”
* Selama 3 bulan yang berakhir pada 31 Maret 2024