Привет, Хабр! Это команда департамента телекоммуникаций КРОК, которая занимается контроллерами доставки приложений (ADC – Application Delivery Controller). С начала этого года произошли события, оказавшие значительное влияние на рынок ADC. Многие привычные западные вендоры ушли или прекратили поддержку своих продуктов. Поэтому нам вместе с заказчиками пришлось достаточно быстро подстраиваться под новые условия. И сегодня мы расскажем читателям Хабра о наших наработках.
Проблема
Сегодня ADC – основные средства для построения высоконагруженных, высокодоступных систем и приложений. ADC действует как серый кардинал – незримо для большинства, но 100% пользователей приложений банков или крупных сайтов сталкивается с ними в повседневной жизни.
Бизнес не может позволить себе медленное, зависающее, или того хуже, не работающее приложение. За счет перенаправления запросов ADC позволяет эффективно распределять нагрузку между серверами приложения, оптимизируя использование ресурсов, а также нивелировать недоступность при выходе сервера или приложения из строя.
Мы тестируем различные варианты российских производителей, но на текущий момент готовых решений на рынке нет. Поэтому мы провели ревью китайского рынка, и собрали для вас несколько потенциально интересных предложений, которые готовы предлагать в текущих условиях. В данном материале мы расскажем о наиболее перспективном, с нашей точки зрения, решении – TongADC от компании Tongtech.
Почему TongADC?
Крупный вендор на китайском рынке. Компания TongTech основана в 1992 году, имеет более 2000 сотрудников (из них 75% – технические специалисты).
Официальные поставки и оказание сервисной поддержки на территории России
Удобная модель лицензирования – весь функционал доступен сразу без необходимости приобретения дополнительных лицензий
Модульность программно-аппаратных комплексов – дополнительно можно укомплектовать картами для обработки SSL трафика или добавить необходимые порты.
Богатый функционал и постоянное развитие продукта.
Линейка оборудования
Линейка ПАК производителя обширна, есть модели как полностью на китайской компонентной базе, так и на чипах Intel. Пропускная способность в зависимости от модели варьируется от 5 до 200Gbps. Исходя из всего перечисленного - можно подобрать оборудование под любые задачи.
Виртуальные инстансы также присутствуют, хоть и с ограничением по поддерживаемым гипервизорам – только VMware или KVM, но с возможностью гранулярного лицензирования с шагом в 1Gbps.
Отказоустойчивость
ADC является точкой входа для приложений, поэтому важно обеспечить его высокую доступность. Аппаратная отказоустойчивость TonADC обеспечена резервируемыми блоками питания, подключение к сети резервируется протоколом LACP. Программная отказоустойчивость обеспечивается за счет использования протокола VRRP для HA и VRRP-AS для кластерной схемы. В режиме VRRP-AS устройства работают как Active-Passive и выступают единым устройством с точки зрения администратора.
Операционная система разделена с точки зрения Control Plane и Data Plane. Даже при высокой загрузке оборудования у администратора сохраняется доступ к интерфейсам управления, что позволяет оперативно определить источник нагрузки и принять меры к ее снижению.
Все это позволяет добиться высокого уровня SLA для обеспечения непрерывной работы систем и приложений.
Основной функционал
Общий вид веб-интерфейса выглядит привычно, блок меню вынесен справа и разделен на подблоки:
Overview – секция для мониторинга состояния оборудования и статистики по всем конфигурационным элементам;
Report – секция для построения статистических отчетов;
SLB – настройка локальной балансировки;
GSLB – настройка глобальной балансировки;
LLB – настройка балансировки между различными каналами;
Networks – сетевые настройки оборудования;
System – системные настройки оборудования.
В статье постараюсь более подробно рассказать по настройке именно локальной балансировке.
Про настройки расскажу с точки зрения последовательности настройки сервиса:
Ноды – стандартные настройки IP адреса хоста, на котором расположено приложение. Настраиваются веса, ограничение количества соединений, доступны настройки “мягкий старт” и graceful shutdown для мягкого выведения из балансировки.
Мониторинг состояния серверов/приложений – список встроенных поддерживаемых протоколов обширный: поддерживаются как стандартные методы, такие как ICMP, TCP, UDP (проверка открытого порта), так и кастомизируемые под приложения (HTTP,HTTPS,FTP,RTSP и т.д.) или базы данных (MySQL, Oracle, PostreSQL, Microsoft SQL Server). Для совсем нетривиальных поддерживаются программируемые скрипты.
Ноды объединяются в пул балансировки с указанием порта конкретного приложения. Указывается протокол TCP/UDP, настраиваются приоритеты и группы нод.
Обширный набор методов балансировки между приложениями/серверами. Есть как статические, типа Round-Robin, так и динамические, например Fastest Responce или Hash. Всего более 20 методов балансировки.
Профили L4/L7 используются для управления настройками протоколов, например на уровне L4 – управление TCP таймерами Idle timeout, FIN wait и т.д., на уровне L7 – для HTTP управление Cookie, хидерами и т.д.
Persistence – поддерживаются Cookie, Source IP, Destination IP, SSL ID.
Программируемость – поддержка скриптов eRule – основаны на языке TCL.
Оптимизация – мультиплексирование соединений, кэширование, компрессия, ускорение обработки SSL.
Virtual server – создание VIP и балансировка. Выполняется привязка всех профилей, также управление SNAT политиками, списками ACL.
На текущий момент отсутствует возможность разделения объектов конфигурации на изолированные (т.н. партиции) и функционал VRF. Вендор утверждает, что данные фичи находятся в разработке и будут выпущены в релиз в ближайшее время. В остальном – TongADC имеет полный набор для замены или новой установки ADC..
Тестирование в лаборатории
В лаборатории для нового оборудования мы всегда проводим комплексные тесты, так же поступили и в случае с TongADC.
Стенд состоит из 3-х балансировщиков TongADC, 2 из которых объединены для проверки кластеризации и 1 в Standalone, добавлена обвязка из двух маршрутизаторов и HTTP приложения на nginx, растиражированном на несколько портов.
На данном стенде проверяли работу следующего функционала:
Кластеризация в разных режимах – VRRP и VRRP-AS, включение различных VRRP групп, включение автоматической синхронизации конфигурации между устройствами кластера.
Сетевые настройки – конфигурирование интерфейсов, VLAN, настройки маршрутизации.
Проверка функционала SLB:
a. мониторинг приложений – ping, dns, http/s, tcp, udp
b. методы балансировки в пуле – Round Robin, Least Connections, Fast Response и др.
c. работа механизма priority в пуле
d. комплексная проверка работы virtual IP с различными настройками HTTP и TCP профилей
e. работа механизмов SNAT
f. проверка механизмов Persistence и AccelerationПроверка работы скриптов eRule.
Нагрузочное тестирование.
В списке отражено только тестирование основного функционала, полный перечень проводимых тестов содержит более 100 пунктов.
Тесты на текущий момент не закончены, продолжается проверка работы GSLB, LLB и WAF. Но, на текущий момент, весь заявленный функционал подтвержден, отклонений в работе не найдено.
Резюме
Несмотря на прекращение сотрудничества со многими западными вендорами – коллапса не случилось. На рынке ADC еще остаются азиатские вендоры, готовые предложить полнофункциональные решения. Мы в КРОК внимательно изучаем альтернативные продукты и готовы делиться с вами результатами. Если вам необходима обзорная презентация или тестирование под определенные задачи – будем рады помочь, пишите в комменты или личку.
Заходите в наш уютный Telegram-канал и чат-бот мероприятий.