CI/CD (4 часть серии)
В последние годы это был один из модных слов вокруг офисов развития, и все хотят, чтобы все ходят цепь эффективности, генерирующего DevOps, но каковы преимущества этого, и как вы начинаете? Это не так сложно, как может показаться, но теперь может всегда доставлять обещанные сбережения как можно быстрее.
Проще говоря, постоянная интеграция — это регулярное потянув вместе с потоками развития, поэтому ветки не всегда в миль впереди или позади, с идеей о том, что должно быть меньше конфликтов при выполнении запросов слияния или пересадки перед одной. Непрерывное развертывание — это как это звучит, получая код там как можно скорее после интеграции. Звучит опасно, но это не должно быть, если вы делаете правильно.
Я должен предостередить это, заявив, что непрерывное развертывание не всегда о том, чтобы идти в изготовление, как только интеграция завершена (хотя это происходит в некоторых местах), но вообще о том, чтобы получить его в тестовой или постановке к окружающей среде, чтобы быть проверенным до перехода на производство Отказ Те места, где выпуски идут прямо к производству, имеют высокое покрытие кода% с их модульными тестами и иметь полный набор тестов интеграции для выполнения после развертывания. Не везде имеет эту роскошь, именно поэтому есть временная среда для развертывания. Непрерывное развертывание для производства также наиболее распространено в местах с архитектурой микросервиса на месте, где изменения обычно являются небольшими и невысокими. И где любые перерывов будут работать вместе с более старой версией, чтобы обеспечить потребление времени для обновления.
Непрерывная интеграция в нескольких местах охватывается в ряде мест, но я обнаружил, что звезды пытаются с трубопроводом, чтобы запустить любые тесты единиц как часть запроса слияния, чтобы гарантировать, что нет никаких выгодных тестов в рамках всего хорошего места Начните. Простой трубопровод для запуска узловных испытаний (у вас есть единичные тесты, верно?) Как часть запроса слияния, или сразу же, как в худшем случае, позволит обнаруживать проблемы, прежде чем они станут производственными вопросами. Опять же, это зависит от хорошего освещения кода для тестов, которые будут эффективными. Затем сбои могут уведомить разработчиков по электронной почте, слабым или другим предпочтительным методам связи любых сбоев, и они могут решить проблему, когда она свежена в своих головах, а не в день или недель вниз по линии. Экономия времени для исправления проблем со свежими рабочими знаниями над тем, что он займет после выходных, праздничных или других спринте, где они работают, являются быстрой реализацией.
На задней панели модульных тестов тесты интеграции могут работать, если они существуют, и выделите любые проблемы с интерфейсом; Опять предупреждая о любых проблемах, если есть какие-либо. Если они могут работать параллельно через браузеры, устройства, платформы и т. Д., Тогда ночная сборка может быть сбита до нескольких раз в день, что позволяет быстрее обратной связи на разработке и заточенность на желаемое решение для клиента быстрее.
Непрерывная доставка — это то, где я обнаружил много времени, сохраняющуюся через мои последние циклы развития и тестирования. Я стал разработчиком в нетехнической среде, где развертывание к производству и других средах осуществляется по FTP. Компания представляет собой фирму электронной коммерции, которая исторически использовала внешние агентства для развития, но были лимусят по временам оборона, образуют небольшие произведения работы из-за других рабочих давлений агентства. Изменения могут быть развернуты как только файлы, которые были обновлены, которые требуют навигации по нескольким каталогам и выбрав несколько файлов. Это занимает несколько минут как минимум, как минимум, как минимум как минимум 2 минуты, но у меня было около 10 минут из-за изменений этого выпуска. Поскольку есть тестовая и производственная среда, это 20 минут для выпуска.
Используя непрерывное развертывание в тестовую среду, я смог удалить это в среднюю 1 минуту, 20 секунд. Все, что он делает, это SSH на сервере, перейдите к местоположению файла и вытяните обновления от Git. 86,6% экономятся на экстремальных концах масштаба, а у 33% экономии на нижнем конце, безусловно, стоит того. Мне потребовалось около 4 часов, чтобы настроить скрипт и утюгнуть нюансы безразмерной документации, чтобы получить это и запустить. Если я в среднем сберегающуюся 1 минуту на выпуск, мне придется выполнять 240 релизов, чтобы получить реализацию с сохранением времени из одной среды. При добавлении к производству есть как минимум 2 выброса за изменения, поэтому 120 изменений или исправления. Не очень много, и нет забывающих о одном файле, который вызывает неудачу, так как это в контроле источника.
Как я реализовал, это тема для другого поста, но если сбережения реальны для нетехнологичных фирм, то они потенциально массивны для развития агентств любого размера. И как только у вас есть один и работает, настраивая другие, становится быстрее, и, следовательно, так, как и roi.
Эта статья была первоначально опубликована в моем блоге на https://www.garybell.co.uk/a-late-intRoduction-To-coneurebureured-integration-and-deployment/ 5 июня 2019 года
CI/CD (4 часть серии)
Оригинал: «https://dev.to/_garybell/a-late-introduction-to-continuous-integration-and-deployment-4k6a»