Как обучиться на DevOps-инженера
Рассказываем, какими навыками должен обладать DevOps-инженер, с какими инструментами нужно уметь работать и где всему этому обучиться.
13К открытий14К показов
Как построить 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К открытий14К показов