Рубрики
Uncategorized

Путешествие через DevOps — Часть 1: Мир без DevOps

2020 апреля 2020 года. Я только что начал регулярно кодировать в Python. Построен Toxic Tweet Classier с использованием LSTM … Помечено DevOps, Docker, CICD, Облако.

Путешествие через DevOps (3 часть серии)

2020 апреля 2020 года. Я только что начал регулярно кодировать в Python. Построен Toxic Tweet Classier с использованием моделей LSTM. Модель не была впечатляющей любым стандартом, но в течение всего процесса я был введен в то, что изменило бы так, как я полностью смотрю на разработку программного обеспечения. Это было, Облако Отказ

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

Быстро вперед через несколько месяцев. 2020 августа. Я экспериментировал со случайными инструментами NLP и проверил чатбот, используя Раза Отказ Из-за этого незначительного опыта я был связан с другом в НПО, Weunlearn который предложил построить четкости для предоставления гендерного, контента секса и психического здоровья. Само собой разумеется, я подписался на помощь. Потому что для меня чатбент просто означал кучу данных тренировки NLU и разговоров.

После базового бортового на борту стало быстро очевидно, что я был горепло подготовлен и подготовлен, потому что мы скоро у нас были бот, но куда это пойдет?

Вскоре НПО получила кредиты в AWS через Activate Program. Теперь была моя ответственность, чтобы поставить их в хорошее использование.

И я сделал. Просто в неуклюже, случайном и непрофессиональном порядке.

В первой итерации четбота технически мы столкнулись с большим количеством осложнений, которые я чувствую, требую документации. Я считаю, что мы должны делиться нашими историями не так простыми технологическими учебными пособиями или руководствами, но и в качестве путешествий, потому что она является частью того, что отделяет нас от машин, которые мы так страстно работали. Далее следует ошибки, глюки и плохое планирование решений, что только как программное обеспечение Noob.

1. Github Chaos

Начнем с обратного хронологического порядка икота. Git — это система управления версией (VCS). GitHub — это облачный сервис, который позволяет размещать ваши репозитории Git. GitHub (или любой VCS) позволяет легко сотрудничать и управлять кодом по всей команде. Технологическая команда в НПО была 2 человека, включая меня, и мы выбрали GitHub, чтобы сохранить репо.

1.1 Первая ошибка — Двоины в Github

GitHub — это место для хранения файлов кода. Не двоичные файлы. Не понимая этого, мы сохранили модели RASA NLP в REPO GitHub. Который был в порядке до дня развертывания. Несколько последней минуты увеличивается в данных обучения NLP, выдвинули модель выше предела файла GitHub. 2 часа до развертывания и первого сообщения.

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

1,2 секунды — GIT-LFS

Само собой разумеется, как полный новичок, о котором я не знал о том, как работает GIT-LFS. Я решил использовать его в жаре момента. Git-LFS работает за счет замены содержимого файла указателем. Если одна из систем с использованием REPO не имеет GIT-LFS, все это сломается. И это сделало.

Я остался с несколькими докерфатами без линий, связанных с докером, а указателем на объект GIT LFS, который мы не смогли достичь. Что случилось после того, как это самое лучшее, но нам удалось скрывать код с локальной машины к ВМ.

Уроки :

  • Всегда учитесь использовать VCS. Двоины не ходят в Github. Используйте службы хранения, такие как S3 (свободный уровень) или хранилище облака Google (предоставляет 300 $ стартового кредита для новой регистрации). Если вы хотите использовать инструмент, понять последствия, прежде чем идти вперед.

  • Не экспериментируйте в день развертывания

2. Развертывание несущественно

У меня были обильные кредиты в AWS и справедливые знания докера. Поэтому мы решили использовать простой экземпляр EC2 для размещения приложения.

RASA предоставляет минимальные системные требования для запуска своих ботов, и мы придерживались этого. Однако мы не были уверены в том, что делать в случаях перегрузки. Хотя мы проверены только с несколькими пользователями, неопытность получила лучшее из нас.

Стратегия отказа отказа: для загрузки кода в другую виртуальную машину (в остановке) и дождитесь выполнения приложения, чтобы мы могли вручную запустить экземпляр резервного копирования.

Тем не менее, я не установил систему мониторинга, чтобы предупредить кого-либо за неудачи. Что по существу означало, что у нас не было никакого способа узнать, если это не удалось. Он также означал, что любые изменения в учебных данных потребуются вручную обновление нескольких экземпляров и проверки их.

Уроки :

  • Тестирование нагрузки является важным инструментом в вашем арсенале к6. в JavaScript или сапуль В Python являются замечательными инструментами.

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

3. CI/CD.

Непрерывная интеграция/непрерывная доставка является одной из наиболее важных практик, которые разработчик понадобится, поскольку они движутся от просто кодирования в разработку приложений. Разработка приложений не всегда означает облако и даже если у вас нет доступа к облачным ресурсам, CI/CD — это то, что должно быть частью вашего повседневного развития.

Непрерывная интеграция означает любые изменения, которые вы делаете в нашем коде, легко добавляются в исходный код или его двоичные файлы. Например, если ваше приложение выполняется как двоичный, то каждый раз, когда вы обновляете код, последний бинарный должен быть построен самостоятельно. Это позволяет сосредоточиться на кодовой части этого, чем создание версий двоичных файлов. GIT использует ветви к коду версию, любое обновление в ветве ветки может построить стабильный двоичный файл, тогда как в ветке разработки двоичный, может быть, помечен «последним». Позволяя облегчить понимание изменений и версий кода.

Непрерывная доставка принимает обновленные артефакты (двоичные файлы, документы, документы) и обновление серверов приложений без ручного вмешательства. Допустим, вы используете Docker Images в вашем приложении. Каждый толчок в главной ветви должен вызвать рабочий процесс CI, который создает образ на доке и надежно сохраняет его. Рабочий процесс CD заменит устаревший образ докера в приложение и перезагрузите приложение с новым.

Все сделано автоматически.

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

Уроки :

  • Даже самые маленькие из применения преимуществ от практики CI/CD.

  • Это помогает облегчить рабочую нагрузку, автоматизируя большую часть этого

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

История, однако, имеет счастливый конец. Следите за путешествием через DevOps — часть 2: пробуждение.

Путешествие через DevOps (3 часть серии)

Оригинал: «https://dev.to/thundersparkf/journey-through-devops-part-1-world-without-devops-3g92»