Что может сделать развертывание на производство страшным? Возможно, это ваш первый раз, пройдя через процесс. Или вы развернете в службу с высоким пользовательским трафиком. Или ваш запрос на притяжение вносит потенциально рискованные изменения. Проверьте , Проверьте , Проверьте — Эти сценарии применялись к моему первому крупному развертыванию. Меня также сбили Хаос обезьяна Во время него (больше информации о chaos Engineering ).
Во время моего первого крупного развертывания в производстве все шло сбором, но из опыта я узнал, как проводить лучшие развертывания и получить более сильное понимание того, что и как контролировать.
Ваш API или Frontend Service на Localhost: 8080/3000 Невозможно получить доступ к другим, если они пойдут на этот URL -адрес с своего компьютера. Это живет на вашем компьютере и может быть доступен только вами.
Вообще говоря, развертывание — это процесс получения вашей местной среды разработки и общедоступного ее на удаленном хосте, что позволяет другим пользователям с URL -адресом доступа к вашему приложению. Процесс развертывания непрерывен; Когда вы делаете обновления в своем приложении локально, вы используете новый код, чтобы сделать его общедоступным.
Процессы развертывания различаются.
Я развернул свою школу Flatiron School Ruby на Rails, React Окончательный проект Героку с несколькими терминальными командами.
На работе мои развертывания представляют собой многоэтапный процесс, в котором я выпускаю новый код поэтапно и в разных средах, в отличие от сразу же выпустить его до производства. Среды/шаги:
- Постановка : Среда песочницы, которая почти идентична производству. На этом этапе новый код тестируется и контролируется, чтобы гарантировать, что все работает в гармонии в рамках производственной среды.
- Канарский : Единый производственный узел. На этом этапе новый код выпускается на небольшой процент реальных пользователей и контролируется на предмет любых проблем, которые, возможно, не были пойманы ранее.
- Больше подмножеств производства : На этом этапе новый код выпускается для большего количества производственных узлов, но еще не все производства. А также (Как вы уже догадались) это контролируется , контролируется , контролируется прежде чем выпустить 100% производства.
- Производство 🎉
Многоэтапный процесс великолепен, потому что это серия ворот, чтобы поймать какие-либо ошибки, прежде чем новый код будет помещен перед пользователями. Однако развертывание не работает самостоятельно. На каждом этапе инженеры одобряют, если новый код переходит на следующий, поэтому успех процесса развертывания, подобного этому, зависит от понимания того, как контролировать и следить за лучшими практиками.
Из моего первого крупного развертывания, которое прошло неловко, я узнал ключевые вещи, которые можно практиковать в будущих развертываниях. Вот мой совет, который, надеюсь, можно применить к вашему процессу.
(1) Пусть новый код «выпекать» дольше на каждом этапе развертывания
На работе команды определяют, как долго вы должны ждать постановки, канарейки и т. Д., Прежде чем перейти к следующему шагу. Мы называем этот период ожидания «выпечкой», в котором вы видите, проявляются ли какие -либо ошибки и/или тревоги, которые будут отключены новыми изменениями, которые вы ввели в приложение. После того, как вы ждали период выпечки и убедились, что все в порядке, вы можете перейти к следующему этапу развертывания. Мне нравится ждать дополнительных 10-15 минут на каждом шаге для дополнительного мониторинга и QAING, чтобы убедиться, что я уверен, что новые изменения безопасны для развертывания до производства.
(2) Контролировать, контролировать, контролировать, а затем контролировать еще
Успешное развертывание зависит от тщательного мониторинга, и оно начинается с понимания того, как код, который вы собираетесь развернуть, взаимодействует с остальной частью приложения, и какие ошибки/проблемы вы хотите быть в поисках. Кроме того, важно освоиться с инструментами мониторинга вашей команды и понимать, какую цель они служат. Например, инструменты, которые я использую во время развертывания, делятся на два режима расследования: что -то сломано? Как это сломано? Для первого я обращаюсь к Графане для общего обзора картины о том, является ли система здоровой, и изменяется на ключевую статистику (т.е. количество ответов 5xx). Для изучения того, как что -то сломано, я использую Kibana для изучения отдельных журналов и выполняю запросы (т.е. фильтрация журналов по тому, классифицируются ли они как предупреждение, ошибку или критическое), чтобы отслеживать, где в заявлении возникает проблема.
(3) Активно общаться с товарищами по команде, когда возникает проблема Видеть, как ваше развертывание продолжается 🔥 может быть страшным, но все прошли/пройдут проблемное развертывание. Предветите свою команду, если что -то пойдет не так, и включите любую полезную информацию в сообщение, например, ссылки на графики или журналы, которые показывают, в чем/где проблема. Получите подтверждение, что делать дальше, если вы не уверены — сделайте паузу вашего развертывания? откат? Приложение принадлежит команде, и каждый разделяет ответственность за то, чтобы сохранить его здоровым и бегущим.
Все может произойти во время развертывания — связанных или не связанных с вашим изменением кода, поэтому я нахожу процесс пугающим. Но научиться сделать процесс развертывания само по себе, что гарантия заставило меня чувствовать себя более оборудованным для успешного проведения развертывания.
Оригинал: «https://dev.to/scarlettperry/deploying-to-production-101-deploying-safely-and-putting-out-fires-92j»