Найти в Дзене

DevOps - что нужно изучать и знать начинающему специалисту (1 Часть)

В первой части разбираем, кто такой DevOps-джуниор, философию автоматизации, основы Linux, сетей, скриптинга и ключевые принципы DevOps-культуры DevOps-джуниор - это начинающий инженер, который помогает выстраивать процессы разработки, тестирования, доставки и сопровождения программного обеспечения с акцентом на автоматизацию, стабильность и скорость. Его задача - стать мостом между разработчиками и эксплуатацией, обеспечивая надёжную и управляемую инфраструктуру. В российских реалиях DevOps-джун часто: работает с on-premise-инфраструктурой (в силу ограниченного доступа к западным облакам) взаимодействует с CI/CD-решениями, такими как GitLab CI/CD, TeamCity, Jenkins работает с Linux-серверами, внутренними Docker-реестрами, self-hosted мониторингом и логированием постепенно вникает в инфраструктуру как код, контейнеризацию и автоматизацию процессов DevOps - не столько про модные технологии, сколько про культуру: как выстроить надёжные, воспроизводимые, автоматизированные процессы. Даже
Оглавление

В первой части разбираем, кто такой DevOps-джуниор, философию автоматизации, основы Linux, сетей, скриптинга и ключевые принципы DevOps-культуры

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

В российских реалиях DevOps-джун часто:

  • работает с on-premise-инфраструктурой (в силу ограниченного доступа к западным облакам)
  • взаимодействует с CI/CD-решениями, такими как GitLab CI/CD, TeamCity, Jenkins
  • работает с Linux-серверами, внутренними Docker-реестрами, self-hosted мониторингом и логированием
  • постепенно вникает в инфраструктуру как код, контейнеризацию и автоматизацию процессов

DevOps - не столько про модные технологии, сколько про культуру: как выстроить надёжные, воспроизводимые, автоматизированные процессы. Даже джуниор должен понимать основные принципы этой культуры, пусть и не реализует их самостоятельно.

Хард-скиллы

-2

Софт-скиллы

-3

DevOps не начинается с Ansible и Jenkins, а с понимания проблем и ценности, которую команда разработки и сопровождения приносит бизнесу.

Что такое ценность и отходы в ИТ-процессах - и зачем тут DevOps

DevOps родился как ответ на боль, которую испытывают компании при разработке и эксплуатации ПО. Чтобы понять, зачем вообще нужен DevOps-инженер (и чем он отличается от обычного админа или разработчика), нужно разобраться, где теряется ценность, и что мешает её доставке.

Ценность в ИТ

В ИТ ценность — это работающее программное обеспечение, которое приносит пользу пользователю и бизнесу. Всё, что помогает быстрее, надёжнее и стабильнее доставить это ПО в руки пользователя — добавляет ценность. Всё остальное — отходы (waste).

Основные отходы (waste), с которыми борется DevOps

-4

Ключевые принципы DevOps

DevOps — это не про конкретные инструменты, а про подход. Вот главные идеи, которые должен понимать даже начинающий инженер:

  • Automation First — всё, что можно автоматизировать, нужно автоматизировать.
  • Continuous Everything — непрерывная интеграция, доставка, мониторинг, улучшение.
  • Infrastructure as Code — инфраструктура управляется как код, с версионированием.
  • Collaboration — разработка, тестирование и эксплуатация работают как единая команда.
  • Feedback loops — всё измеряется, анализируется и улучшается.

DevOps-джуниор должен видеть не только «как настроить Jenkins», но и зачем это нужно: чтобы каждый коммит превращался в ценность без боли.
А понимание отходов помогает сразу отличать полезную работу от «бесконечной настройки ради настройки».

ОС и сети: базовые знания DevOps-джуниора

Даже если вы начинаете свой путь в DevOps, знание операционных систем (в первую очередь Linux) и сетевых основ — это обязательный фундамент. Почти всё, с чем вы будете работать — работает на Linux и взаимодействует по сети. Если вы не понимаете, как устроен системный процесс или что такое iptables — это как быть автомехаником, который боится заглянуть под капот.

  • Linux

Что должен знать и уметь джуниор:

-5

Цель: понимать, как устроена система, уметь находить и устранять базовые проблемы, быть «дома» в терминале.

  • Сетевые основы

Что должен знать и уметь:

-6

