← КейсыML-платформа

облачный провайдер2022-2025

ML-платформа по требованию на ClearML

Провайдер продаёт ML-платформу как сервис: у каждого клиента своя частная инсталляция в любом регионе, есть бесплатный тест на две недели. Перевели доставку платформы с ClickOps на IaC и автотесты.

Цифры

8 ч → 24 минразвернуть платформу клиенту
~19Helm-чартов ставит Terraform в нужном порядке
6 минавтотесты перед выдачей клиенту

Было

  • ClickOps: Managed Kubernetes, файловое хранилище, S3 и реестр контейнеров прокликивали руками в панели.
  • Около 19 Helm-чартов ставили в строгом порядке и вручную протаскивали в них креды и адреса.
  • Одна ручная сборка инфраструктуры занимала около двух дней, весь деплой платформы 8 часов. Серверы-снежинки и знания в голове одного человека.

Стало

  • Деплой платформы клиенту за 24 минуты, в 20 раз быстрее: 30 секунд на проверку кода, 17 минут на деплой, 6 минут на автотесты, 1 минута на удаление.
  • Конфигурация клиента лежит в одном файле, под каждую ветку поднимается своя изолированная платформа.
  • Тот же пайплайн потом доставлял клиентам inference-платформу, около 20 минут на деплой.

Что сделали

  1. Платформа из open source на Managed Kubernetes: ClearML для экспериментов и очередей, JupyterHub, Gitea, Keycloak, Istio, prometheus-stack, GPU-оператор и KServe для сервинга.

  2. Три итерации IaC. Даунстримы GitLab, потом монолитная Terraform-джоба, потом отдельные джобы со своим стейтом на каждый компонент и terraform_remote_state. Модули версионируются в GitLab Registry.

  3. Helm-чарты ставит Terraform. Порядок задаётся через depends_on, переменные из S3, DNS и остальной инфраструктуры сразу попадают в values.

  4. Автотесты перед выдачей клиенту. pytest проверяет обучение на GPU и CPU, загрузку артефактов в S3 и пуш образов в реестр, Selenium проверяет веб-интерфейсы. Без зелёных тестов изменения не мержатся.

  5. Ветка = своя платформа. GitLab environments поднимают изолированную инсталляцию под каждую ветку и удаляют её после мержа. Серверы-фениксы вместо серверов-снежинок.

  6. Шеринг GPU внутри платформы. Автоматическая разметка MIG и TimeSlicing: несколько Jupyter-инстансов на одной карте и очереди экспериментов ClearML.

Стек

ClearMLJupyterHubKServeGiteaKeycloakIstioTraefikprometheus-stackNVIDIA GPU OperatorMIGTimeSlicingManaged KubernetesS3TerraformGitLab CIpytestSelenium

Моя роль

DevOps/MLOps-инженер в отделе Data/ML-продуктов. Автоматизировал доставку платформы (IaC, CI/CD, автотесты) и отвечал за GPU: GPU-оператор и шеринг.

Обсудить похожую задачуTelegramконсультация через getMentor или Telegram

↑↓ выбор · Enter открыть · Esc закрыть