Teknologi yang Digunakan Stack Overflow: Bagian 1

1 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Stack Overflow logo (Sumber: stackoverflow.com)

TeknoCerdas.com – Salam cerdas untuk kita semua. Bagi pengembang perangkat lunak salah satu website yang selalu dikunjungi atau muncul dihasil pencarian selama satu dekade terakhir adalah Stack Overflow. Pada tulisan ini TeknoCerdas akan membahas Teknologi stack yang digunakan oleh Stack Overflow untuk melayani milyaran request per bulan.

Mungkin akan banyak yang tidak menyangka jika Stack Overflow dan Stack Exchange sebagian besar dibangun menggunakan Framework .NET lebih spesifik menggunakan bahasa C#. Web server yang digunakan adalah Internet Information Services (IIS) bawaan Windows Server.

Perlu dicatat jika data ini TeknoCerdas ambil dari halaman resmi StackExchange.com/performance dan sebagian dari HighScalability.com. Penyebutan Stack Overflow dalam artikel ini juga mengacu pada jarigan grup Stack Exchange yang lain kecuali ada penyataan khusus.

Ini adalah bagian pertama dari tulisan ini. Pada bagian berikutnya akan dibahas komponen lainnya dan bagaimana Stack Overflow bisa cukup efisien dalam menggunakan sumber daya hardware.

1,3 Milyar Page Views per Bulan

StackOverflow Page View per Bulan
Stack Overflow Page View per Bulan

Page Views artinya adalah total jumlah halaman yang ditampilkan. Halaman yang sama jika dikunjungi akan tetap dihitung sebagai penambahan Page Views.

Total data transfer yang digunakan oleh Stack Overflow adalah sebesar 55 Tera Bytes per bulan atau jika dikonversi ke Giga menjadi 55.000 Giga Bytes.

Menggunakan 9 Web Server

StackOverflow Web Server
Stack Overflow IIS Web Server (Sumber: Stack Exchange)

Pada sisi web server Stack Overflow menggunakan total 9 web server. Lebih spesifik adalah Internet Information Service (IIS). Masing-masing mesin memiliki kapasitas RAM sebesar 64GB.

Kesembilan web server tersebut menangani rata-rata 300 request per detik dengan tertinggi pada 450 request per detik. Penggunaan CPUnya pun terbilang rendah. Rata-rata utilitas penggunaannya hanya 5% dan ketika tertinggi pada 12%.

Dapat diartikan web server IIS dari Stack Overflow belum terlalu bekerja keras dalam menangani request untuk saat ini.

Menggunakan 4 SQL Server

Stack Overflow Database Server
Stack Overflow Database Server (Sumber: Stack Exchange)

Pada sisi database Stack Overflow menggunakan 2 cluster SQL Server database. Masing-masing cluster memiliki 2 server satu aktif dan satu berstatus hot standby yang artinya ketika server utama mati server hot standby akan mengambil alih.

Pada cluster Stack Overflow mesin utama untuk SQL Server memiliki kapasitas RAM sebesar 1,5 TB dan ukuran database sebesar 2,8 TB. Standby mesin juga memiliki ukuran yang sama. SQL Server pada Stack Overflow menangani sebanyak 528 juta query per hari dengan yang tertinggi tercatat pada angka 11 ribu query per detik. Penggunaan CPU pun tidak terlalu tinggi tercatat rata-rata pada 4% dan tertinggi pada 15%.

Pada cluster SQL Server di keluarga Stack Exchange digunakan mesin dengan kapasitas RAM sebesar 768 GB dan ukuran database sebesar 3.9 TB. Mesin ini menangani sebanyak 496 juta query per hari dengan tertinggi pada angka 12,800 per detik. Utilitas penggunaan CPU untuk cluster kedua juga cukup rendah yaitu 6% dan tertinggi pada 15%.

Sama seperti web server, SQL server yang digunakan oleh Stack Overflow masih memiliki banyak ruang sumber daya tersisa.

Menggunakan 2 Redis Server

Stack Overflow Redis Server
Stack Overflow Redis Server (Sumber: Stack Exchange)

Stack Overflow menggunakan 2 Redis server yaitu sebagai Master dan Replica. Masing-masing mesin memiliki kapasitas RAM sebesar 256GB. Utilitas penggunaan sumber daya dari kedua mesin ini pun rendah. Rata-rata penggunaan CPU hanya 1% dan 2% pada saat tertinggi.

Utilitas tersebut sudah sanggup melayani 3.75 milyar operasi per hari. Dengan tertinggi tercatat pada angka 60,000 operasi per detik.

Stack Overflow menggunakan Redis sebagai cache server dan messaging. Server Redis tidak berjalan diatas Windows Server tetapi pada CentOS Linux.

Komponen lainnya akan dibahas pada Bagian 2 dari tulisan ini. Selalu simak TeknoCerdas untuk update terbaru.