APISIX обеспечивает управление операциями и трафиком в системах взаимодействия человека и машины
December 16, 2022
Обзор
О CVTE и Seewo
CVTE является мировым лидером в области технологий LCD (жидкокристаллических дисплеев), специализируясь на производстве материнских плат для LCD, интеллектуальных интерактивных панелей, медицинских устройств и связанного с ними интеллектуального оборудования. Основанная в 2005 году, компания занимает 31% рынка в категории материнских плат для LCD-телевизоров. Этот опыт привел к созданию нескольких известных отраслевых брендов, включая Seewo, поставщика цифровых образовательных инструментов и услуг, и MAXHUB, продвинутой платформы для умного сотрудничества, которые способствуют улучшению образовательного процесса и корпоративных коммуникаций.
С более чем 6500 сотрудниками, интерактивные панели Seewo от CVTE используются в 1 миллионе классов по всему миру. Обладая экспертизой в области драйверов дисплеев, обработки сигналов, управления питанием, взаимодействия человека с компьютером, разработки приложений и интеграции систем, компания стремится улучшать коммуникационные возможности в потребительской и коммерческой электронике за счет постоянных технологических инноваций.
Проблемы
- Быстрое расширение бизнеса часто вызывало перезагрузку в двухуровневой архитектуре шлюза Seewo, что влияло на производительность и стабильность системы, приводя к неоптимальному пользовательскому опыту.
- Шлюз Seewo столкнулся с трудностями в эффективной координации управления трафиком, что привело к снижению операционной эффективности и ограниченным возможностям контроля трафика.
- Шлюз Seewo должен управлять множеством доменов с различными персонализированными требованиями к конфигурации, что требует тщательного управления и индивидуального контроля.
Результаты
- APISIX предоставляет более гибкий и плавный метод обновления конфигурации, позволяя Seewo легко обновлять маршруты и сертификаты по мере необходимости, что в конечном итоге повышает операционную эффективность и стабильность системы Seewo.
- После внедрения APISIX, Seewo укрепила свои возможности по разрыву цепей и ограничению скорости, что улучшило управление трафиком и укрепило ключевые бизнес-процессы.
- Мощная масштабируемость и выдающаяся производительность плагинов шлюза APISIX позволили Seewo разработать пользовательские плагины, расширяя функциональность шлюза для удовлетворения растущих бизнес-требований.
Предыстория
Шлюз Seewo прошел несколько этапов развития, демонстрируя путь, отмеченный постоянными технологическими инновациями и упорной преданностью команды. С каждым выпуском мы стремились улучшить и оптимизировать предыдущую версию, предоставляя пользователям сетевой опыт, который не только более эффективен и стабилен, но также насыщен более богатыми функциями.
-
Шлюз первого поколения: Первоначальный шлюз Seewo был построен с использованием OpenResty и NGINX со статической конфигурацией. Однако он полагался на Secure Copy (SCP) для развертываний, что требовало операционной поддержки для обеспечения плавных выпусков.
-
Шлюз второго поколения: Вторая версия системы внесла улучшения, интегрировав модуль upsync с OpenResty и добавив Consul для обнаружения сервисов. Эта версия позволила разработчикам самостоятельно выпускать обновления, хотя операционная поддержка все еще была необходима для масштабирования.
-
Шлюз третьего поколения: Третье поколение системы Seewo было разработано на базе Kubernetes (K8s). Хотя эта адаптация устранила предыдущие проблемы с развертыванием и масштабируемостью, она также привнесла новые сложности. Признавая, что некоторые приложения все еще находятся на хост-машине, архитектура шлюза включила Ingress NGINX на K8s в качестве второго уровня, сохраняя OpenResty в качестве шлюза первого уровня. Однако этот подход, хотя и улучшил масштабируемость, привел к сбоям при изменениях маршрутизации, что повлияло на приложения с постоянными соединениями.

