Close

Знакомство с приложением Atlassian ImageLabeller


ImageLabeller — это простое демонстрационное приложение, использующее машинное обучение для нанесения меток на изображения. Оно используется AWS Lambda, AWS DynamoDB, AWS S3, AWS SageMaker, AWS API Gateway, AWS CloudWatch и AWS CloudFormation, а также написано на языках Go и Python. В данном руководстве рассказывается, как использовать инструменты Atlassian Open DevOps для развертывания и мониторинга некоторых из этих компонентов.

Архитектура ImageLabeller

Диаграмма

Порядок действий

Пользователь вызывает сервис AWS Lambda SubmitImage, передавая в качестве параметра правильный URL-адрес изображения. SubmitImage загружает изображение, выгружает его в корзину AWS S3 open-devops-images-<регион>, вставляет новый кортеж в таблицу AWS DynamoDB под названием ImageLabels и возвращает токен идентификатора изображения пользователю. Токен идентификатора изображения используется для сопоставления изображения в корзине open-devops-images-<регион> с кортежем в ImageLabels.

Для компонента AWS Lambda под названием InvokeLabeller в AWS DynamoDB есть событие-триггер. InvokeLabeller загружает соответствующее изображение из корзины open-devops-images-<регион>, вызывает предварительно обученную модель AWS SageMaker Inception V3, чтобы сгенерировать метки изображения, и обновляет кортеж в ImageLabels, когда туда попадает новый кортеж.

Пользователь вызывает сервис AWS Lambda GetImageLabel, передавая токен идентификатора изображения в качестве параметра. GetImageLabel ищет метки, связанные с токеном идентификатора изображения, в ImageLabels и возвращает их пользователю. Если модель AWS SageMaker еще не завершила обработку изображения, пользователь получает метку NOT_CLASSIFIED.

ImageLabeller развертывается в пяти средах: тестовая среда в регионе us-west-1, промежуточная среда в регионе us-east-2 и три рабочие среды в us-west-2, us-east-1 и ca-central-1.

Компоненты

Корзины AWS S3 и таблицы AWS DynamoDB, входящие в ImageLabeller, развертываются с помощью шаблонов AWS CloudFormation. В этом руководстве представлена информация о настройке CI/CD для развертывания корзин AWS S3. Развертывание таблиц AWS DynamoDB выполняется аналогичным образом; вы сможете заняться этим самостоятельно.

В ImageLabeller есть три вида компонента AWS Lambda: SubmitImage, InvokeLabeller и GetImageLabel. В этом руководстве представлена информация о настройке CI/CD для развертывания SubmitImage. Развертывание GetImageLabel выполняется аналогичным образом; этим также можно заняться самостоятельно.

InvokeLabeller — это компонент AWS Lambda на основе Python, в который потребуется внести небольшие изменения, прежде чем его можно будет опубликовать. Если точнее, InvokeLabeller зависит от конфигурации AWS SageMaker, настройка которой выполняется через консоль AWS.

Системные тесты, включенные в проект ImageLabeller, выполняют общее тестирование. Тесты завершаются с ошибкой, если какой-либо компонент ImageLabeller отсутствует или не работает должным образом. При любом развертывании SubmitImage, GetImageLabel и InvokeLabeller системные тесты выполняются в рамках соответствующих конвейеров CI/CD.

Для первоначального развертывания SubmitImage, GetImageLabel и InvokeLabeller необходимо закомментировать шаги системного тестирования. После успешного запуска развертываний их можно раскомментировать и выполнить повторное развертывание.

Порядок развертывания компонентов

Вручную разверните предварительно обученную модель AWS SageMaker через консоль AWS.

Разверните репозитории инфраструктуры AWS

  1. s3_infra
  2. dynamodb_infra

Разверните компоненты AWS Lambda

  1. SubmitImage
  2. GetImageLabel
  3. InvokeLabeller

Разверните системные тесты

Разверните CloudWatchAlarms

Настройка предварительно обученной модели AWS SageMaker

Подробные сведения о настройке предварительно обученной модели AWS SageMaker.

Интеграция Jira с CI/CD

Подключите инструменты для планирования, работы с репозиторием, CI/CD и мониторинга к Atlassian Open DevOps.

Warren Marusiak
Warren Marusiak

Уоррен — в прошлом разработчик, а ныне пропагандист в сфере ИТ, работающий в Atlassian с 2021 года. Его опыт чрезвычайно обширен, начиная с программного обеспечения для телекоммуникаций на COBOL для мэйнфреймов и заканчивая современной облачной инфраструктурой на базе AWS. Он страстный поклонник технологий, уже успевший поработать на ниве исследований в сфере машинного обучения. Будучи пропагандистом ИТ, Уоррен информирует людей о возможностях продуктов Atlassian и интеграциях партнеров посредством демонстраций, статей и видео. Он также курирует серию видеороликов Developer’s Edge. В свободное время его можно найти на татами, с увлечением занимающимся бразильским джиу-джитсу.


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

Образовательные программы DevOps

Рисунок: карта

Начните работу бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up