Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка
Виммельбух, 3, перетяжка

Как обучиться на DevOps-инженера

Аватарка пользователя Марат Талипов
Отредактировано

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

13К открытий15К показов

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

Кто такой DevOps-инженер и чем он занимается

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

  • подготавливает инфраструктуру для разработки и тестирования, устанавливает нужное ПО на серверы и настраивает его;
  • создает и поддерживает CI/CD — процессы автоматического тестирования и развёртывания кода;
  • настраивает мониторинг, чтобы собирать все нужные метрики по работе систем.

Мы составили план обучения DevOps-инженера, следуя которому вы сможете освоить методологию Development Operations с нуля.

С чего начать изучение DevOps

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

Компьютерные сети

Как будущему девопсу, вам предстоит настраивать взаимодействие различных систем и сервисов между собой. Как правило, большинство таких взаимодействий происходит по сети.

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

Операционные системы

Linux — важная составляющая DevOps обучения, так как чаще всего такие специалисты работают с Linux или другими *nix-системами, но иногда может встретиться и Windows Server. Поэтому нужно научиться работать в разных ОС, понимать их отличия и особенности, а также знать принципы работы операционных систем: что такое ядро ОС, как система работает с памятью и выделяет ее процессам, как устроены файловые системы и так далее.

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

Еще нужно уметь работать в консоли (особенно это касается *nix-систем) и знать основные команды и утилиты. Для *nix-систем предстоит работать с командной оболочкой Bash, а для Windows — с PowerShell.

Python

Python — один из основных языков программирования, которым пользуются девопсы. Это простой и удобный язык с низким порогом вхождения для написания скриптов автоматизации. Намного реже для этого используют Ruby или Go.

DevOps-специалисту не нужно обучаться до уровня Senior-разработчика и знать все тонкости программирования. Но чтобы грамотно автоматизировать процессы, он должен уверенно писать на выбранном языке.

Виртуализация

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

Изучение DevOps: продвинутый уровень

Теперь разберём те инструменты девопса, с помощью которых вы и будете решать поставленные перед вами задачи.

Системы управления конфигурацией

DevOps-инженеры готовят серверы к работе: настраивают их и устанавливают ПО. Но делают они это не вручную, а с помощью систем автоматического управления конфигурацией, например Ansible. Чаще всего конфигурации описываются с помощью YAML — языка сериализации данных.

CI/CD-процессы

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

Для этого используются готовые инструменты вроде Jenkins или Gitlab CI. А DevOps-специалист должен знать все стадии разработки ПО, понимать, какие системы в этом участвуют, и как все это автоматизировать.

Облачные технологии

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

За облачную инфраструктуру отвечает девопс. Он создает и настраивает виртуальные машины, создает кластеры баз данных, подключает другие необходимые сервисы и связывает их между собой. Поэтому он должен понимать особенности работы в облаках, уметь строить Cloud-native архитектуру и разбираться в разных типах облачных сервисов. А если у компании вся инфраструктура в облаках, тогда такой специалист может по сути заменять системного администратора.

Микросервисная архитектура и контейнеризация

Другой популярный тренд — микросервисная архитектура и контейнеры. Многие компании разрабатывают свое ПО так, что оно оборачивается и работает в Docker-контейнерах. Если контейнеров становится слишком много, появляется оркестратор вроде Kubernetes, который помогает автоматизировать управление ими.

И если разработчик еще может написать Docker-файл и обернуть свое приложение в контейнер, то вот развертыванием контейнеров и управлением Kubernetes будет заниматься DevOps-инженер.

Мониторинг

Даже после того, как серверы созданы и настроены, а приложения «доезжают» до продакшена в автоматическом режиме, работа девопса на этом не заканчивается. Теперь за всей этой инфраструктурой нужно следить: настраивать мониторинг, собирать метрики и визуализировать графики.

Для этого используются готовые инструменты вроде Prometheus и Grafana. Вы должны уметь устанавливать и настраивать их, а также понимать, какие именно метрики нужно собирать и на что обращать внимание.

DevOps-инженер — эффективное обучение с нуля

Из плана обучения видно, что многие навыки DevOps специалиста требуют глубокого погружения в разработку и администрирование. Неудивительно, что эту специальность нередко выбирают бывшие программисты и системные администраторы. У них есть опыт работы в IT и они уже знакомы с одной из сторон работы, поэтому им проще получить недостающие знания. А вот новичкам в IT очень сложно выучить все это самостоятельно.

Поэтому DevOps-обучение с нуля следует грамотно организовать. Например, на платформе GeekBrains есть программа обучения для DevOps-инженеров, которая покрывает все перечисленные темы, и даже больше. Курс составлен так, чтобы освоить эту сложную профессию смогли даже новички в IT. За полтора года вы освоите базу, познакомитесь с необходимыми инструментами на практике и научитесь работать в команде. В конце вас ждет диплом о профессиональной переподготовке, а в портфолио ляжет сразу четыре готовые работы.
Следите за новыми постами
Следите за новыми постами по любимым темам
13К открытий15К показов