Обложка канала

Библиотека программиста

76290 @proglibrary

Библиотека программиста — обзоры книг, видеолекции и образовательные статьи, которые помогут вам улучшить процесс познания в разработке.

Библиотека программиста

3 года назад
Открыть в
История высоконагруженного сервиса на примере Вконтакте — с 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 бэкенда Полная версия истории тут.