МТС разработал сервис для динамического распределения нагрузки.CloudMTS теперь может помогать бизнесу выдерживать резкий рост нагрузки, например, в период распродаж или другого любого цифрового ажиотажа. Коллеги докладывают, что разработали собственный сервис сетевой балансировки (GSLB – Global Server Load Balancing).В прошлый раз мы разузнали и на пальцах объяснили, что такое The Platform, после чего наши читатели из МТС сказали спасибо, что хоть кто-то объяснил. Теперь разберемся с GSLB.• Что это такое?GSLB позволяет распределять нагрузку между DNS-серверами. Проще говоря, на один адрес формата mts.ru может приходиться несколько IP-адресов. Если мы берем привычный облачный сервис, то существует возможность добавлять в пул серверы только из одного облака. GLSB, в свою очередь, позволяет автоматически балансировать географически разнесенные серверы из разных облаков. В результате, можно использовать как приватные, так и публичные облака.Поэтому, коллеги у себя и сообщают, что: «Балансировщик GSLB подключается и настраивается за несколько минут и сохраняет стабильный доступ к интернет-ресурсам. Посетители сайта его работу не замечают, они загружают страницы через браузер, как обычно».• Что под капотом?Мы пошептались с источниками в CloudMTS насчет подробностей. Разработка – собственная. Есть несколько иностранных сервисов, которые способны обеспечивать высокую доступность дата-центров. Однако, лишь единицы из них доступны российским пользователям.Сначала, специалисты CloudMTS сделали форк на базе open source проекта Polaris-GSLB и экспериментальным путем установили, что решение не подходит. На нагрузочных тестах проверка доступности серверов выходила за указанные в настройках временные параметры. Polaris написан на Python, который в мониторинговой части использует треды.Поэтому, все переписали на Golang и уменьшили в два-три раза количество ресурсов, которое требуется на площадку для мониторинга. В качестве DNS сервера используется PowerDNS, для которого написан кастомный бэкенд.