Структурирование сценариев запуска ваших облачных инстансов

Оптимизация процесса запуска облачных инстансов сценарии и структурирование

Разделение между первым запуском и перезагрузкой

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

Пример диаграммы, показывающей типичное развертывание задач машинного обучения на серверы (виртуальная машина = VM). Изображение автора

Скрипты запуска используются для выполнения автоматизированной конфигурации или других задач при запуске экземпляра сервера в облаке. В AWS EC2 это называется пользовательские данные, в Google Cloud Engine – скрипты запуска, а в Azure Virtual Machine – расширения пользовательских скриптов. Содержимое внутри скриптов запуска может быть представлено в виде установок, настроек метаданных, переменных окружения и т.д. Основная цель состоит в том, чтобы каждый экземпляр всегда настраивался для обслуживания приложений внутри или рядом с данными службами при каждом запуске.

Как и с любыми скриптами, которые мы пишем, всегда следует стремиться к их аккуратности, структурированности и централизованности, чтобы их можно было использовать как шаблоны. Это упростит управление несколькими приложениями в разных экземплярах вашего проекта. В следующих разделах я покажу, как это можно сделать.

Прежде чем мы начнем, вы можете спросить, на какую роль в команде по науке о данных направлен этот пост? Ответ зависит от конкретной ситуации. В компании с уже зрелой командой (и достаточным бюджетом) будут определены конкретные роли, в которых облачный или DevOps-инженер отвечает за развертывание. В других случаях роли могут быть нечеткими, и даже ученый по данным или инженер по машинному обучению выполняет общие задачи, включая эту.

Хотя последующие разделы являются специфичными для пользовательских данных AWS EC2, их можно легко адаптировать к другим провайдерам с использованием той же концепции.

1) Скрипты запуска при первом запуске и перезагрузке

Довольно интуитивно использовать скрипты запуска при первом запуске экземпляра, но для перезагрузки? Если мы используем экземпляры по требованию и они не предназначены для производственных сред (например, тестирование, стейджинг, SIT, UAT), то нет смысла держать их работающими в выходные или после рабочего времени, когда…