Проблема дискаверинга и балансировки нагрузки в межсервисном взаимодействии не новы. На рынке существует ряд готовых решений, реализующий все виды дискаверинга и балансировки (reversed-proxy, client-side load balancer в связке с control-plane). Из популярных: nginx, isito и ряд других решений. Но около 3 лет назад мы в Ozon решили пойти своим путём, реализовав собственное решение для service discovery и client-side load balancing.
В докладе будут рассмотрены основные принципы и механизмы, по которым работают service discovery- и load-balancing-решения, а также обозначены проблемы, с которыми вы можете столкнуться в ходе эксплуатации готовых решений или реализации собственного, и возможные пути их решения. Также в докладе пойдет речь о всем функционале, которым собственное решение Ozon отличается от аналогов и что из него оказалось действительно полезным, а что пришлось отложить и пометить как deprecated.