В 2018 году Авито стал активно переходить от монолита к микросервисной архитектуре. Это повлекло за собой рост не только числа микросервисов, но и количества баз данных в соответствии с паттернами микросервисной архитектуры database per sevice и polyglot persistence. Такой переход сделал «самую большую нешардированную инсталляцию PostgreSQL в Европе» невостребованной. Вместо этого понадобилось много небольших инсталляций баз данных, и не только PostgreSQL.
Чтобы справиться с возрастающим спросом на создание и эксплуатацию баз данных, мы решили прибегнуть к ультимативной автоматизации. Несмотря на бытовавшее мнение, что kubernetes плохо подходит для эксплуатации баз данных, ответ нашли именно в нём.
В рамках доклада я поделюсь паттернами, которые мы выработали для запуска и эксплуатации баз данных в kubernetes. И даже больше: расскажу, как организовать их согласованную и надёжную работу, когда реплики разнесены по разным дата-центрам и kubernetes-кластерам.
В конце покажу на примерах, каких результатов удалось достичь, и как они повлияли на процессы разработки в компании.
Everyone, backend-developer, system-administrator, devops-engineer, team-lead, engineers.
Any level.
Презентация (на Я.Диске)
Начинал свой карьерный путь как разработчик баз данных: разрабатывал логику на хранимых функциях и процедурах для MySQL. Потом переспециализировался под работу с Oracle. С переходом в Авито начал плотно заниматься PostgreSQL и ушел в backend-разработку. Расширил сферу своих компетенций также и на NoSQL-технологии (Redis и MongoDB) и NewSQL (CockroachDB). Освоил kubernetes и начал запихивать в него различные базы данных. В данный момент руководит разработкой платформы DBaaS.
В свободное время увлекается музыкой, научно-популярной литературой и конструированием из Lego.