Argo — это контейнерная платформа управления рабочей нагрузкой с открытым исходным кодом, основанная на Kubernetes. Он предназначен для упрощения процессов DevOps и снижения операционной сложности при развертывании сред Kubernetes и управлении ими.
Рабочий процесс Арго
Рабочий процесс Арго — это рабочий процесс для моделирования, оркестровки и выполнения набора связанных задач. Он использует файлы YAML для определения различных этапов и задач рабочего процесса. Рабочий процесс Арго имеет несколько свойств, таких как:
Поддерживает несколько типов задач, включая контейнерные задачи, задачи сценариев, параллельные задачи и т. д.;
Обеспечить различные типы потоков управления, такие как последовательные, параллельные, условные, циклические и т. д.;
Поддержка взаимодействия с внешними инструментами и сервисами, такими как Git, Jenkins, Slack и т. д.;
Обеспечивает обширную поддержку журналов и индикаторов для облегчения устранения неполадок и мониторинга рабочего процесса.
Вот простой пример Рабочего процесса Арго:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: example
spec:
entrypoint: hello
templates:
- name: hello
container:
image: busybox
command: [echo, "Hello, Argo!"]
В этом примере мы определяем рабочий процесс с именем example, который содержит шаблон с именем hello, который использует контейнер busybox для печати сообщения. Когда мы отправим рабочий процесс, Argo создаст задание Kubernetes для запуска задачи.
Argo CD
Argo CD — это инструмент непрерывной доставки для автоматизации развертывания приложений в кластерах Kubernetes. Он предоставляет метод развертывания приложений на основе GitOps, который сохраняет конфигурации приложений в репозиториях Git, а также автоматически обновляет и развертывает приложения на основе последней версии в репозитории Git. Argo CD предоставляет следующие возможности:
Предоставление инструментов визуального пользовательского интерфейса и командной строки для упрощения настройки и управления;
Интеграция с репозиториями Git и поддержка GitHub, GitLab, Bitbucket и т. д.;
Поддерживает несколько форматов конфигурации приложений, включая Helm Chart, Kustomize, Kubernetes Manifest и т. д.;
Предоставляет автоматизированные функции для обновления и отката приложений на основе метрик и событий веб-перехватчиков.
Вот пример простого приложения Argo CD:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: example
spec:
source:
repoURL: 'https://github.com/example/example.git'
targetRevision: 'master'
path: 'kubernetes'
destination:
server: 'https://kubernetes.default.svc'
namespace: 'example'
syncPolicy:
automated:
prune: true
selfHeal: true
В этом примере мы определяем приложение с именем example, которое получает конфигурацию приложения из каталога kubernetes репозитория GitHub. Когда мы обновляем конфигурацию приложения в репозитории, Argo CD автоматически развертывает новую версию в целевом кластере Kubernetes.
Арго событие
Арго событие — это инструмент для управления событиями и оповещениями в кластерах Kubernetes. Он собирает Kubernetes События и сигналы сервера API, конвертируйте их в удобный для управления формат и уведомляйте с помощью нескольких методов, таких как Slack, MS. Teams、PagerDutyждать。Арго Мероприятие предлагает следующие возможности:
Поддерживает несколько источников событий, таких как события Kubernetes, сигналы тревоги Prometheus и т. д.;
Поддержка фильтрации и фильтрации событий на основе источника события, метки и других условий;
Предоставьте гибкие методы уведомления, такие как электронная почта, SMS, обмен мгновенными сообщениями и т. д.
Вот простой пример события Арго:
apiVersion: argoproj.io/v1alpha1
kind: EventSource
metadata:
name: kubernetes
spec:
kind: KubernetesEvent
version: v1.15.0
source:
apiServer: https://kubernetes.default.svc
namespace: default
dependency:
labels:
app: example
filter:
type: Normal
webhook:
url: https://example.com/webhook
Airflow — это инструмент управления рабочими процессами на основе Python с открытым исходным кодом, который помогает пользователям легко планировать и организовывать задачи. В этой статье будут представлены основные функции и варианты использования Airflow, а также способы его использования для создания сложных рабочих процессов обработки данных.
Особенности воздушного потока
Модель программирования на основе DAG
Airflowиспользовать Модель программирования на основе DAG,Это позволяет разделить сложные рабочие процессы на несколько независимых узлов задач.,И может выполняться последовательно в соответствии с зависимостями. Узлы DAG могут быть написаны на Python.,Это позволяет Airflow поддерживать широкий спектр типов задач и источников данных.
Визуальный рабочий процесс
Airflow имеет встроенный визуальный интерфейс пользовательского интерфейса, который позволяет легко просматривать и управлять статусом рабочего процесса. Пользователи могут просматривать состояние выполнения задач, журналы и статистику в пользовательском интерфейсе.
Богатые функции планирования задач
Airflow поддерживает различные методы планирования задач, такие как запуск по расписанию, запуск по событиям и запуск вручную. Пользователи могут настраивать правила планирования задач для адаптации к различным сценариям.
Мощный вставной механизм.
Механизм плагинов Airflow позволяет пользователям расширять его функциональность путем написания собственных плагинов. Плагины могут добавлять новые типы задач, источники данных, планировщики и т. д. для достижения более гибких рабочих процессов.
Варианты использования воздушного потока
Перемещение и преобразование данных
Airflow можно использовать для организации процесса передачи данных из одной системы или источника данных в другую.
Рабочий процесс ETL
Airflow можно использовать для построения рабочих процессов ETL (извлечение, преобразование и загрузка), что позволяет инженерам данных обрабатывать большие и сложные наборы данных.
Задачи машинного обучения
Airflow можно использовать для организации задач машинного обучения, таких как очистка данных, извлечение признаков и обучение моделей.
Создавайте рабочие процессы с помощью Airflow
Основным строительным блоком Airflow является DAG. Разработка задач Airflow требует следующих шагов:
Установить воздушный поток
Пользователи могут использовать команду pip для установки. воздушный поток, после установки вы можете использовать команду «airflow initdb» для инициализации среды Airflow.
Создать группу обеспечения доступности баз данных
Пользователи могут создавать, написав код Python. группу обеспечения доступности баз данных, включая определение задач, установку зависимостей между задачами и настройку Планирования. правила заданий и многое другое.
Запуск задач Airflow
После определения и настройки группы обеспечения доступности баз данных пользователи могут запускать задачи с помощью инструмента командной строки Airflow и просматривать состояние задач, журналы и статистику в пользовательском интерфейсе.
Короче говоря, Airflow, как мощный инструмент управления рабочими процессами, может помочь пользователям обрабатывать сложные рабочие процессы с данными, тем самым обеспечивая автоматизацию и отслеживаемость обработки данных.
Argo и Airflow — две популярные платформы планирования рабочих процессов с открытым исходным кодом. Обе они предоставляют визуальные интерфейсы и мощные функции планирования задач и управления. Вот как они сравниваются:
архитектура и дизайн
Argo использует Kubernetes в качестве своей инфраструктуры. Он использует собственные объекты API Kubernetes и CRD для планирования задач и управления ими. Airflow — это платформа распределенного планирования задач, основанная на Python и использующая инструменты с открытым исходным кодом, такие как Celery и RabbitMQ.
язык программирования
Язык программирования Argo — форматы YAML и JSON.,Определение рабочего процесса на этом языке относительно простое и легкое для понимания. Airflow использует Python для написания задач и логики планирования.,Разработчики должны быть знакомы с Python.
Масштабируемость
Поскольку Argo построен на Kubernetes,Следовательно, у него лучше Масштабируемость.,Легко адаптируется к различным рабочим нагрузкам и размерам. Воздушный поток менее масштабируем,Требует ручной настройки.
Визуальный интерфейс
Argo предоставляет веб-интерфейс для управления и визуализации процесса выполнения задачи, включая проверку состояния задачи и файлов журналов. Airflow также предоставляет два метода: командную строку и веб-интерфейс для управления задачами и их визуализации.
экология сообщества
Сообщество Argo относительно небольшое, но, поскольку оно основано на Kubernetes, оно извлекает выгоду из сильной экосистемы Kubernetes. Сообщество Airflow стало более активным и превратилось в крупный проект с открытым исходным кодом, имеющий значительный вклад и поддержку плагинов.
Суммируя,Argo и Airflow — отличные платформы планирования рабочих процессов с открытым исходным кодом.,У каждого из них есть свои преимущества,Можно выбрать в зависимости от конкретных требований. Если ваша рабочая нагрузка требует высокой степени взаимодействия между Масштабируемостью и Kubernetes,Тогда Argo — лучший выбор, если у вас хорошие навыки работы с Python;,и требует богатой поддержки сообщества и плагинов,Тогда Airflow — лучший выбор.