Czy Gigantyczny Serwis Potrzebuje Gigantycznej Infrastruktury – StackExchange
Kilka dni temu trafiłem na artykuł StackOverflow: 560M Pageviews A Month, 25 Servers, And It’s All About Performance. StackExchange, w skład którego wchodzi również StackOverflow, ma 54 miejsce na świecie pod względem największego ruchu w Internecie.
Artykuł przeszedłby pewnie przez sito codziennych wiadomości, że do obsługi takiego ruchu używają 25 serwerów (mowa jest również o 27), a cały ruch może być obsłużony przez… 5 (8). 8 serwerów do ponad 500.000.000 odsłon miesięcznie.
Zagłębmy się więc w architekturę StackOverflow. Znajdziesz tu opis tego co posiadają plus linki do materiałów źródłowych, gdzie znajdziesz bardziej szczegółowe informacje, prezentacje i opisy.
Czytaj dalej.
Spójrzmy Na Liczby
Statystki z 30 dni.
Ruch HTTP wysłany: 18.5 TB
Zapytania do Load Balancera: 2.8 miliarda
Zapytania SQL (tylko dla stron internetowych): 8.3 miliarda
Dane przesłane z CDN: 15.75 TB
Zapytania do CDN: 1.39 miliarda
Cache hit ratio: 99.59%
Zapytania non-cache: 5.7 miliona
Ruch przechodzący przez przełączniki rdzeniowe: 0.5 Petabajta
110.000 linii kodu
27 serwerów (ponoć wystarczy 8, aby serwis działał w 100%)
Serwery bazodanowe obciążone na poziomie 10%
5 poziomów cache
Spójrzmy Na Sprzęt
11 serwerów Dell R610 – IIS
2x Xeon E5640, 32 GB RAM
Windows Server 2012
RAID 1, 2x Intel 300GB SSD
4x 1Gb network teaming
3 serwery Dell R720xd – Bazy Danych
Windows Server 2012
2x Xeon E5-2580, 384 GB RAM
21 dysków, 4 na system
RAID10, 16+1 Intel 710 200GB SSD na bazy
2x 10GB network teaming
3 serwery Dell R710 – Bazy Danych
Windows Server 2012
2x Xeon X5680, 288 GB RAM
6 dysków, 2 na system
RAID 10, 4 Intel S3700 800GB SSD na bazy
2x 10GB network teaming
Dodatkowo:
3 serwery Dell R620 – HAProxy, NGINX, Orion Monitoring
7 serwerów Dell R610 – Redis, Tag engine/search, NetBackup, Logi, VMware ESXi
1x Macierz iSCSI Equal Logic PS6110X (tylko dla ESXi)
2x Cisco ISR G2 3945
2x Cisco ASA 5525-X
2x Cisco Nexus 5596UP + Nexusy 2000 (jako extender)
Do pracy serwisu wystarczą:
2x SQL Server
2x Serwery WWW
1x Serwer Redis
1x Serwer Tag Engine
1x Serwer Elasticsearch
1x Load balancer
1x Przełącznik
1x Firewall
1x Router
Spójrzmy Na Oprogramowanie
Windows Server 2012 x64
Web Server IIS 8.0
SQL Server 2014 CTP2 na Windows Server 2012 R1 x64
Język programowania C#
CentOS 6.x
Narzędzia:
IDE Visual Studio 2012 & 2013
Framework Microsoft ASP.NET
Web Framework ASP.NET MVC 5 z MiniProfiler
View Engine Razor 3
Browser Framework jQuery 1.7.1
Data Access Layer LINQ to SQL and Dapper
Cache Redis 2.8.4
Instancja GitLab
Dodatkowe narzędzia:
reCAPTCHA
DotNetOpenId
Prettify
Google Analytics
TeamCity
HAProxy
Cacti
MarkdownSharp
Kiln
Orion
LESS
MathJax
Elasticsearch
Spójrzmy Na Kaszowanie
5 poziomów cache:
1- Poziom sieciowy: przeglądarka, CDN, proxy
2- Poziom pamięci serwera: HttpRuntime.Cache
3- Poziom Redis: rozproszony zbiór typu klucz-wartość
4- Poziom SQL Server: Cała baza jest keszowana w pamięci RAM
5- Poziom dysków SSD: Używane tylko gdy serwer SQL “rozgrzewa się”
Spójrzmy Na Materiały Referencyjne
The Architecture of StackOverflow – Developer Conference 2013
What it takes to run Stack Overflow
Which tools and technologies are used to build the Stack Exchange Network?
The architecture of StackOverflow
StackOverflow Update: 560M Pageviews A Month, 25 Servers, And It’s All About Performance
How much bandwidth does SE eat up?
Spójrzmy Na Podsumowanie
Jak widać StackExchange stawia na ludzi. Marcin Mazurek z Allegro wspominał w Progress Bar o Site Reliability Engineers (SREs). Ci ludzi nie są tani :). StackExchange ma ich pięciu. Jestem ciekaw Twojej opinii i takiego podejścia. Więcej pieniędzy w ludzi, mniej w sprzęt. Nie będę zgadywał, która opcja wychodzi taniej.
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Przed nami nowy rozdział! Chmurowisko dokonało połączenia z polskim Software Mind – firmą, która od 20 lat tworzy rozwiązania przyczyniające się do sukcesu organizacji z całego świata…
Grupa Dynamic Precision podjęła decyzję o unowocześnieniu swojej infrastruktury. Razem z Oracle Polska prowadzimy migrację aplikacji firmy do chmury OCI.
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Zapisz się do naszego newslettera i
bądź z chmurami na bieżąco!
z chmur Azure, AWS i GCP, z krótkimi opisami i linkami.