Этапы создания аналитических приложений в облаке
Сергей Кравченко, Старший аналитик данных, Beltel Datanomics
Для реализации Data science проектов в облаке под ключ с полной передачей документированного кода компания может обратиться к опытным сторонним разработчикам. Цель этой статьи — описание перечня работ, необходимых для решения такой задачи. В прошлых статьях мы писали о преимуществах облачных технологий и о создании решений по подписке (SaaS), однако SaaS-продукты не всегда могут подходить клиентам по тем или иным причинам. Одной из причин может быть желание клиента самостоятельно развивать экспертизу в новых направлениях. В этом случае готовый проект, выполненный разработчиками облачных решений, может оказаться быстрым стартом. Ниже представлен перечень этапов от описания концепций до введения системы в продуктовую эксплуатацию.
- Описание бизнес-задачи
Ключевым является постановка задачи от бизнеса, от которой строится потребность в сборе данных и понимание, как их обрабатывать.
- Проектирование архитектуры системы в облаке
После постановки бизнес-задачи становится понятно, с какими объемами данных необходимо работать, какие примерно нагрузки должна выдерживать система приема и обработки данных, как данные должны обрабатываться — потоком или иными способами. Исходя из таких вводных можно начать проектировать архитектуру решения.
- Создание облачного хранилища и выгрузка данных
Создание спецификации данных происходит совместно с этапом постановки задачи. Для функционирования аналитической системы возникает необходимость в хранении данных. Исходя из формата данных, требований обработки и доступа предъявляются требования к хранению данных.
- Создание и тестирование механизма приема данных
Облачное хранилище готово. Необходимо создать механизмы, позволяющие отправлять и принимать данные, разработать логику передачи данных. Возможны два варианта реализации:
- Потоковый механизм, когда данные передаются из БД практически мгновенно по мере поступления. Существуют механизмы, позволяющие минимизировать задержку при передачи данных от базы-источника к базе-приемнику.
- Передача порциями (батчами), когда данные собираются до определенного момента и передаются.
- Создание виртуальной среды и кода вычислительного алгоритма
Для создания процесса обработки данных необходимо настроить среду вычислений, установить все библиотеки, проверить корректность работы программных компонент, совместимость версий.
- Написание кода организации вычислительного процесса и тестирование
Это могут быть скрипты обработки данных или процесса обучения модели, компоненты приложения. Данный этап занимает существенную часть времени реализации всего проекта.
- Создание инфраструктуры для выполнения расчетов алгоритмов
Для выполнения расчетов необходимо создать и настроить вычислительный ресурс, на котором будут разворачиваться виртуальные среды для выполнения заданий. Также необходимо организовать процесс вычислений. Например, сложные задачи разбиваются на шаги, в которых важна последовательность действий. Её можно задать в виде скрипта, в котором указывается, какая виртуальная среда и какой код необходим для выполнения того или иного шага.
- Передача проекта
Для полной передачи проекта необходимо произвести:
- Отладку системы, пусконаладочные работы
- Написание документации и руководства пользователям
- Обучение персонала
- Поддержку решения на время обучения персонала
Заключение
Преимуществом владения кода является возможность самостоятельно его адаптировать под меняющиеся потребности компании, однако для этого необходимо наличие в штате квалифицированных сотрудников. Такой подход имеет смысл, когда у компании есть собственное подразделение разработчиков, способных поддерживать систему.