История высоконагруженного сервиса на примере Вконтакте — с 2006 года до наших дней. Хронология с выступления Александра Тоболя.
2006: LAMP-стек — Apache, Debian, MySQL и PHP
2008: для баланса внедрили nginx
2009: MySQL перестал справляться, созданы Engines, которые сейчас бы назвали микросервисами
2011: нужна масштабируемость, решили внедрить свой RPC
2013: страдает производительность, слишком много логики. Сделали в два раза быстрее благодаря KPHP — транслятору PHP-кода в компилируемый C++
2015: пользователи смотрят только 20% ленты — сделали умную ленту, которая таргетировалась на счастье пользователя
2017: несколько Тбит/с трафика. Чтобы снизить нагрузку сетей, решили подвинуть ближе к пользователям самый популярный контент. Внедрили CDN
2019: у пользователей очень много фотографий, сотни петабайт. Хранение на дисках не соответствовало рынку. Началась работа с распределенными системами
2020: к базам данных на С++ добавили Go, Java. KPHP стал языком, у него появилась строгая типизация (кстати, он на Open Source и ускоряет исполнение кода в 7-10 раз)
2021: в KPHP добавили параллелизм, запустили QUIC, переехали на http3
2022: новые требования к отказоустойчивости. Решено построить новый дата-центр, провести hardware оптимизацию. Включили NUMA, увеличили на 20% capacity бэкенда
Полная версия истории тут.