CI/CD: от «у меня на компе работало» до автоматического деплоя
Опубликовано 14.11.2025
Простой гид для новичков: Jenkins → GitLab → GitHub → GitOps
Привет!
Ты только начинаешь путь в DevOps или уже устал слышать «а у нас CI/CD» на собеседованиях? Хочешь наконец понять, почему код, который работает у тебя на ноутбуке, падает на сервере?
Эта статья — твой первый шаг к автоматизации. И он действительно будет лёгким.
Разберём всё по полочкам, без перегруженных терминов и с примерами.
Что такое CI/CD (очень просто)
CI/CD — это когда ты нажимаешь
git push, а всё остальное происходит автоматически.
Разберём по частям:
| Аббревиатура | Что значит | Зачем нужно |
|---|---|---|
| CI (Continuous Integration) | Непрерывная интеграция | Чтобы код разных разработчиков не ломал друг друга |
| CD (Continuous Delivery / Deployment) | Непрерывная доставка | Чтобы обновления можно было выкатывать одной кнопкой — или вовсе без кнопки |
Пример из жизни
Ты с другом пишете сайт.
- Без CI: в пятницу пытаетесь слить код → сотни ошибок → минус выходные.
- С CI: каждый
git pushтриггерит тесты → ошибки видны сразу.
Инструменты: от «дедушки» до «модных»
Jenkins — «дедушка CI/CD»
Jenkins — как старый, но мощный промышленный станок. Можно сделать вообще всё, но придётся научиться с ним жить.
Как работает
- Устанавливаешь Jenkins на сервер
- Пишешь инструкции в
Jenkinsfile - Jenkins следит за Git и выполняет пайплайны
Плюсы
- Максимальная гибкость
- Тысячи плагинов
Минусы
- Поддержка, обновления и обслуживание — на тебе
- Интерфейс не менялся много лет
Для кого
Большие компании или проекты с историческим багажом.
GitLab CI/CD — «всё в одном»
GitLab — это не просто GitHub-замена. Это целый DevOps-комбайн: CI/CD, Registry, мониторинг, безопасность.
Как начать за 5 минут
- Создай репозиторий
- Добавь файл
.gitlab-ci.yml:
stages:
- test
- build
test:
stage: test
script:
- echo "Запускаю тесты..."
build:
stage: build
script:
- echo "Собираю Docker-образ..."
- Сделай
git push— и пайплайн запустится автоматически.
Плюсы
- Ничего не нужно разворачивать
- Всё в одной панели: код → сборка → контейнер → деплой
- Щедрые бесплатные минуты CI
Минусы
- Если команда уже на GitHub, будет сложно мигрировать
Для кого Команды, которым нужно всё из коробки.
GitHub Actions — CI/CD прямо в GitHub
У тебя код в GitHub? Значит CI/CD уже ждет тебя.
Создай папку .github/workflows/.
Пример: запуск тестов при каждом push
name: Тесты
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Запуск тестов
run: echo "Тут мог бы быть pytest"
Плюсы
- Marketplace с огромным количеством готовых действий
- Бесплатно для публичных репозиториев
- Простая интеграция с облаками и сервисами
Минусы
- Ограничения минут для приватных репозиториев
Для кого Для всех, кто уже использует GitHub. Стандарт де-факто.
Runner — кто выполняет задачи
Пайплайн — это рецепт. Runner — это повар, который готовит по рецепту.
| Платформа | Типы Runner’ов |
|---|---|
| GitLab | Shared (общие) и Self-hosted |
| GitHub | Hosted (виртуалки GitHub) и Self-hosted |
GitOps — уровень «Профи»
GitOps — подход, в котором Git является единственным источником правды.
Простой принцип
- Меняешь YAML в Git → кластер обновляется автоматически
- Ручной
kubectl apply→ считается плохой практикой
Почему это мощно
- Конфигурации воспроизводимы
- Логи и история изменений есть всегда
- Сервер всегда представляет собой “состояние из Git”
Инструменты GitOps
| Инструмент | Описание |
|---|---|
| Argo CD | Красивый дашборд. Видно Desired и Actual состояние. |
| Flux CD | Минимализм. Всё управляется через Git, почти без UI. |
Какой инструмент выбрать
| Ситуация | Выбор |
|---|---|
| Хранишь код на GitHub | GitHub Actions |
| Хочешь всё в одном | GitLab CI |
| Сложная историческая инфраструктура | Jenkins |
| Kubernetes + автоматизация | GitHub/GitLab + Argo/Flux |
Настрой свой первый пайплайн (5 минут)
- Создай приватный репозиторий в GitHub
- Добавь файл
.github/workflows/ci.yml:
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "Привет, CI/CD! 👋"
- run: echo "Тесты пройдены ✅"
- Сделай
git pushи открой вкладку Actions
Готово — твой первый CI/CD работает.
Полезные советы
- Начинай с простого:
build → test. - Не храни пароли в репозитории — используй Secrets.
- Деплой запускай только из ветки
main. - Пайплайны должны быть короткими и понятными.
Заключение
Ты уже сделал первый шаг. Сегодня — простой CI. Через неделю — запуск тестов. Через месяц — сборка Docker-образов. Через полгода — GitOps и автоматические деплои.
CI/CD — это не магия. Это просто автоматизация твоих обычных шагов разработки. И ты точно справишься.
Отзывы по теме
Очень доволен работой с Михаилом. Любая, даже на первый взгляд, трудная задача - становится благодаря ему качественно реализованной! Спасибо вам)
Dr-zelenin · Настройка vps, настройка сервера
11.11.2025 · ⭐ 5/5
Очень доволен работой с Михаилом. Любая, даже на первый взгляд, трудная задача - становится благодаря ему качественно реализованной! Спасибо вам)
Спасибо Михаилу за профессионализм. Рекомендую. Очень помог разобраться с докером
Vadim_U · Настройка vps, настройка сервера
Освоившийся покупатель10.11.2025 · ⭐ 5/5
Спасибо Михаилу за профессионализм. Рекомендую. Очень помог разобраться с докером
Михаил эксперт. Быстро разобрался и решил проблему.
Vadim_U · Настройка vps, настройка сервера
Освоившийся покупатель10.11.2025 · ⭐ 5/5
Михаил эксперт. Быстро разобрался и решил проблему.
Выручает при любых проблемах, рекомендую!
AlekseiDotsenko · Настройка vps, настройка сервера
Мощный покупатель05.11.2025 · ⭐ 5/5
Выручает при любых проблемах, рекомендую!
Михаил очень оперативно помог настроить работу сайта. Сам бы я точно провозился весь день. Приятно, когда профессионал помогает экономить твое время и делает работу на высоком уровне. Рекомендую!
N_Konstantin · Настройка vps, настройка сервера
Освоившийся покупатель21.10.2025 · ⭐ 5/5
Михаил очень оперативно помог настроить работу сайта. Сам бы я точно провозился весь день. Приятно, когда профессионал помогает экономить твое время и делает работу на высоком уровне. Рекомендую!
Самый квалифицированный и крутой спец нающий толк в своем деле
Alexeyvodopyanov · Настройка vps, настройка сервера
Опытный покупатель21.10.2025 · ⭐ 5/5
Самый квалифицированный и крутой спец нающий толк в своем деле