KGK: после миграции в облако надежность наших сервисов выросла в 3 раза
- Cloud Servers
- ClickHouse aaS
- MongoDB
- Сервис
- Global
- Сфера деятельности
- IT и разработка, логистика
- Объем данных
- 6 ТБайт
Развиваем решение для мониторинга транспорта
Мы развиваем Global — решение для мониторинга транспорта в онлайн-режиме. Среди наших клиентов — транспортные и жилищно-коммунальные компании, таксопарки. Систему мониторинга адаптируют под каждого клиента: например, в машинах для перевозки детского питания важно отслеживать температуру, а в аэропортах — точно знать местоположение транспорта, чтобы машина не столкнулась с самолетом. Соответственно, процессы разработки и инфраструктура требуют большой гибкости.
У нас нет «черных пятниц» и внезапных всплесков нагрузки. Данные поступают со множества датчиков, установленных в транспортных средствах, так что они накапливаются постепенно и предсказуемо. Объём этих данных, таким образом, масштабируется по мере роста клиентской базы и запуска новых сервисов.
Нам потребовался переход на современную архитектуру
Мы на рынке с 2006 года, и программные решения, разработанные за последние 12 лет, уже не отвечали современным требованиям. Так что мы решили переписать бэкенд и фронтенд, архитектурно перестроить серверную часть.
В 2006 году систему мониторинга Global мы запустили всего на нескольких серверах — они располагались в том же помещении, где сидели наши инженеры. Позднее, когда бизнес подрос, мы переехали в дата-центр: часть серверов собственные, часть — арендованные. Их обслуживал наш системный администратор. Но по мере роста мы уперлись в стандартные ограничения владения собственным железом: возрастание нагрузки на службу эксплуатации, сбои, ведущие к убыткам и репутационным потерям, возрастание стоимости владения. Так мы пришли к идее облака.
Выбор облачной платформы
Когда встал вопрос о выборе ИТ-инфраструктуры для системы мониторинга, партнеры предложили нам облако. Мы рассмотрели предложения нескольких провайдеров и в итоге остановились на VK Cloud. Эту облачную платформу выбрали по нескольким причинам:
- VK Cloud — гиперскейлер с собственными дата-центрами и высоким уровнем SLA, он составляет 99,95%.
- ИТ-инфраструктура платформы соответствует ФЗ-152, так что можно хранить персональные данные — для системы мониторинга транспорта это критично.
- Независимые каналы связи и их большая пропускная способность: VK Cloud находится в партнерстве с Мегафоном и обеспечивает надежную передачу данных от любых устройств и между любыми точками.
- К этому добавляется безлимитный трафик, что интересно при объёмах трафика, которые генерируют наши устройства.
- Возможности быстрого масштабирования инфраструктуры.
- Хорошая техподдержка: наши специалисты и эксперты VK Cloud общаются в Telegram-чатах в реальном времени. В нем оперативно получаем ответы на вопросы и решаем проблемы.
PaaS позволяют легко масштабировать систему
В основе нашей системы мониторинга — базы данных, в них поступают данные с трекеров, установленных в машинах. На основе этих данных формируются отчеты для клиентов. Так что в облаке VK Cloud мы используем несколько решений:
- Базы данных ClickHouse и MongoDB — для хранения клиентских данных.
- Виртуальные машины — в качестве инфраструктурной основы для приложений. Базы данных в итоге мы используем в виде платформенных решений (PaaS). Выбор обусловлен удачной архитектурой нашего приложения. Нам не требуется специфическая настройка OC или баз данных, так что PaaS «из коробки» покрывает 90% наших потребностей, оставшиеся 10% реализуем на виртуальных машинах.
Преимущества PaaS — в ситуациях, когда требуется масштабирование ИТ-систем:
- Стандартные шаблоны баз данных деплоятся быстро и легко, что экономит массу времени на дополнительную настройку.
- Добавление новых инстансов, расширение дисков и ресурсов происходит легко и быстро.
Перенос в облако 6 Тбайт данных без даунтайма
В облако мы мигрировали без даунтайма, данные переносили в три этапа: сначала фронтенд, затем бэкенд, наконец, базы данных и АТС.
Всего у нас было 6 Тбайт данных, а переезд занял около 4–5 месяцев. Такой срок объясняется тем, что часть инфраструктуры была старой, объем данных — большим, а миграцией занимался один DevOps-инженер. Впрочем, это соответствовало нашим ожиданиям от миграции. Этапы миграции:
- Фронтенд. Задача в целом была простой — на перенос и тестирование потребовалось около трех недель.
- Бэкенд. Все также прошло легко, поскольку ранее DevOps-инженер контейнеризировал наше приложение. На перенос GitLab, кластера Docker Swarm и тестовых стендов ушло около полутора месяцев — все делали без спешки и аврала, чтобы успевать перепроверять результат.
- Базы данных. Этот этап был самым сложным, поскольку параллельно мы меняли архитектуру приложения. Старое решение работало на базах данных MySQL — схема изжила свое и дальше эксплуатировать ее не было смысла. - В качестве нового хранилища выбрали ClickHouse. К кластеру ClickHouse подключили старую базу MySQL: с этого момента начали перенос данных из одной базы в другую, попутно новые данные уже писались в ClickHouse. - Следующий этап — перенос базы данных MySQL, которая отвечает за бизнес-логику. В облаке подняли инстанс MySQL Percona и ввели его в кластер — после успешной репликации данных старый сервер вывели из работы.
- АТС. В последнюю очередь переносили телефонию: загрузили в облако кастомный образ АТС, а затем запустили его на платформе.
Итог: рост надежности и сокращение убытков
Надежность сервиса повысилась в 3 раза. Уровень надежности напрямую зависит от того, какие решения использовали до переезда в облако. У нас были старые Legacy-решения, и как минимум раз в месяц мы серьезно падали — клиенты не могли отслеживать свой транспорт.
После миграции серьезных сбоев не было: не помню ситуаций, чтобы система не поднялась в течение минуты.
Нет финансовых потерь из-за простоев. Своим клиентам мы предоставляем финансовые гарантии — они не платят за сервис во время простоев. Соответственно, раньше падения случались периодически, и мы несли убытки — теперь этого нет.
Инфраструктуру обслуживает один DevOps-инженер на part-time. Облако снимает с компании головную боль, связанную с обслуживанием. Больше не нужно следить за железом и исправностью дисков, думать ночью, как поднять упавший сервер.
Теперь DevOps-инженер, который ранее работал full-time, тратит на нас всего несколько часов в неделю и может заниматься другими проектами. Старая инфраструктура требовала содержать штатного сотрудника полный день.
Мы сконцентрированы на разработке. Поскольку большинство проблем с эксплуатацией инфраструктуры исчезло и поднимать упавшие серверы больше не нужно, техническая команда сосредоточилась на нашей профильной деятельности — разработке и поддержке решений для клиентов.
Планы на будущее
В ближайшее время запустим новую услугу — видеорегистрацию, клиенты давно о ней просили. Мы рассмотрели все варианты, которые есть на рынке, и нашли веские причины разрабатывать собственные регистраторы с нуля.
Через несколько месяцев мы запустим видеорегистраторы в продакшен. Данные от них тоже будут храниться в облаке VK Cloud. Для этого нам могут понадобиться новые продукты платформы.