HeadHunter - сайт, где соискатели находят работу, а работодатели - сотрудников. Днем к нам приходит 3K запросов в секунду (без статики), что превращается в 25K rps к бэкендам и 50K rps к базам данных. Раньше стабильность сайта могла быть ниже 99%. Теперь - это 99.9% и лучше. Стабильностью сайта у нас занимается как служба эксплуатации, так и команда разработчиков SRE (site reliability engineering). В прошлом году Николай Сивко уже рассказывал об организации службы эксплуатации и мониторинге сайта. Но эксплуатация отвечает за железо, сеть и ОС, а за приложения - команда SRE. В докладе хочу рассказать о том, как мы построили процесс, позволяющий каждый месяц улучшать стабильность сайта, с какими техническими проблемами сталкиваемся и как решаем. В частности: - как мы определяем, когда сайт работает, а когда - нет? - что делаем, когда сайт лежит? - как настроили мониторинг и другие инструменты для быстрой локализации проблемы; - как нагружаем сайт, чтобы заранее выявить узкое место? Чтобы не было скучно, расскажу о конкретных кейсах: - как мы масштабировали реплики базы данных; - почему отказались от PgBouncer для высоконагруженных бэкендов; - почему нам не подошел Graylog, и как мы ищем в логах другим гораздо более простым и быстрым способом; - как решили проблему заваливания себя ретраями; - и др.