Рубрики
Uncategorized

DevOps 101: CI/CD

Когда вы новичок в отрасли, вы сталкиваетесь с множеством новых концепций. Это может сделать это действительно трудным … Tagged с DevOps, CICD, новички.

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

Сегодня я сломаю CI/CD.

Что это вообще означает?

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

Что означает непрерывная интеграция?

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

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

Хорошо, в чем разница между непрерывной доставкой и непрерывным развертыванием?

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

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

Подождите, так что такое CI/CD? Что это меня заводит? Идти на высоком уровне.

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

Реализация практик CI/CD дает вам более быстрый, более надежный цикл выпуска. Вы можете добавить новые функции или исправления ошибок, более быстрее, так как вы знаете, что ваши инженеры работают из самого последнего источника, вы знаете, что есть модульные и интеграционные тесты, и вы знаете, что он строит. Для инженеров или качества или качества, где бы вы ни имели управлять качественными воротами; Вместо этого кто -то выталкивает код или открывает запрос на вытяжение, и эти шаги выполняются с помощью вашего CI/CD Tooling.

Как это на самом деле работает?

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

Вы устанавливаете что -то в качестве триггера, например, сказав ему наблюдать за хранилищем вашего источника для коммита или слияния. Затем вы настраиваете серию шагов, каждый из которых с условиями прохождения/сбоя, например, рассказывать о том, как запустить свои модульные тесты, сборка, Сканирование на уязвимости , или развернуть ваше приложение. С достаточно подробным трубопроводом CI/CD вам не нужно ничего делать, кроме как писать код и толкать его — система обрабатывает все остальное для вас. Это великолепно.

Слово, звучит фантастически, подпишите меня.

Если вы уже используете некоторые инструменты JFROG, такие как Artifactory или рентген, имеет смысл оставаться в той же экосистеме и попробовать трубопроводы. Таким образом, все доступно от одного пользовательского интерфейса. Pipelines интегрируется с большинством других инструментов DevOps и направляет тонну действий назначать, поэтому он сводит к минимуму возможность в конечном итоге инфраструктурной версией монстра Франкенштейна. Конфигурация — это просто yaml. Если вы хотите попробовать трубопроводы, наряду с артефакторией и рентгеновским языком, есть облачный, принадлежащий облаку Судебный процесс здесь Анкет

Для решений Freemium (бесплатное использование ограничено, но, как правило, хорошо для личных проектов или мелких вещей), мне очень нравятся Circleci и Travisci. Оба являются облачными решениями с большим количеством встроенных интеграций, оба довольно просты в настройке, и оба имеют поддержку широкого спектра популярных языков программирования. Существуют разные ограничения в том, что вы можете использовать в качестве среды управления версиями и создания.

Подводя это так, как будто вы пишете эссе в старшей школе.

В заключение, CI/CD — это комбинация методологии и инструментов с целью повышения вашей скорости и эффективности как разработчика путем автоматизации таких задач, как строительство, тестирование и развертывание, чтобы вы могли делать все эти вещи чаще. Преимущество для вас — более частые выпуски программного обеспечения, более ранние обнаружения ошибок и плохие выбросы, которые добираются до производства реже. Существует несколько инструментов, которые помогут вам достичь этой цели: от инструментов Freemium, таких как Travisci или Circleci до инструментов для предприятия с дополнительными функциями, такими как трубопроводы JFrog.

Я надеюсь, что помог вам понять, что такое CI/CD и что он для вас делает. Если вы все еще в замешательстве, это тоже нормально — это может быть своего рода «большой» проблемой, и некоторые из них все еще в изменении. Не стесняйтесь связываться с комментариями или в Twitter в @Dixie3flatline Если у вас есть больше вопросов. Оставайтесь с нами для следующей статьи в этой серии, и дайте мне знать, если у вас есть запрос!

Оригинал: «https://dev.to/jfrog/devops-101-ci-cd-49il»