О чём эта история

Оператор городских ферм Grolli перенёс в Yandex Cloud инфраструктуру для управления своими объектами. Миграция от прежнего провайдера заняла три месяца и прошла без даунтайма. Чтобы сохранить функциональность своей платформы, компания перестроила работу с цифровыми двойниками — виртуальными моделями городских ферм. Также в Grolli создали внутренний инструмент, который помог автоматизировать процесс переезда.

Теперь компания пользуется сразу несколькими сервисами Yandex Cloud — Yandex IoT Core, Yandex Cloud Functions, Yandex Compute Cloud, Yandex Managed Service for MongoDB, Yandex Managed Service for MySQL®, Yandex Object Storage, Yandex Message Queue и Yandex Tracker. На новой облачной инфраструктуре Grolli решила проблему вендор‑лока (зависимости от услуг одного поставщика) и масштабировала бизнес — за год количество подключённых ферм и объём обрабатываемых облачной платформой сообщений увеличился более чем в 2 раза.

Что такое вертикальные фермы и при чём здесь облака

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

Вертикальная ферма чаще всего выглядит как большой стеллаж с растениями. Его ставят в подвал, в гараж или просто на участок. Разработанное Grolli оборудование автоматически поддерживает нужный климат, освещение и даже смешивает в нужных пропорциях компоненты для питательного раствора и подаёт его растениям. Контролировать процесс и управлять им можно через приложение «Виртуальный агроном».

Получается что‑то похожее на умный дом, только для выращивания растений.

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

Экосистема Grolli использует облачные технологии. В облаке компания хранит и обрабатывает телеметрические данные с оборудования. Там же лежат цифровые двойники устройств и обновления прошивок для них.

Всю эту экосистему Grolli создавала на облачных сервисах Microsoft Azure. В 2022 году компания решила перенести облачную часть своего бизнеса в Россию.

Собственный кластер Kubernetes® или облачное решение?

Одним из вариантов решения проблемы был переход к кластерам Kubernetes. Их можно разворачивать как в облаке, так и в ЦОД заказчика. Это позволяет работать даже с теми клиентами, которые принципиально против хранения данных в облаке. Кроме того, собственные кластеры Kubernetes дали бы Grolli больше производительности. Однако с точки зрения затрат на инфраструктуру и персонал этот сценарий проигрывал, поэтому в компании продолжили делать ставку на облачные сервисы. Впрочем, от идеи с Kubernetes в Grolli не отказываются.

Провайдера в России представители Grolli выбирали по набору необходимых для работы сервисов и служб. В первую очередь речь шла про IoT Core — сервис интернета вещей для двустороннего обмена сообщениями между реестрами и устройствами по протоколу MQTT. Также была важна возможность проводить бессерверные вычисления на языке C# и хранение и обработка данных на территории РФ — у некоторых заказчиков был такой запрос.

Другой важный аспект — возможность масштабирования. Компания готовилась к росту клиентской базы и нагрузки на свою IT‑инфраструктуру, и этот этап ей нужно было пройти без проблем.

Сравнив предложения нескольких облачных провайдеров, команда Grolli выбрала Yandex Cloud. Здесь компания нашла полный набор необходимых ей сервисов и технологий и начала выстраивать параллельную имеющейся инфраструктуру.

Как адаптировать архитектуру проекта к новому облаку

Grolli было важно максимально автоматизировать все миграционные процессы. Добиться этого помогли Terraform и собственный инструмент компании, который по коду формирует скрипт для развёртывания.

При переходе из одного облака в другое Grolli пришлось решить не самую тривиальную задачу: создать собственную систему цифровых двойников ферм, которая при изменении параметров в них автоматически обновляла бы сами устройства. И это компании удалось. Теперь при обновлении цифрового профиля устройства в облаке информация об изменениях записывается в базу данных. К ней время от времени обращается устройство — и так при необходимости оно и его двойник синхронизируются.

Ресурсы на переезд у компании были ограничены, поэтому в Grolli старались использовать сервисы PaaS и SaaS.

Инфраструктура Grolli в Yandex Cloud состоит из:

  • Yandex IoT Core. Благодаря ему устройства и цифровые двойники обмениваются сообщениями по протоколу MQTT.
  • Yandex Object Storage. Там компания хранит обновления прошивок устройств и снимки растений с камер, установленных на фермах.
  • Очереди SQS в Yandex Message Queue. Очереди SQS используются для связи компонентов экосистемы друг с другом и для балансировки нагрузки на каждый из них.
  • Yandex Cloud Functions. При помощи этого сервиса компания построила внешний программный интерфейс (REST API).
  • Yandex Managed Service for MongoDB. В этой документоориентированной базе данных компания хранит цифровые двойники ферм и данные телеметрии — сколько растений взошло, сколько питательного раствора они употребили, каким был климат и прочую полезную для анализа работы фермы информацию. Параллельно для этих целей компания тестирует Yandex Managed Service for ClickHouse®.
  • Yandex Tracker. Он отправляет владельцу фермы пуш‑уведомление, если в работе фермы произошёл технический сбой. Если проблема требует вмешательства техподдержки, система автоматически создаёт задачу с помощью API трекера.
  • Виртуальная машина в Yandex Compute Cloud. На ней развёрнута система Kratos для авторизации и аутентификации пользователей. Сейчас компания рассматривает переезд на Yandex Identity Service based on Ory Kratos.
  • Yandex Managed Service for MySQL®. Используется для хранения данных пользователей для системы Kratos.

После переезда компания провела нагрузочное тестирование — запустила 6000 метеостанций одновременно. Даже не на самом мощном кластере MongoDB система без проблем справилась с такой нагрузкой, а в Grolli убедились, что у компании есть перспективы для масштабирования инфраструктуры в Yandex Cloud более чем в 30 раз.

Четыре главных итога переезда

  • Миграция в новое облако прошла без даунтайма сервисов экосистемы Grolli и в установленный срок — менее чем за три месяца.
  • На новой облачной инфраструктуре компания сумела масштабировать бизнес. За год количество подключённых ферм и обрабатываемых в облаке сообщений от устройств выросло более чем в 2 раза. И этот рост компания прошла с ожидаемыми параметрами работы всех сервисов Yandex Cloud, которыми она пользуется. Стресс‑тесты показали возможность масштабирования сервисов в существующей конфигурации в десятки раз.
  • Компания решила проблему вендор‑лока. Раньше Grolli была привязана к решениям Microsoft, поэтому сменить провайдера оказалось не так просто. Теперь облачная инфраструктура компании работает без привязки к конкретному провайдеру и делает решения Grolli более гибкими и легко переносимыми.
  • Grolli теперь может удовлетворить запрос клиентов на хранение и обработку данных на территории РФ.

Мнение

Сергей Березин,
руководитель департамента информационных технологий Grolli
Сергей Березин,
руководитель департамента информационных технологий Grolli

Переезд прошёл гладко. Не было каких‑то неразрешимых проблем, которые заставили бы нас нервничать и думать: «А не стоит ли развернуться на полпути и попробовать разместиться где‑то ещё?». Всё заработало достаточно стабильно. Мы довольны Yandex Cloud. Отдельно отмечу хорошую поддержку: операторы отвечают оперативно, и видно, что они ориентированы на решение наших вопросов.