Стратегии миграции в облако с использованием API Gateway

Bobur Umurzokov

Bobur Umurzokov

January 18, 2023

Technology

Миграция в облако — это процесс переноса данных, приложений или других бизнес-элементов из локальной среды частично или полностью в облачную среду, предоставляемую популярными поставщиками облачных услуг, такими как Azure, AWS или Google Cloud. В этой статье рассматриваются различные подходы к построению стратегии миграции в облако с использованием API Gateway.

Преимущества перехода в облако

Для компаний, которые решаются на миграцию в облако, это может оказать значительное влияние. Это включает в себя экономию на аппаратном обеспечении для ИТ-инфраструктуры, ускорение времени доставки, масштабирование приложений в соответствии с потребностями, защиту критически важных рабочих нагрузок и наиболее чувствительных данных, а также расширение возможностей для инноваций.

Здесь мы обобщили дополнительные преимущества миграции в облако:

  • Повышенная гибкость и адаптивность
  • Возможность быстрее внедрять инновации
  • Упрощение растущих требований к ресурсам
  • Лучшее управление растущими ожиданиями клиентов
  • Снижение затрат
  • Быстрое достижение бизнес-результатов
  • Упрощение ИТ
  • Переход к модели "всё как услуга"
  • Лучшее управление потреблением
  • Масштабируемость облака
  • Улучшение производительности

Проблемы миграции в облако

Миграция в облако может принести значительные преимущества, но на этом пути существует немало проблем, таких как отсутствие стратегии миграции в облако на начальном этапе, сложная существующая архитектура, длительный процесс миграции, простои бизнеса во время миграции, организационное внедрение, безопасность и соответствие требованиям.

Проблемы миграции в облако

Компании переходят в облако, чтобы воспользоваться повышенной доступностью услуг, масштабируемостью или другими преимуществами, которые обещает облако. Однако, чтобы в полной мере воспользоваться преимуществами облака, требуется тщательное проектирование и планирование, чтобы убедиться, что организация выбрала облако, наиболее подходящее для её задач.

Стратегии миграции в облако

Существует несколько подходов к эволюции или миграции API-ориентированных систем в облако, начиная от стратегии "оставить как есть" (retain), до переразмещения (rehost), переплатформинга (replatform), перепокупки (repurchase), рефакторинга/перепроектирования (refactor/re-architect) и вывода из эксплуатации (retire).

В этой статье описаны 6 различных стратегий миграции, и она является отличной отправной точкой, если вам поручено оценить или возглавить миграцию существующей архитектуры и систем в облако. Поскольку API часто являются наиболее близким к пользователю бизнес-ориентированным компонентом — и ключевой точкой входа для большинства запросов — им следует уделить особое внимание при выборе подхода к миграции. Шесть стратегий (шесть R) представляют спектр вариантов от "ничего не делать" до полной перестройки или вывода системы из эксплуатации. Это:

  • Оставить или пересмотреть (Retain or Revisit)
  • Переразместить (Rehost)
  • Переплатформить (Replatform)
  • Перекупить (Repurchase)
  • Рефакторинг/Перепроектирование (Refactor/Re-architect)
  • Вывести из эксплуатации (Retire)

Роль управления API в миграции в облако

Независимо от выбранной стратегии эволюционного пути, управление API может сыграть ключевую роль в миграции и раскрытии ценности API как внутри, так и за пределами организации. API-менеджеры по сути являются усиленными шлюзами, предоставляющими различные дополнительные функции для публикации и управления API. API-менеджеры предоставляют политики, которые позволяют решать задачи на границе, такие как OAuth2-вызовы, проверка содержимого, ограничение скорости, кэширование, регулирование и многие другие функции, типичные для шлюза. Существует множество инструментов управления API, и важно выбрать подходящий.

Кроме того, они могут предоставлять порталы для разработчиков, содержащие маркетплейс всех API, которые разработчики могут использовать при создании систем для потребления предлагаемых API. Организации также могут использовать управление API для монетизации доступа к API как для внешних клиентов, так и для внутренних "взаиморасчетов", что распространено в корпоративных и кросс-дивизиональных развертываниях. Возможно, наиболее важной частью управления API является то, что оно может предложить централизованную точку для обнаружения API, пока вы продолжаете вносить изменения за кулисами.