❓ Что могут проверить на собеседовании:

  • Что покажет команда ps aux | grep nginx?
  • Как проверить, слушает ли сервер 443 порт?
  • Как зайти по SSH без ввода пароля?
  • Что делает chmod 755 some.sh?
  • Как узнать, какой IP-адрес получил сервер?
  • Что значит «порт проброшен»?
  • Почему ping не работает, а ssh — работает?

Прежде чем автоматизировать — научись делать это руками. Чем увереннее ты в Linux и сети, тем проще тебе будет писать скрипты, настраивать пайплайны и дебажить «почему всё упало».

Автоматизация: скрипты и умение облегчать себе жизнь

Автоматизация — это сердце DevOps. Всё, что повторяется больше одного раза, должно быть автоматизировано. Даже джуниор должен уметь писать простые скрипты, которые избавят команду от рутинных действий. На старте это может быть просто bash, позже — Python и инструменты вроде Ansible или Terraform.

Bash и shell-скрипты

-7

Пример: написать скрипт, который делает бэкап папки, архивирует и отправляет по SFTP.

Основы Python (для DevOps)

Bash хорош, но когда автоматизация становится сложнее — на сцену выходит Python. Это must-have язык для любого DevOps-инженера.

-8

Пример: скрипт, который проверяет статус сайта, логирует ответ и шлёт алерт в Telegram, если упал.

🛠️ Какую автоматизацию должен уметь делать джуниор

  • Скрипт очистки / сбора логов
  • Бэкап и архивирование
  • Проверка доступности сервисов
  • Простые деплои (например, scp + systemctl restart)
  • Парсинг конфигов / логов
  • Генерация отчётов (например, свободное место по серверам)

❓ Что могут проверить на собеседовании:

  • Напиши bash-скрипт, который ищет большие файлы в каталоге
  • Как в bash проверить, существует ли файл?
  • Пример цикла в bash, который читает строки из файла
  • Как в Python считать JSON из файла?
  • Как в Python выполнить команду ls -la и получить результат?

Если тебе лень делать рутину — ты уже на пути в DevOps. Учись писать скрипты ради экономии времени — и чтобы никогда не делать одну и ту же ошибку дважды.

CI/CD и пайплайны: автоматизация сборки, тестов и доставки

CI/CD (Continuous Integration / Continuous Delivery или Deployment) — это нервная система DevOps-процессов. Даже джуниору важно понимать, как работают пайплайны, как проект проходит путь от коммита до продакшна, и как автоматизировать этот процесс с помощью инструментов вроде GitLab CI, Jenkins, GitHub Actions и других.

Что такое CI/CD — просто

  • CI (непрерывная интеграция): автоматическая проверка, сборка и тестирование кода при каждом изменении.
  • CD (доставка или деплой): автоматическое выкатывание кода на стенд, тест или прод.
  • DevOps-инженер помогает автоматизировать и поддерживать эту цепочку, чтобы не было «работает у меня на машине».

Что должен знать DevOps-джун

-9

❓ Что могут спросить на собеседовании:

  • Что такое пайплайн и зачем он нужен?
  • Какие стадии могут быть в CI/CD?
  • Что делает .gitlab-ci.yml файл?
  • Как передать переменную в пайплайн?
  • Как настроить деплой на тестовый сервер?

Примеры пайплайнов

GitLab CI:

-10

GitHub Actions:

-11

Начни с простого: пусть твой пайплайн просто выводит «Hello, world». Потом добавляй шаги: тесты, сборку, деплой. Это как конструктор — каждый шаг делает твою жизнь проще.

Контейнеризация и Docker: упаковываем сервисы в коробки

Контейнеризация — это основа современной DevOps-инфраструктуры. Контейнеры позволяют запускать приложения в изолированных средах, быстро разворачивать и переносить их между машинами и средами.

Что должен понимать DevOps-джун

-12

Простой Dockerfile:

-13

Пример docker-compose.yml:

-14

❓ Что могут спросить джуна:

  • Что такое образ и контейнер?
  • Как собрать образ и запустить контейнер?
  • В чём разница docker run и docker-compose up?
  • Что делает docker exec -it?
  • Что произойдёт, если удалить контейнер без volume?

🛠️ Практика для джуна:

  • Запусти Nginx в контейнере и открой его в браузере
  • Собери свой Python-сервис в контейнере
  • Напиши docker-compose.yml для web-приложения и PostgreSQL
  • Подключись к контейнеру, установи пакет, посмотри логи

Если ты можешь собрать проект в контейнер, запустить и дать ссылку коллеге — ты уже полезен. Это и есть магия DevOps: один образ — и всё работает у всех.

-------------------------

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