Странно найти место, в котором нет какой -то непрерывной интеграции/непрерывной настройки конвейера. Использование CI/CD является одним из способов, которым предприятия могут быстрее реагировать на пользователей, и разработчики могут чаще выдвигать новые выпуски с более высокой уверенностью. Непрерывная интеграция заключается в том, чтобы объединить код из разных ветвей вместе и убедиться, что база кода все еще работает. Здесь будут проходить ваши сборки.
Непрерывная доставка — это то, как ваша база кода отправляется в разные среды, такие как QA или производство. Благодаря непрерывной интеграции настройка непрерывной доставки ожидается в отраслевых стандартах. Редко, что вы увидите, как они разделены, но в некоторых местах есть ручное развертывание по своим причинам. С помощью CI/CD вам не нужно беспокоиться о ручном развертывании, потому что они позволяют вам автоматизировать все.
Когда ваша команда закончит сменами кода, все их филиалы будут готовы к объединению в разработку или в какой -то другой филиал, который вы используете. Как только вы получите все утверждения запросов на притяжение, вы можете сразу запустить свой трубопровод CI/CD, и вам не придется касаться другой вещи, если не возникнет проблема. Часть непрерывной интеграции трубопровода создаст артефакт сборки, который будет отправлен в непрерывную часть доставки трубопровода, которая затем опубликует артефакт в выбранной среде.
Это общий способ, которым вы увидите внедренные конвейеры CI/CD. Есть много деталей, которые входят в создание этих трубопроводов, что означает, что не каждый трубопровод равен. Вы можете выполнять одну и ту же работу по многочисленным способам, а некоторые, естественно, будут лучше, чем другие. Там являются Определенные атрибуты, которые вы хотите, чтобы ваш конвейер CI/CD имел, потому что он улучшит качество ваших выпусков и даст вам, а также деловую сторону, уверенность в том, чтобы чаще выпускать изменения пользователям. Вот несколько атрибутов хорошего трубопровода CI/CD.
Это быстро
Трубопровод CI/CD может иметь много движущихся частей. Есть модульные тестирование, тестирование интеграции, создание его строительства артефакта и многое другое. Для вашего кода не должно потребоваться весь день, чтобы пройти через трубопровод. Наличие быстрого трубопровода означает, что вы можете вписать больше развертывания в свой день, и вы можете более эффективно искать проблемы с вашим кодом. Для вашей интеграции не должно потребоваться более нескольких минут, чтобы закончить или отправить вам отзывы о вашем коде.
Чтобы получить эту быструю обратную связь, мы обычно ставим любые модульные тесты или кодовые линии как можно ближе к началу трубопровода. Таким образом, если есть проблема с вашим кодом, вам не нужно ждать, пока большая часть трубопровода будет выполнена. Вы получаете автоматизированное сообщение, которое сообщит вам об удалении сборки или что -то подобное, и вы можете проверить журналы непрерывной интеграции. Раскрыть проблемы — один из лучших способов улучшить скорость вашего трубопровода.
Он использует те же процессы и артефакты
После того, как непрерывная интеграция части вашего трубопровода генерирует этот новый артефакт сборки для вас, пришло время позволить непрерывной части доставки вступить во владение. Артефакт, который вы получаете от сборки, может быть исходным кодом или даже контейнером Docker. Независимо от формата вашего артефакта, вы должны использовать этот же артефакт во всех ваших средах. Используя один и тот же артефакт во всех средах, вы можете проверить свой код в QA или на этапе и развернуть его для производства с большей уверенностью, что он будет работать, потому что это тот же самый артефакт, с которым вы использовали.
Моя любимая часть непрерывной доставки заключается в том, что он сохраняет процесс для развертывания. Нет ключевого человека, которого вам нужно делать, потому что нет секретных или ручных шагов. Вы можете написать скрипт, чтобы перемещать артефакт в нужное место в облаке или на вашем сервере, и он будет выполняться одинаково каждый раз. Это спасает вас от боли запоминания всех шагов, которые вам необходимы, чтобы пройти, чтобы развернуть, и это снимает большую часть потенциальной человеческой ошибки.
Вы можете доставить любую версию кода в любое время
Если вам когда -либо приходилось развернуть серьезные изменения в пятницу днем, вы можете оценить это. Пока у вас есть артефакт, вы можете развернуть его. Принимайте осторожность, если произошли какие -либо изменения данных между версиями артефакта. Основные проблемы появляются, когда вы ссылаетесь на более старую или более новую модель базы данных. В большинстве случаев вы будете хранить только два или три артефакта под рукой, но вы всегда можете создать новую сборку предыдущей версии кода.
Так что, если у вас есть некоторые странные проблемы развертывания в пятницу вечером, а деловая сторона вызовет вас в панике, вы можете с уверенностью сказать им, что вы вернете изменения и изучите проблему в понедельник. Наличие этой возможности даст всем возможность развернуть изменения без многих забот, потому что, если есть проблема, они могут развернуть последнюю рабочую версию.
Есть мало ручного взаимодействия
Автоматизация делает непрерывную интеграцию и развертывание достопримечательно. Это может занять некоторое время, чтобы построить хороший трубопровод, но это одна из самых важных вещей, за которыми стоит наблюдать. Никто не должен делать более одного или двух ручных шагов, например, нажать кнопку. Как только разработчик подталкивает коммит, и их запрос на привлечение будет одобрен, изменения должны развернуться самостоятельно. Нет других шагов. Вы совершаете свой код, он одобряется, а остальное сделано для вас.
Цель CI/CD — дать деловой стороне контроль, когда функции выпускаются без необходимости пройти через команду разработчиков. Вы действительно хотите, чтобы они запомнили процесс развертывания? Можете ли вы даже вспомнить процесс развертывания и делать это абсолютно без ошибок каждый раз, когда они вас спрашивают? У большинства из нас есть история о том, когда мы испортили развертывание, и это обычно потому, что мы что -то забыли. Хороший трубопровод CI/CD позаботится о том, чтобы вам не придется беспокоиться о том, чтобы что -то забыть, потому что у него есть все, что нужно автоматически.
Создание хорошего трубопровода CI/CD стоит усилий из -за того, сколько времени и ругательства это экономит вас. Вам не придется охотиться на ошибки в производстве, потому что вы уже нашли их в QA, поэтому вы просто создаете новый артефакт с исправлениями. Это может занять большое давление от разработчиков, но мне интересно, добавляет ли это. Вы когда -нибудь чувствовали, что вас подталкивают, чтобы сделать больше за более короткое время с тех пор, как из -за CI/CD?
Привет! Вы должны следить за мной в Твиттере, потому что причины: https://twitter.com/flippuptcoding
Оригинал: «https://dev.to/flippedcoding/4-attributes-of-a-good-ci-cd-pipeline-2hf4»