Быстрый рост бизнеса Seewo повысил требования к общей стабильности. Использование этой двухуровневой структуры шлюза имеет проблему – любые изменения, будь то перезагрузка NGINX первого уровня или изменения маршрутизации шлюза второго уровня, могут привести к разрыву долгосрочных соединений. Это может стать серьезной проблемой, особенно в сценариях, где важно поддерживать непрерывные соединения. Например, представьте ситуацию, когда программное обеспечение Seewo находится в процессе получения статуса преподавания учителя, и внезапно соединение прерывается. Это прерывание не только нарушает процесс получения статуса, но и напрямую влияет на качество учебного процесса.
Недостатки до использования APISIX
-
Длительная перезагрузка в двухуровневой архитектуре: В двухуровневой структуре шлюза даже незначительные изменения, такие как добавление доменов, модификации конфигураций или внедрение специальных правил, требуют длительной перезагрузки NGINX. Этот процесс может быть утомительным и влияет на операционную эффективность Seewo.
-
Неуправляемое управление трафиком и переключение: Решение сложных проблем управления трафиком в архитектуре Seewo, обслуживающей более 10 миллионов пользователей, требует целостного подхода. Seewo столкнулась с серьезной задачей в координации компонентов для управления трафиком, учитывая обширную пользовательскую базу. В проблемах на стороне клиента Seewo столкнулась с риском нарушения работы серверной части и каскадных сбоев. Отсутствие надежного управления трафиком на уровне шлюза еще больше усугубило влияние на серверные системы Seewo. Кроме того, постоянные унаследованные проблемы во взаимодействии между NGINX и шлюзом Ingress создали препятствия для будущего переключения трафика Seewo, что требует оперативного решения для бесперебойной работы инфраструктуры.
-
Перегрузка доменов и кастомизация: Операции Seewo включали управление более чем 700 доменами, каждый из которых сопровождался множеством персонализированных конфигураций, включая перенаправления, черные и белые списки. Адаптация этих конфигураций к плагинам APISIX ввела значительную сложность.
-
Сложная двухуровневая DNS: Seewo столкнулась с проблемой в своей двухуровневой архитектуре DNS, создавая неудобства в процедурах отката. В то же время ей не хватало оптимизации для эффективных внутренних сетевых вызовов в инфраструктуре.
В ответ на эти вызовы и для повышения операционной эффективности Seewo приняла стратегическое решение внедрить решение шлюза APISIX.
Решения при миграции на APISIX
Оптимизация генерации маршрутов и архитектуры APISIX
На ранних этапах процесса миграции Seewo стратегически разработала маршруты APISIX, что стало ключевым шагом для улучшения функциональности системы. Это решение включало упрощение существующей архитектуры за счет удаления дополнительного уровня специфических функций, таких как "rewrite" и "set-header". Эти функции были плавно интегрированы во второй уровень Ingress, что способствовало более эффективной и упрощенной общей структуре. Примечательно, что Seewo успешно интегрировала плагины APISIX в конфигурацию NGINX, подчеркивая универсальность и возможности плавной интеграции APISIX.
Проверка переадресации маршрутов и оценка производительности
После генерации маршрутов Seewo сосредоточилась на задаче проверки всего процесса переадресации, признавая ключевую роль APISIX. Используя инструмент goreplay для записи и воспроизведения, Seewo обеспечила точность переадресации маршрутов – что является свидетельством важной функции APISIX в поддержании точности. Затем было проведено тщательное автоматизированное тестирование для проверки функциональности плагинов APISIX, гарантируя их бесперебойную работу. После подтверждения функциональности Seewo стратегически переключила внимание на оценку того, насколько хорошо APISIX соответствует внутренним требованиям к производительности. Для облегчения этой оценки был введен плагин elastic-apm, а также были оптимизированы определенные плагины, влияющие на QPS, что подчеркивает универсальные возможности APISIX в улучшении как производительности, так и функциональности на протяжении всего процесса.
Упрощение переключения трафика для плавных откатов
Самым значительным препятствием при миграции шлюза стало переключение трафика, что напрямую влияло на качество производства. Несмотря на использование goreplay для записи и воспроизведения трафика, необходимость в надежном решении для отката стала ключевой. В случае аномалий, таких как проблемы с переадресацией или сбои APISIX из-за переключения трафика, Seewo требовался быстрый и надежный механизм отката.
Для решения этой задачи Seewo стратегически начала переход трафика публичной сети, подчеркивая ключевую роль APISIX. Этот стратегический маневр позволил Seewo эффективно изменять исходные адреса во время перехода, обеспечивая быстрый откат трафика в исключительных ситуациях. Весь процесс переключения трафика в экстраординарных обстоятельствах мог быть выполнен за считанные секунды, демонстрируя ключевую роль APISIX в обеспечении быстрого и бесперебойного перехода.

