До недавнего времени инструкции по развертыванию Flyte на AWS требовали множества ручных шагов, таких как создание кластера k8s, настройка сложных ролей IAM и приведение всех ресурсов в совместную работу. Чтобы улучшить этот процесс адаптации, участники Flyte и Opta объединились, чтобы решить эту проблему с помощью нового решения Opta IaC.

Что такое Флайт?

Flyte — это платформа автоматизации рабочих процессов для сложных, критически важных данных и процессов машинного обучения в масштабе. Это платформа для программирования и обработки параллельных рабочих процессов искусственного интеллекта и анализа данных, созданная командой Союза. Они недавно собрали 10 миллионов долларов, чтобы продолжать упрощать рабочие процессы машинного обучения для бизнеса.

Opta — это инфраструктура как код (IaC), в которой пользователи указывают свои потребности на высоком уровне абстракции. Opta генерирует Terraform/Helm, необходимые для достижения этих целей. С Opta пользователям не нужно быть экспертами в области облачных вычислений/инфраструктуры. Он включает в себя надежные, готовые к работе модули для большинства облачных сервисов и позволяет им быстро составить идеальный стек инфраструктуры.

Цели интеграции

С помощью этой интеграции мы хотели достичь нескольких основных целей:

Производственное развертывание Flyte

Несмотря на то, что очень легко протестировать Flyte с помощью развертывания в песочнице, которая представляет собой один контейнер Docker, для безопасного масштабируемого развертывания Flyte производственного уровня требуется гораздо больше облачных ресурсов. Например, в AWS потребуется настроить:

  • Кластер K8s: запускает плоскость управления
  • Aurora Postgres: хранилище для постоянных записей
  • Простая служба уведомлений (SNS): уведомления после завершения рабочего процесса или в случае внезапных сбоев.
  • Простая служба очередей (SQS): Flyte поставляется со своим собственным планировщиком, но Flyte может дополнительно использовать правила SQS и Cloudwatch для периодического планирования.
  • S3: управление основными компонентами Flyte, такими как Admin, Propeller и DataCatalog; Контейнеры среды выполнения пользователя полагаются на хранилище объектов для хранения файлов.
  • Детализированные элементы управления IAM
  • DNS для приборной панели

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

Opta сэкономила нам кучу часов, обычно мне больше нравится YAML, чем JSON. Он более удобочитаем.

Мультиоблачный

В настоящее время Flyte поддерживает развертывания AWS, GCP и Azure с помощью диаграмм управления. Однако для этого по-прежнему требуются некоторые ресурсы (хранилище блогов, IAM и т. д.) и понимание архитектуры Flyte. Цель состоит в том, чтобы иметь полное развертывание Flyte во всех трех больших облаках (AWS, Azure и GCP) через Opta, что упростит развертывание масштабируемой версии Flyte.

Программное создание и уничтожение

Люди в сообществе Flyte также хотят иметь возможность программно создавать и уничтожать развертывания Flyte.

Если бы Opta не существовало, мне пришлось бы выделить ресурсы команды инженеров, чтобы найти и изучить различные варианты, такие как Terraform, выбрать один и изучить его, а затем разработать всю нашу инфраструктуру на этом языке. — Технический директор Union.ai

Как Opta помогла достичь целей

Opta представляет новый способ реализации инфраструктуры как кода. Вы работаете с высокоуровневыми модулями, поэтому любой может создать автоматизированную, масштабируемую и безопасную инфраструктуру для своих приложений, не тратя недели или месяцы на то, чтобы стать экспертами DevOps.

Для развертывания Flyte основными причинами, по которым Opta идеально подходит для использования в качестве правильного инструмента развертывания, являются:

Настраиваемые облачные модули

Opta предоставляет облачные модули высокого уровня, которые автоматически настраивают основные элементы инфраструктуры, такие как безопасная сеть, VPC и подсети. Это также упрощает интуитивное подключение различных модулей. Например, Opta упрощает безопасную передачу учетных данных базы данных в развертывание Kubernetes.

Интеграция с AWS/GCP/Azure

Opta поддерживает облака AWS/GCP/Azure. Для общих ресурсов, таких как Redis, Postgres, MySQL, Mongo, Kafka и т. д., Opta полностью абстрагируется от облака, и одни и те же файлы конфигурации будут работать во всех облаках. Но для более специфичных для облака инструментов, таких как S3, GCS и т. д., участники Opta очень тесно сотрудничали с участниками Flyte, чтобы добавить все функции, необходимые в AWS и GCP, и активно работают над поддержкой Azure.

Инфраструктура как код (IaC)

Поскольку Opta — это решение IaC, команде Flyte стало легко программно создавать и уничтожать кластеры Flyte. Они используют рабочие процессы Flyte для создания развертываний Flyte по требованию для управления этим конвейером.

Мысли технического директора Union.ai

Мы поговорили с Хайтамом Абуэльфуту, техническим директором Union.ai, команды Flyte. Он описывает Opta как платформу, предлагающую абстракцию поверх Terraform, которая обеспечивает соблюдение передовых методов инфра-развертывания. Он также рассказал нам, что ему больше всего понравилось в Opta: «Команда Opta и я не должны учиться или возиться с Terraform!»

У Opta замечательная команда! они отзывчивы и быстро решают любые проблемы, которые у вас есть.

Подведение итогов

Интеграция Opta от Flyte в настоящее время поддерживает AWS и GCP. Мы активно работаем вместе, чтобы упростить развертывание в Azure. Хотя для ресурсов, доступных во всех облаках, таких как Postgres, Redis и управляемые K8, не требуются изменения, может потребоваться настройка ресурсов, характерных для облачных служб хранилища BLOB-объектов. Если вы хотите немедленно развернуть это, присоединяйтесь к нашему сообществу или сообществу Flyte и дайте нам знать!

Эта запись изначально была опубликована в блоге Flyte; мыдобавили несколько мыслей от технического директора перед публикацией.