Инструменты Ci/Cd: Gitlab Ci

На рынке доступно множество инструментов непрерывной интеграции и непрерывного развертывания.

Эти инструменты играют ведущую роль в координации и автоматизации работы на различных этапах конвейера CI/CD. Мы поговорили с Александром Довнарем, ведущим DevOps в Naviteq, и узнали, как безопасность проекта связана с выбором инструмента CI/CD. Мы подробно остановились на том, что такое GitLab CI, кому он подходит и почему его стоит использовать.



Инструменты CI/CD: GitLab CI



Внедрение CI/CD

CI/CD — Практика DevOps, подразумевающая непрерывную интеграцию и доставку.

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

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

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

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

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

Реализация должна идти от простого к сложному.

Начните с CI: соберите и протестируйте проект, попробуйте развернуть с помощью кнопки.

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

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

В то же время простого внедрения CI/CD недостаточно; его все еще нужно поддерживать.

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

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

Давайте подведем итоги : Внедрение CI/CD — дело долгое, дорогое и сложное, но в долгосрочной перспективе оно помогает сэкономить ресурсы, время и деньги.

Если наши процессы автоматизированы, мы можем легко и плавно масштабироваться.

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



Безопасность и выбор инструмента CI/CD

Безопасность CI/CD во многом зависит от того, какие инструменты мы используем.

Есть много историй, когда код, который должен быть конфиденциальным, был частично утек.

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

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

Скажем, если у вас есть правило, что какая-то часть инфраструктуры должна быть доступна только изнутри, вам нужно это учитывать.

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

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

повреждать.



Инструменты CI/CD

Основой набора инструментов CI/CD является сервис или приложение, в котором вы реализуете CI/CD. Это то, что позволяет вам запускать Jenkins, Gitlab CI, GitHub Actions и этот список можно продолжать.

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

Каждый инструмент имеет спецификацию того, что он может делать и как он это может делать.

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

Например, мы можем добавить SonarQube для проверки тестового покрытия конвейера, Docker для создания образа Docker и т. д. Это разные большие и маленькие инструменты — а не CI/CD в чистом виде.

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



Почему стоит выбрать GitLab CI в качестве инструмента CI/CD

GitLab CI был одним из первых, кто начал двигаться в направлении «все в одном».

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

Благодаря своей стабильности, относительной свободе и сильной поддержке сообщества GitLab CI стал одним из основных игроков на рынке.

Он претерпел множество изменений и улучшений и прямо сейчас позволяет:

  • управлять конфигурациями с помощью файла YAML;
  • легко распараллелить запуски и запустить в совершенно разных средах;
  • собирать и выполнять команды на любой ОС;
  • запускать задачи в контейнерных средах Docker;
  • интеграция с кластерами Kubernetes.
GitLab CI выбирают как небольшие стартапы, так и крупные корпоративные компании.

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

Для тех, кто хочет разобраться в GitLab CI 20 июня стартует продвинутый курс в Слёрме» CI/CD на примере Gitlab CI «Вы научитесь применять принципы CI/CD и работать с GitLab CI: поймете лучшие практики построения конвейера, особенности шаблонизации и работы с переменными.

Посмотреть программу и записаться: https://slurm.club/3xoZLo4 Теги: #git #программирование #Системное администрирование #DevOps #ci/cd #gitlab #gitlab ci #pipeline #jenkins #Github Actions #непрерывная интеграция #непрерывное развертывание

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.