О чем эта история
Осенью 2019 года спортивный интернет-портал Sport24.ru начал инфраструктурный проект по переносу сайта в Yandex Cloud. Для поддержки пиковой посещаемости сайта в период важных спортивных событий, а также для показа статистики в режиме реального времени компания решила использовать управляемые сервисы Yandex Cloud. Миграция сайта осуществлялась отдельными микросервисами.
За год Sport24.ru полностью перешел в облако, создав надежную, отказоустойчивую, хорошо управляемую и масштабируемую систему, которая поддерживается силами одного DevOps-инженера вместо команды узкопрофильных специалистов.
Поддержка сайта при высоком трафике
Sport24.ru — спортивный интернет-портал с новостями российского и мирового спорта, интервью со спортсменами, тематическими фото и видео. Входит в состав холдинга S8 Capital.
Сайт Sport24.ru размещался на собственных серверах компании, его администрировали штатные сотрудники и привлеченные ИТ-специалисты. Для обеспечения отказоустойчивости сайта при высоких нагрузках, например во время текстовых онлайн-трансляций масштабных спортивных событий, компания регулярно обновляла имеющуюся инфраструктуру и закупала дополнительные мощности. Готовиться к большим трансляциям нужно было за несколько дней, привлекая всю команду поддержки сайта. Обслуживать избыточную инфраструктуру, необходимую только в моменты пиковых нагрузок, и тратить множество человеческих ресурсов при каждом повышении трафика было нерентабельно.
Тогда Sport24.ru решил перенести сайт с собственных серверов в облако. Размещение в облаке позволяет мгновенно масштабироваться, кратно наращивать мощности и быстро их сворачивать. Одним из важных преимуществ с точки зрения экономики было то, что при сотрудничестве с облачным провайдером клиент оплачивает только потребляемые ресурсы.
Для автоматизации ресурсоемких задач по онлайн-трансляциям матчей, а также показа актуальной статистики и прогнозов событий в реальном времени Sport24.ru требовалась стабильно работающая облачная платформа c большим количеством управляемых сервисов и масштабируемым хранилищем. Другими обязательными условиями была низкая задержка при загрузке страниц сайта и текстовой трансляции на российскую аудиторию, а также поддержка Terraform — инструмента, с помощью которого Sport24.ru быстро разворачивает новые среды разработки.
Такой набор возможностей позволил бы Sport24.ru запустить и поддерживать инфраструктуру минимальными силами.
После рассмотрения предложений от нескольких российских и иностранных облачных провайдеров Sport24.ru остановил выбор на платформе Yandex Cloud, которая предоставила необходимые сервисы и технические возможности.
Микросервисная архитектура на базе управляемых сервисов
Для поддержки в будущем любого объема нагрузки Sport24.ru решил перенести сайт на микросервисную архитектуру, построенную на базе управляемых сервисов Yandex Cloud.
По принципам построения микросервисной архитектуры команде проекта требовалось разработать единое приложение, состоящее из нужного количества слабосвязанных компонентов меньшего размера (микросервисов) с возможностью независимого развертывания. За счет этого упрощается процесс обновления кода и добавления новых функций. Также микросервисы дают возможность оптимизировать масштабирование системы и увеличить устойчивость к сбоям.
Sport24.ru так и осуществлял миграцию сайта — отдельными микросервисами.
Платформа Yandex Cloud предоставила Sport24.ru экосистему тесно интегрированных между собой облачных управляемых сервисов, которые позволяют создать микросервисную архитектуру:
- Yandex Managed Service for Kubernetes® — сервис, который позволяет создавать кластеры Kubernetes и управлять ими. Обслуживание и обновление всех компонентов инфраструктуры находится на стороне облачного провайдера. Благодаря хорошо автоматизированному управлению инфраструктурой Sport24.ru смог решить сложности с ее обслуживанием. В частности, упростили обновление Kubernetes, которое теперь не затрагивает работу сервисов. Инженер Sport24.ru отслеживает релизы раз в 2 недели и при необходимости легко меняет нужные параметры, не отвлекая разработчиков от основной работы.
- Yandex Network Load Balancer — отвечает за распределение сетевой нагрузки по облачным ресурсам и обеспечение отказоустойчивости сайта Sport24.ru.
- Yandex Message Queue — масштабируемый сервис очередей для обмена сообщениями между микросервисами.
- Yandex Managed Service for PostgreSQL — сервис для управления кластерами баз данных PostgreSQL, в которых Sport24.ru хранит информацию. Он обеспечивает высокую управляемость, качественную поддержку и мониторинг СУБД.
Sport24.ru развернул кластеры в Managed Service for Kubernetes, что позволило обеспечить масштабирование внутри групп узлов и отказоустойчивость системы в целом. Масштабируемые вычислительные мощности Yandex Compute Сloud внутри кластера были выбраны с нужными характеристиками для всех экземпляров сервисов.
Мониторинг микросерсивов удобно осуществлять с помощью Prometheus, а мониторинг облачной инфраструктуры — с использованием Yandex Monitoring.
Обслуживающие инфраструктурные задачи Sport24.ru помогает решить Yandex Cloud Functions. Он позволяет быстро запускать код в виде функции в безопасном, отказоустойчивом и автоматически масштабируемом окружении без создания и обслуживания виртуальных машин.
Для хранения всего медиаконтента Sport24.ru использует универсальное масштабируемое облачное S3-совместимое хранилище Yandex Object Storage, которое по мере необходимости автоматически и неограниченно расширяется без деградации с течением времени.
Спортивная статистика в режиме онлайн
Помимо новостей спорта и прямых трансляций, Sport24.ru собирает статистику из нескольких специализированных источников и транслируют ее на сайте в режиме реального времени 24/7.
В ходе сотрудничества с Yandex Cloud Sport24.ru передал задачи распределенной доставки, хранения и обработки статистических данных в ответственность управляемого облачного сервиса Yandex Managed Service for Apache Kafka®.
Данные передаются в базу с помощью очередей сообщений Apache Kafka. На портале Sport24.ru, как и прежде, постоянно появляется спортивная статистика, но поддерживать инфраструктуру стало проще и дешевле.
Работы по переносу сайта Sport24.ru на микросервисную архитектуру заняли чуть больше года. С весны 2021 года сайт Sport24.ru полностью развернут в Managed Service for Kubernetes (вместо платформы, которую поддерживала команда аутсорсеров).
Один за всех
В 2021 году Sport24.ru полностью перенес сайт в облако, используя микросервисную архитектуру, легко масштабируемую под ресурсоемкие задачи. В сотрудничестве с Yandex Cloud обеспечена гибкость управления нагрузкой на сайт и возможность динамически выделять ресурсы. Большое количество управляемых сервисов позволило Sport24.ru не держать штат узкопрофильных специалистов.
Раньше для поддержки сайта 24/7 в Sport24.ru работала команда специалистов на аутсорсе, которая сталкивалась со сложностями в части мониторинга поддержки всех сервисов и решений. Теперь эти сервисы доступны в облаке и поддерживаются силами одного DevOps-инженера Sport24.ru.
Мнение
Большой выбор Managed-сервисов освободил нас от серьезной лишней нагрузки. Особенно мы оценили полное освобождение от поддержки Kubernetes — очень трудоемкой задачи, которой сейчас мы касаемся только как конечные пользователи. С PostgreSQL похожая ситуация — не нужен специалист по установке, поддержке отказоустойчивых кластеров, все делает команда Yandex Cloud. Удобно еще и то, что некоторыми сервисами можно пользоваться временно, если есть задача быстро закрыть узкое место или поддержать ситуативное повышение трафика.