Контроллер доставки приложений: что это такое?
Конвергентные решения, частные, публичные и гибридные облака, унаследованные (legacy) системы — различные варианты корпоративной инфраструктуры сосуществуют друг с другом в одно и то же время. Несмотря на наличие тех или иных сильных и слабых сторон, все они должны одинаково эффективно доставлять свои сервисы и приложения пользователям, обращающимся к ним из внешней сетевой среды.
Задачи такого рода принято возлагать на специальные аппаратные или виртуальные сетевые устройства, известные как контроллеры доставки приложений или ADC (Application Delivery Controller). Рассмотрим их основные возможности на примере продукта американской компании Citrix Systems — комплексного решения доставки и балансировки нагрузки для монолитных и микросервисных приложений Citrix ADC.
Контроллер доставки приложений
Первое поколение контроллеров, ведущих свою историю примерно с 2004 года, предлагало не такой уж большой набор функций. На этом этапе речь шла лишь о балансировке нагрузки и ускорении приложений. Позднее концепция ADC расширилась — в нее вошли такие задачи, как сжатие трафика, обеспечение безопасности на уровне приложений, шифрование SSL и пр.
Современные контроллеры доставки приложений могут быть выполнены как на аппаратной, так и на программной платформе. Если рассматривать в качестве примера продукты компании Citrix, то ее ADC представлены четырьмя основными вариантами:
-
MPX — аппаратное устройство для использования в центрах обработки данных;
-
SDX — аппаратное устройство, предназначенное для сервис-провайдеров виртуальных и облачных центров обработки данных;
-
VPX — программное решение, реализованное в виде виртуальной машины и предназначенное для использования в малом бизнесе;
-
CPX — программное решение, упакованное в виртуальный контейнер и предназначенное для облачных и микросервисных приложений.
Различные варианты исполнения Citrix ADC предназначены для предоставления разнообразных услуг, но имеют много общего, так как являются примерами реализации одной и той же платформы корпоративного уровня. У них единый интерфейс и кодовая база REST API, максимально облегчающая интеграцию контроллера доставки приложений с продуктами других вендоров. Например, таких как Cisco или Microsoft.
Балансировка нагрузки
Важнейшей функцией контроллера доставки приложений является распределение нагрузки по имеющемуся набору ресурсов для достижения максимальной производительности. Эта задача решается при помощи многочисленных сервисов, действующих на уровнях L4-L7 модели сетевого канала OSI.
Решать эту задачу можно в разных масштабах, включая глобальный. Компании, чья корпоративная сеть распределена между несколькими центрами обработки данных, могут воспользоваться решениями Citrix ADC и поддерживаемой ими технологией GSLB (Global Server Load Balancing). В этом случае пользователям будет доступна единая точка входа в корпоративную инфраструктуру, а Citrix ADC выступит в роли внутреннего DNS-сервера с динамическими таблицами IP, распределив запросы по серверным фермам в зависимости от настроенных политик.
Оптимальный ресурс может быть выбран в соответствии с разными алгоритмами, наиболее очевидными из которых можно считать физическое расстояние между пользователем и выделяемым ресурсом, степень загруженности конкретных каналов или ранжирование ресурсов на основные и резервные.
Полностью возможности балансировки Citrix ADC проявляют себя, в частности, с коммутаторами Cisco, поддерживающими технологию Cisco ACI и объединенными в единую программно-определяемую сеть с широчайшими возможностями масштабирования.
Повышение производительности
Помимо балансировки нагрузки, одним из основных предназначений контроллера доставки приложений является повышение их производительности. Добиться этого можно разными способами. Рассмотрим основные из них на примере возможностей Citrix ADC.
Скорость работы приложения не всегда отвечает запросам пользователя, особенно если речь идет о сетях с невысокой пропускной способностью и большими задержками, например, мобильных. Чтобы решить эту проблему Citrix ADC использует несколько механизмов:
-
Балансировка нагрузки на уровне баз данных SQL. К каждой транзакции применяются политики, направленные на их оптимальную обработку в рамках кластера БД;
-
Мультиплексирование соединений TCP для снижения нагрузки на сервер;
-
Работа с сертификатами и расшифровка SSL-трафика до его доставки на сервер.
Если речь идет о доставке веб-контента, Citrix ADC может адаптировать «тяжелый» трафик для его отправки по мобильным сетям также несколькими способами:
-
Сегментирование домена позволяет разбить контент страницы на множество частей и загружать их одновременно по разным каналам, уменьшая время доставки;
-
Большие изображения или анимированные GIF могут автоматически конвертироваться в экономный PNG;
-
Большие скрипты и таблицы стилей могут быть сжаты за счет удаления ненужных символов и пробелов.
Безопасность приложений и ресурсов
Традиционно контроллер доставки приложений находится в «демилитаризованной зоне», расположенной за основным фаерволом. Однако это не мешает ему играть важную роль в обеспечении сетевой безопасности, так как ADC является естественной точкой входа трафика.
На уровне контроллера может происходить аутентификация каждого пользователя, обращающегося к приложению. Если речь идет об облачном приложении, то Citrix ADC, например, может подтвердить личность человека, воспользовавшись записями в службе каталогов Active Directory на стороне потребителя услуги SaaS.
Есть и другие варианты. Citrix ADC поддерживает язык разметки SAML, с помощью которого подтвердить личность пользователя можно через любое хранилище данных, способное предоставить для этого надежные сведения. В качестве такового может выступать, например, социальная сеть.
Безопасность инфраструктуры и доступность приложений ADC может обеспечить и в случае DDoS-атаки. При возникновении необычного всплеска запросов контроллер доставки приложений может гибко регулировать пропускную способность канала или вообще отклонить подозрительные обращения.
В зависимости от конкретной конфигурации, Citrix ADC может предоставить целый набор защитных инструментов:
-
Фаерволл на уровне приложений;
-
Выявление вредоносных скриптов, SQL-инъекций и подозрительного контента;
-
Проверка заголовков пакетов;
-
Защита на основе сигнатур;
-
Интеграция со сторонними поставщиками средств безопасности.
Подводя итог вышесказанному, отметим, что в совокупности возможности Citrix ADC как популярного представителя семейства контроллеров доставки приложений, предоставляют следующие преимущества:
-
Значительное снижение затрат на серверное оборудование из-за отказа от избыточных мощностей;
-
Повышение производительности приложений в несколько раз;
-
Возможность консолидировать всю систему удаленного доступа в одном URL;
-
Повышение безопасности приложений;
-
Возможность организовать удаленный доступ на основе SSL VPN;
-
Возможность мониторинга приложений и трафика.
-