Рубрики
Uncategorized

Искусство программного обеспечения для доставки и мониторинга со скоростью и уверенностью

Команды программного обеспечения при повышении давления к коду доставки быстрее, чем когда-либо прежде, но без Ri … Теги с DevOps, развертываемыми, Дженкинс, осьминог.

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

Инструменты, которые мы будем использовать в современном примере, включают Дженкинс , Осьминог и Райгун Отказ Все они доступны на бесплатной пробной версии, чтобы вы могли следовать.

(Мы сотрудничаем с осьминогом, чтобы доставить живую демонстрацию всего процесса — Вы можете посмотреть запись здесь ) Отказ

Управление жизненным циклом приложения (ALM)

Мощность использования этих инструментов в сочетании друг с другом приносит доверие к вашим развертыванию, давая вам время сосредоточиться на том, что имеет значение … Доставка отличного программного обеспечения для ваших клиентов Отказ

Прежде чем мы прыгаем в технические, давайте посмотрим на Управление жизненным циклом приложения (ALM) Процесс и посмотрите, где осьминог и Райгун вписываются в эту картину.

Осьминог живет внутри Выпуск , Развертывание и Действовать Этапы этого жизненного цикла, дающие вам возможность надежно освободить программное обеспечение масштабируемым образом. Как только ваш сайт или приложение достигнет этапа работы, Raygun может продолжать этот поток прямо до Монитор и Планирование этапы.

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

Инструмент

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

Jenkins.

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

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

Осьминог

Осьминог — это автоматизированное инструмент управления развертыванием и релизами для управления выпусками, автоматизации сложных развертываний приложений и автоматизации рутинных и аварийных операций.

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

Вы можете увидеть пример приложения Осьминога на samples.octopus.app/ Отказ

Лучевая пушка

Raygun — это Software Monitoring Suite, который дает вам видимость, как пользователи действительно испытывают ваше программное обеспечение. Он предназначен для предоставления вам действий данных, необходимых для поиска и исправления проблем программного обеспечения и проблемы с производительностью для ваших конечных пользователей.

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

Развертывание, мониторинг и идентификация проблемного развертывания

Теперь, когда мы обнаружили инструменты, мы собираемся использовать, отпустите в веселые вещи!

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

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

Здоровый сайт

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

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

Добавление ошибок

На этом сайте я добавил errors.js Сценарий и набор enableesrors; — Это будет служить нашей обезьяной хаос, вызывая брошенные ошибки, когда пользователь заполняет форму регистрации. Это означает подражать нам случайно внедрять ошибки в производство.

Используя Git, я совершил эти изменения и подтолкнул до нашего репозитория Git, это будет подхвачено нашим CI/CD-трубопроводом на следующем этапе.

Jenkins.

После того, как наши изменения были подтолкнуты, Jenkins автоматически вызывает для нас сборку. Это делается с использованием функции Jenkins «Pollar SCM» и связывая это к нашему репозиторию GitHUB. Это выполнит проверку каждые 60 секунд, ищет любые изменения, и если они найдут, он забивает нашу начальную работу «01_RAYGUN_CI».

Цель этой работы — взять наши Мастер Филиал, устанавливайте любые зависимости, запустите нашу задачу Runner (Grunt), затем генерируйте пакет Nuget для нас, чтобы развернуть использование сгенерированных файлов распространения.

После того, как работа «01_RAYGUN_CI» будет завершено, это будет выпущена ниже по течению проектов, которые были установлены для развертывания построенного пакета в среду DEV «02_raygun_deployTodev», тестовая среда «03_raygun_deploytotest», а затем на нашу производственную среду «04_raygun_deploytoprod».

Осьминог

Когда Дженкинс запускает наш 03_RAYGUN_DEPLOYTOTEST и 04_RAYGUN_DEPLOYTOPROD, это приведет к регистрации двух развертываний внутри осьминога под конкретным номером сборки. Эти ноги на пост-сборное действие, которое затем развернут этот пакет на нашем Azure Server.

Для каждого развертывания у нас есть процесс 3 шага:

Шаг 1: Ручное вмешательство

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

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

Шаг 2: Развернуть сайт

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

Шаг 3: Регистрация развертывания

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

Для достижения этого нам просто нужно выполнить простой сценарий PowerShell, который заполнит нашу полезную нагрузку с некоторыми переменными Octopus; Как номер сборки, информация о пользователе и любые комментарии развертывания, затем опубликуйте это в наши развертывания конечную точку, эффективное время отметки нашего развертывания.

Дополнительная информация о том, как установить это, можно найти в нашем Документация развертывания И вы можете увидеть и установить Raygun Регистрация Развертывание Осьминоги Сообщество Шаг В вашем экземпляре осьминога.

Столкнуться с проблемами

Теперь, когда ошибки, которые мы представили, были выпущены на производство, мы можем пересмотреть наш демонстрационный сайт и попробовать завершить процесс регистрации.

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

Выявление вопросов и плохих развертываний с использованием Raygun

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

Глядя на Raygun Crash Reporting Приборная панель мы видим, что в ошибках произошло развертывание в об ошибках.

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

Наша последняя версия сборки представила 3 новых ошибки.

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

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

Наша последняя версия сборки сделала вещи медленнее.

Разрешение вопросов

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

Мы довольно уверены, что мы решили ошибки, захваченные Raygun, но часто иногда бывают на 100%. Здесь наша «разрешена в версии» статус пригодится. Разрешение этих ошибок и установка версии сборки, чтобы соответствовать нашему последнему развертыванию, дает нам душевное спокойствие, что если эти ошибки возникают после того, как это вышло, мы еще раз уведомлены.

Роллинг вперед против возвращения назад

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

Откатываясь назад не масштабируется в системах, у которых есть слой данных, который имеет практически все приложения так или иначе. В этом подходе у вас, вероятно, у вас, вероятно, около 1-2 минут, во время которого вы можете откатиться, и не много ошибок, если таковые имеются, попадают в производство в этом временном кадре, и если вы прошли этот момент, это точка нет Вернитесь к этому выпуску. Ваш единственный вариант состоит в том, чтобы перевернуться с новой версией, которая содержит исправление ошибки, что влияет на ваши производственные системы, которые вы смотрите на значительный объем потери данных.

Один подход, чтобы помочь смягчить эти проблемы — сине-зеленые развертывания Отказ Развертывание Blue-Gree — это шаблон, в результате чего мы сокращаем время простоя во время развертывания производства, имея две производственные среды («синий» и «зеленый»). Вы можете развернуть разные выпуски в различные среды и проверить это, прежде чем переключить их на уровне балансировки нагрузки.

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

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

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

Упаковка

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

Ресурсы упомянуты

Живая запись

Ссылка на сайт

Сообщения в блоге

Внутренний взгляд на рабочий процесс Raygun’s CI/CD

Документация

Осьминога Документация Raygun Документация

Видео

Осьминог Райгун

Инструмент

Бесплатное стартовое издание для сервера Octopus 14-дневная бесплатная площадка Raygun Platform

Предыдущие записи вебинара и предстоящие вебинары

Осьминог Лучевая пушка

Образцы

Оригинал: «https://dev.to/raygun/the-art-of-shipping-and-monitoring-software-with-speed-and-confidence-4b8j»