API Gateway как инструмент для миграции

API Gateway является важным компонентом решений для управления API. Вы можете прочитать о 10 наиболее распространенных случаях использования API Gateway в блоге Apache APISIX. Использование API Gateway может обеспечить прозрачность местоположения для предоставляемых сервисов и API, что позволяет развернуть сервис в облаке и постепенно перенаправлять трафик с существующего сервиса на новый с минимальным (или нулевым) воздействием на потребителей.

Ниже приведены 3 возможные стратегии:

  1. Один из способов использования API Gateway в стратегии миграции в облако — начать с создания прокси для ваших локальных сервисов. Это позволяет перенаправлять трафик с локальных сервисов на соответствующие сервисы в облаке, не внося изменений в существующие приложения. Мы также можем проводить простое A/B-тестирование, собирать метрики о производительности новых облачных конечных точек и пользовательском опыте, а также вернуться к локальному сервису, если по какой-либо причине новый сервис в облаке не подходит.

  2. Другая стратегия заключается в использовании API Gateway в качестве фасада для ваших облачных сервисов. Это позволяет скрыть сложность вашей архитектуры микросервисов от внешних потребителей, при этом предоставляя им доступ к необходимой функциональности.

  3. Третья стратегия — использование API Gateway для реализации сервисной сетки, которая может помочь в реализации сетей с нулевым доверием. Это позволяет управлять и защищать взаимодействие между микросервисами, не внося изменений в отдельные сервисы.

Услуги Apache APISIX оказываются эффективным решением для реализации вышеуказанных задач, так как он может выступать в качестве прокси для всего приложения или как единая точка доступа. Выступая в роли прокси, API Gateway способен эффективно обрабатывать запросы и маршрутизировать устаревшее приложение с переработанными конечными точками.

Переплатформинг примерного приложения в облако

Предположим, у нас есть приложение для конференций, которое состоит из 5 основных компонентов: веб-приложение, API Gateway, устаревшая система конференций и два микросервиса (Session и Attendee). Вы можете увидеть ответственность каждого сервиса на приведенной ниже архитектурной диаграмме.

Архитектура приложения для конференций с микросервисами и API Gateway

Ваша команда решает постепенно мигрировать сервисы приложения для конференций в облако — вместо того, чтобы рисковать "большим взрывом" — работа сервисов в нескольких облачных средах и локальных центрах обработки данных представляет дополнительные сложности. Учитывая эту задачу, вы решаете сначала "переплатформить" сервис Attendee. Поскольку вы уже перепроектировали функциональность участников, выделив её в независимый микросервис на предыдущем этапе, стратегии рефакторинга/перепроектирования не кажутся подходящими. Однако, когда вы будете добавлять новую функциональность в систему конференций в будущем, перепроектирование системы (возможно, выделение сервиса) и перенос её в облако будет вариантом, который стоит рассмотреть. Переразмещение может быть надежной стратегией, но мы стремимся воспользоваться преимуществами облачной базы данных как услуги, а не просто "поднять и перенести" наш собственный экземпляр MySQL.

Кроме того, вам необходимо перенести API Gateway в облако (или использовать решения APIM, предоставляемые облачными поставщиками), так как при многих постепенных миграциях в облако трафику потребуется проходить через несколько сетей для удовлетворения запроса API, сделанного пользователем. Перенос API Gateway в облако сейчас также поможет поддерживать постепенную маршрутизацию API-трафика с существующего локального расположения в облако. На приведенной ниже диаграмме показано конечное состояние архитектуры после переплатформинга.

Приложение для конференций локально и в облаке

Итог

В целом, использование API Gateway в стратегии миграции в облако может предоставить множество преимуществ, таких как простота управления, безопасность и масштабируемость. Это позволяет постепенно переносить ваши сервисы в облако и помогает скрыть сложность вашей архитектуры микросервисов от внешних потребителей. Например, Apache APISIX — это полностью открытое и облачно-ориентированное решение для управления API-трафиком, которое можно развернуть в любом облаке и повысить производительность разработчиков с помощью встроенных плагинов, сокращающих время миграции в облако.

Связанные ресурсы

Рекомендуемые материалы

Сообщество

🙋 Присоединяйтесь к сообществу Apache APISIX 🐦 Следите за нами в Twitter 📝 Найдите нас в Slack

Tags: