суммаризация Choosing serverless Babbel’s migration story Amazon Web Services
Основная информация о компании
Babbel — ведущая платформа для изучения языков с более чем 10 миллионами проданных подписок и 60 000 курсов для 14 языков. Компания использует AWS с момента запуска продукта в 2007 году и является частым участником раннего внедрения новых сервисов AWS.
Предпосылки для изменения архитектуры
Проблемы старой системы
До 2020 года Babbel использовал устаревший стек на AWS OpsWorks, который создавал следующие проблемы:
- Высокие затраты на обслуживание: Устаревшая версия Chef для управления конфигурацией EC2-инстансов
- Медленное масштабирование: До 25 минут для добавления новых EC2-инстансов в OpsWorks кластер
- Ограниченная функциональность: Использование Classic ELB без возможности интеграции с Application Load Balancers
- Устаревшая инфраструктура: Старые версии Ubuntu, приближающиеся к концу жизненного цикла
Критерии идеального решения
Команда Babbel определила следующие требования:
- Хорошая интеграция с существующей AWS архитектурой и Terraform
- Активная разработка с выделенной командой поддержки
- Минимизация операционных и сервисных затрат
- Освобождение времени разработчиков для работы над пользовательскими функциями
Анализ вариантов миграции
Рассматриваемые решения
- AWS Lambda
- Amazon Elastic Container Service (Amazon ECS)
- Amazon Elastic Kubernetes Service (Amazon EKS)
Оценка AWS Lambda
Преимущества:
- Автоматическое масштабирование без конфигурации
- Отсутствие инстансов для обслуживания
- Мгновенные развертывания и откаты
- Нет необходимости в обновлениях ОС
Ограничения:
- Не подходит для многоцелевых сервисов, требующих Docker
- В 2020 году отсутствовала поддержка контейнерных образов
Оценка Amazon ECS
Рассмотрены четыре варианта:
- ECS на EC2
- ECS на Fargate
- EKS на EC2
- EKS на Fargate
Выбор ECS на Fargate по причинам:
- Устранение необходимости обслуживания базовых EC2-машин
- Простая интеграция с существующей AWS инфраструктурой
- Совместимость с Terraform кодовой базой
- Наличие требуемых функций (после их реализации AWS)
Отказ от Amazon EKS
Причины отказа от EKS:
- Более крутая кривая обучения Kubernetes
- Больший объем изменений в существующей среде
- Увеличенная операционная нагрузка
- Опасения относительно задержек в доступности новых функций Kubernetes
- Предпочтение AWS-ориентированным сервисам
Процесс миграции
Этапы миграции
- AWS Lambda: Быстрая миграция сервисов с предыдущим опытом
- Докеризация: Подготовка всех остальных сервисов для AWS Fargate
- Поэтапный подход:
- Сначала внутренние сервисы без влияния на продукт
- Затем внутренние сервисы с влиянием на клиентов
- В конце клиентские сервисы
Координация
Миграция затронула более 10 сервисов, потребовав значительной межкомандной координации.
Результаты миграции
Решенные проблемы
- Время развертывания: Сокращение с 25-30 минут до практически мгновенного
- Масштабируемость: Быстрое автоматическое масштабирование вместо 20+ минут
- Функциональность: Доступ к Application Load Balancers и интеграции с AWS Cognito
- Сокращение затрат: Более эффективное использование вычислительных ресурсов
Дополнительные преимущества
- Интеграция с Amazon ECR для сканирования образов
- Прямая аутентификация через ALB
- Улучшенная безопасность в процессе релизов
Ключевые выводы для исследования
Данный кейс демонстрирует практический подход к миграции на serverless архитектуру в крупной продуктовой компании. Особенно важно отметить гибридный подход: использование AWS Lambda для подходящих сервисов и ECS на Fargate для контейнеризованных приложений. Это показывает, что serverless не означает "только FaaS", а представляет собой экосистему управляемых сервисов.
Критически важно для вашего исследования: кейс подтверждает тенденцию интеграции serverless технологий с традиционными подходами, что может быть ключевым аспектом для анализа в вашей ВКР.
Пользователь работает над ВКР по serverless технологиям в экосистеме JavaScript. Этот кейс Babbel очень релевантен для его исследования, так как показывает реальный опыт миграции крупной компании к serverless архитектуре.
Важно отметить ключевые моменты:
- Гибридный подход (Lambda + ECS Fargate)
- Практические проблемы и их решения
- Критерии выбора технологий
- Измеримые результаты
Также стоит выделить, что это хороший пример для раздела о практических кейсах внедрения serverless.