О чём эта история
Оператор городских ферм 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 теперь может удовлетворить запрос клиентов на хранение и обработку данных на территории РФ.
Мнение
Переезд прошёл гладко. Не было каких‑то неразрешимых проблем, которые заставили бы нас нервничать и думать: «А не стоит ли развернуться на полпути и попробовать разместиться где‑то ещё?». Всё заработало достаточно стабильно. Мы довольны Yandex Cloud. Отдельно отмечу хорошую поддержку: операторы отвечают оперативно, и видно, что они ориентированы на решение наших вопросов.