MLOps — операции машинного обучения

1. Введение в DevOps

Чего ждать??!? В заголовке написано MLOps, но похоже, что статья посвящена DevOps..! Да, это потому, что DevOps и MLOps взаимосвязаны. Эта статья помогает понять некоторые предпосылки MLOps.

Скажем, для разработки продукта или добавления новой функции команда разработчиков создает код, который тестируется группой тестирования, развертывается и поддерживается группой эксплуатации. Как вы можете видеть, есть несколько шагов и задействованы разные команды. При такой сложности разные вещи могут пойти не так.

Для любого добавления новой функции в существующее приложение последуют указанные выше основные шаги.

  1. Разработка: разработчики будут кодировать и тестировать функциональные возможности в локальных системах, после тестирования код будет перемещен в централизованные механизмы, такие как облачные платформы, для доступа пользователя.
  2. Пользователь пытается использовать эти функции, используя различные пользовательские интерфейсы, такие как смартфоны, вкладки, ноутбуки и т. д.

Проблемы с добавлением новых функций:

  • Новые ошибки — валидация, проблемы совместимости устройств и т. д.
  • Удовлетворенность пользователей / проблемы с принятием
  • Стоимость или расходы

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

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

Определение. DevOps — это философия, направленная на улучшение сотрудничества между командой разработчиков (Dev) и группой эксплуатации (Ops), что приводит к созданию приложений более высокого качества.

DevOps в основном состоит из двух этапов:
1. Этап подготовки к производству
2. Этап производства.

  1. Этап подготовки к производству. На этапе подготовки к производству у нас есть 5 подзадач
    : планирование, кодирование, сборка, тестирование и выпуск.
  2. Стадия производства: у нас есть 3 подзадачи
    — развертывание, эксплуатация и мониторинг.

Приведенный выше график говорит сам за себя о том, что происходит на каждом этапе.

CI-CD (непрерывная интеграция и непрерывное развертывание). Вы узнали, что непрерывная интеграция включает этапы планирования, написания кода, сборки и тестирования. Код, написанный разработчиками, постоянно передается, что запускает автоматические тестовые сценарии. Если код дает сбой, разработчики немедленно уведомляются об этом, иначе код переходит к следующему шагу. Точно так же фазы непрерывного развертывания включают выпуск, развертывание, эксплуатацию и мониторинг.

Инструменты, используемые в DevOps:
1. Код:
git, jira, confluence
2. Сборка:sbt, maven
3. Тест:Junit, Se
4. Релиз:Дженкинс, Codeship
5. Развертывание:AWS, облако Google, Azure, Docker, DC/OS
6. Эксплуатация:Ansible, Kubernetes, Chef
7. Мониторинг:
Splunk, Datadog, Nagios

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

Принципы DevOps:

  1. Совместная работа.DevOps расширяет сотрудничество между различными командами, работающими над функцией. Команды разработки и эксплуатации работают вместе, постоянно обмениваются отзывами и общаются на протяжении всего цикла разработки. Поэтому создается качественная продукция
  2. Ориентированность на клиента.Команды постоянно собирают отзывы от конечных пользователей, чтобы сделать продукт лучше.
  3. Постоянное совершенствование. Благодаря быстрому развертыванию и постоянной обратной связи разработанное приложение постоянно совершенствуется.
  4. Автоматизация. Всякий раз, когда разработчик отправляет код, все необходимые шаги выполняются автоматически. Если программное обеспечение проходит все тесты, оно внедряется в производство. Если нет, код дает сбой, и разработчики немедленно уведомляются, чтобы они могли проверить неудачную сборку. Преимущество этого подхода в том, что разработчики могут больше сосредоточиться на написании кода, а не на других процессах.

Версии программного обеспечения:

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

Среды разработки программного обеспечения:

Код, написанный разработчиком для новых изменений, никогда не пойдет в производство напрямую. Он проходит через различные среды, такие как:
1. Разработка
2. Тестирование
3. Подготовка
4. Производство.

На приведенной выше диаграмме поясняются среды разработки программного обеспечения.

Обзор:

  1. Этапы DevOps:
    - Непрерывная интеграция: планирование, кодирование, сборка и тестирование
    - Непрерывное развертывание: выпуск, развертывание, эксплуатация и мониторинг
  2. Принципы DevOps:
     — Сотрудничество, ориентация на клиента, постоянное совершенствование и автоматизация.
  3. Версии программного обеспечения:
    - Majot.Minor.Patch: изменения архитектуры.добавление новых функций.исправление ошибок
  4. Среды разработки:
     – разработка, тестирование, подготовка и производство.

Спасибо.