Преодоление проблем с SSL и сопоставлением маршрутов при развертывании APISIX
Когда Seewo впервые внедрила APISIX, она столкнулась с проблемами, связанными с SSL-рукопожатием. Например, в старых системах или библиотеках OpenSSL значения ssl_ciphers не пересекаются с значениями по умолчанию сервера, что приводит к неудачным SSL-рукопожатиям. Однако команда APISIX активно решала эти проблемы. В процессе преодоления проблем совместимости в старой системе Seewo и обновления версий, Seewo тесно сотрудничала с командой APISIX для поиска эффективных решений, рекомендуя проверять пересечение SSL-рукопожатия перед развертыванием для плавной миграции.
Между тем, обновление до версии 2.15 LTS APISIX привнесло некоторые новые вызовы, особенно в сопоставлении маршрутов. Несмотря на возникшие проблемы, команда APISIX оперативно отреагировала и решила их в своей основной ветке. Важно подчеркнуть, что, несмотря на эти вызовы, APISIX активно предоставляет надежную поддержку. Это сотрудничество выходит за рамки технической сферы, представляя собой общий путь к позитивному развитию бизнеса.
Достижения после использования APISIX
Оптимизированная операционная эффективность
После плавной интеграции APISIX в свою операционную структуру Seewo достигла значительного успеха, полностью устранив проблемы, связанные с перезагрузками. Это достижение значительно укрепило Seewo, позволив ей легко обновлять маршруты и сертификаты, что привело к более эффективному и упрощенному рабочему процессу для команды разработчиков.
Повышенная квалификация в управлении трафиком
Благодаря замечательной расширяемости и выдающейся производительности плагинов APISIX, интеграция APISIX в инфраструктуру Seewo значительно повысила ее возможности по разрыву цепей и ограничению скорости. Это стратегическое внедрение не только улучшило способность Seewo эффективно управлять и контролировать трафик, но также способствовало значительному укреплению ключевых бизнес-процессов. Внутренние сильные стороны APISIX способствуют общей устойчивости операций Seewo, обеспечивая более плавную и надежную доставку услуг. Используя мощную расширяемость APISIX, Seewo активно занимается разработкой плагинов для дальнейшего усиления своих возможностей и удовлетворения растущих потребностей.
Разработка пользовательских плагинов для улучшения шлюза
Seewo использовала возможности APISIX, обладающего расширяемостью и надежной производительностью плагинов, для разработки пользовательских плагинов. Одним из заметных примеров является плавная интеграция функций унифицированной аутентификации в APISIX, что устранило необходимость в отдельных системах аутентификации при подключении новых сервисов. Этот упрощенный подход значительно ускорил процесс итерации продуктов Seewo, позволив компании быстрее адаптироваться к изменяющимся требованиям и развивающимся рыночным потребностям, тем самым способствуя более гибкой и оперативной операционной структуре.
Эффективная архитектура для снижения затрат
Успехи Seewo в снижении затрат и повышении операционной эффективности были достигнуты за счет устранения избыточного уровня NGINX. В их предыдущей двухуровневой структуре шлюза разработчики сталкивались с непрозрачностью начального уровня NGINX. Однако объединение двух уровней шлюза в один не только устранило избыточность, но и предоставило разработчикам прозрачный обзор архитектурных конфигураций, включая маршруты, плагины и многое другое. Эта гармоничная интеграция не только упростила устранение неполадок и решение проблем, но и подчеркнула ключевую роль APISIX в обеспечении ясности и эффективности в инфраструктуре Seewo.
Итог
С момента внедрения APISIX Seewo значительно повысила операционную эффективность и возможности управления трафиком. Одновременно укрепление функциональности шлюза также ускорило процесс итерации продуктов, что привело к повышению общей рабочей эффективности и снижению затрат. На протяжении этого пути Seewo активно вносила вклад в сообщество, отправив в общей сложности 8 pull requests для решения и улучшения различных проблем, связанных с экосистемными плагинами. Эти вклады включают улучшение поддержки пользовательских URI в функции batch_request и реализацию проверки тела запроса для плагина hmac-auth. В будущем Seewo планирует полностью использовать и исследовать функции APISIX в своей текущей практике, ожидая внедрения большего количества совместных функций в будущем.
