MLOps — операции машинного обучения
1. Введение в DevOps
Чего ждать??!? В заголовке написано MLOps, но похоже, что статья посвящена DevOps..! Да, это потому, что DevOps и MLOps взаимосвязаны. Эта статья помогает понять некоторые предпосылки MLOps.
Скажем, для разработки продукта или добавления новой функции команда разработчиков создает код, который тестируется группой тестирования, развертывается и поддерживается группой эксплуатации. Как вы можете видеть, есть несколько шагов и задействованы разные команды. При такой сложности разные вещи могут пойти не так.
Для любого добавления новой функции в существующее приложение последуют указанные выше основные шаги.
- Разработка: разработчики будут кодировать и тестировать функциональные возможности в локальных системах, после тестирования код будет перемещен в централизованные механизмы, такие как облачные платформы, для доступа пользователя.
- Пользователь пытается использовать эти функции, используя различные пользовательские интерфейсы, такие как смартфоны, вкладки, ноутбуки и т. д.
Проблемы с добавлением новых функций:
- Новые ошибки — валидация, проблемы совместимости устройств и т. д.
- Удовлетворенность пользователей / проблемы с принятием
- Стоимость или расходы
Любая добавленная функция должна быть тщательно протестирована, чтобы убедиться, что она не дает сбоев. В противном случае это повлияет на опыт конечного пользователя, доверие к продукту. Приложение также должно иметь возможность вернуться к предыдущей версии, если оно перестанет работать во время добавления новых изменений.
Чтобы преодолеть все эти проблемы, организации строго следуют практике DevOps в своей основе для развертывания новых функций и обновлений с нулевым временем простоя для конечных пользователей.
Определение. DevOps — это философия, направленная на улучшение сотрудничества между командой разработчиков (Dev) и группой эксплуатации (Ops), что приводит к созданию приложений более высокого качества.
DevOps в основном состоит из двух этапов:
1. Этап подготовки к производству
2. Этап производства.
- Этап подготовки к производству. На этапе подготовки к производству у нас есть 5 подзадач
: планирование, кодирование, сборка, тестирование и выпуск. - Стадия производства: у нас есть 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:
- Совместная работа.DevOps расширяет сотрудничество между различными командами, работающими над функцией. Команды разработки и эксплуатации работают вместе, постоянно обмениваются отзывами и общаются на протяжении всего цикла разработки. Поэтому создается качественная продукция
- Ориентированность на клиента.Команды постоянно собирают отзывы от конечных пользователей, чтобы сделать продукт лучше.
- Постоянное совершенствование. Благодаря быстрому развертыванию и постоянной обратной связи разработанное приложение постоянно совершенствуется.
- Автоматизация. Всякий раз, когда разработчик отправляет код, все необходимые шаги выполняются автоматически. Если программное обеспечение проходит все тесты, оно внедряется в производство. Если нет, код дает сбой, и разработчики немедленно уведомляются, чтобы они могли проверить неудачную сборку. Преимущество этого подхода в том, что разработчики могут больше сосредоточиться на написании кода, а не на других процессах.
Версии программного обеспечения:
Частота развертывания кода разработчиками увеличилась благодаря преимуществам DevOps, а благодаря постоянной обратной связи с конечными пользователями программное обеспечение постоянно совершенствуется. С каждым новым выпуском, исправлением ошибок или некоторыми изменениями в существующем коде новым выпускам присваивается уникальный номер. Этот процесс поддержки различных версий определенного программного обеспечения называется управлением версиями программного обеспечения.
Среды разработки программного обеспечения:
Код, написанный разработчиком для новых изменений, никогда не пойдет в производство напрямую. Он проходит через различные среды, такие как:
1. Разработка
2. Тестирование
3. Подготовка
4. Производство.
На приведенной выше диаграмме поясняются среды разработки программного обеспечения.
Обзор:
- Этапы DevOps:
- Непрерывная интеграция: планирование, кодирование, сборка и тестирование
- Непрерывное развертывание: выпуск, развертывание, эксплуатация и мониторинг - Принципы DevOps:
— Сотрудничество, ориентация на клиента, постоянное совершенствование и автоматизация. - Версии программного обеспечения:
- Majot.Minor.Patch: изменения архитектуры.добавление новых функций.исправление ошибок - Среды разработки:
– разработка, тестирование, подготовка и производство.
Спасибо.