Рассказать, что такое DevOps одним-двумя предложениями просто невозможно, потому что некоторые не верят в существование такой специальности, а другие утверждают, что это всего лишь «навороченный» системный администратор.
Но кто бы что ни говорил, а такая профессия как DevOps-инженер существует, хотя бы потому что многие компании готовы платить таким специалистам одну из самых высоких зарплат в IT.
DevOps, что это такое?
DevOps — это Development Operations, фактически это набор знаний и инструментов сразу из нескольких сфер:
разработка;
тестирование;
менеджмент;
и др.
DevOps — это не конкретный набор инструментов или конкретная деятельность — это, скорее, целая философия и подбор методик, которые дают возможность программистам, QA-инженерам, тестировщикам, сисадминам и др. работать как эффективный единый организм.
DevOps-инженер — это не конкретная специальность, это «универсальный солдат», который:
при самом старте разработки продукта может помочь выбрать необходимый набор инструментов, эффективную архитектуру приложения, способы дальнейшего масштабирования проекта и др.;
в процессе разработки может настроить сервера, написать скрипт для заливки кода на сервер, автоматизировать проверку работы программистов и др.;
может автоматизировать тестирование приложения после окончания его разработки;
после релиза приложения может организовать обратную связь с пользователями и проводить анализ ее результатов для улучшения приложения;
и др.
В общем, DevOps способен решать десятки всевозможных задач разных специалистов на разных этапах жизнедеятельности программного продукта. Решение различных проблем продукта — это ключевой навык крутого DevOps-инженера.
При этом на реальном трудовом рынке требования к DevOps очень сильно различаются и пересекаются с другими специальностями. Именно поэтому происходит путаница и возникает мнение, что такого специалиста как DevOps не существует.
DevOps: курсы и обучение, или что нужно знать для профессии
Обучение DevOps невозможно пройти усилиями одного курса. То есть нет такого: «пройти курсы с нуля и до DevOps уровня Junior». DevOps — это прежде всего опыт работы хоть в какой-то смежной сфере, чтобы вы в целом ориентировались в IT и потом «добрали» опыта там, где его не хватает, при помощи курсов.
Для успешного DevOps перед прохождением курсов, вам необходимо:
Проработать какое-то время сисадмином или тестировщиком, чтобы иметь представление о том как работают приложения, какие ошибки у них могут возникать и т. д. Если такого опыта нет, тогда вам нужен курс «администратор Linux систем».
Знание о том, как формируются и работают локальные и глобальные сети.
Знать основы программирования, виды программирования и их особенности, язык программирования, понимать через какие циклы проходит разработка продукта и т. д.
Знать технический английский.
Описанное выше — это своего рода «фундамент», на котором можно вырастить настоящего DevOps-инженера.
Что должен знать хороший DevOps-инженер
DevOps — это специалист широкого профиля, который в разных компаниях будет выполнять разные задачи по разным направлениям. Из этого следует, что DevOps должен иметь знания из разных сфер:
Разработка. DevOps-инженер легко может писать скрипты, которые облегчают жизнь разработчикам, тестировщикам и себе. Он способен замечать потенциальные проблемы в разработке, раньше чем они появятся в продукте. Знание нескольких языков программирования приветствуется. В основном языки программирования нужны будут DevOps-инженеру для автоматизации разных процессов.
Операционные системы. Большинство вакансий DevOps связаны с операционной системой Linux. При этом DevOps-инженер должен знать основы и других операционных систем, чтобы понимать как с ними можно работать и как на них воздействовать.
Облачные решения. Облачные решения — это тренд последних лет. Все больше проектов уходят «в облака», поэтому знать специфику работы с облаками — это обязательно.
Знать архитектуры и их особенности. Также нужно знать какие инструменты и системы используются в той или иной архитектуре.
Уметь работать с разными базами данных, например MySQL и NoSQL.
И др.
На самом деле перечислять, что должен знать DevOps, можно бесконечно, потому что трудно предугадать, что конкретно понадобится DevOps-инженеру для решения проблем в той или иной компании. Поэтому хороший DevOps никогда не опускает руки перед проблемами, а легко ориентируется, находит нужную информацию и постоянно учится.
Заключение
DevOps, что это такое? Это сочетание нескольких специалистов в одном. Этим и труден DevOps, потому что нужно хорошо ориентироваться в нескольких IT-направлениях. В DevOps не приходят с полного нуля, не имея даже понятия, что такое IT — ими становятся, только когда в других IT-специализациях достигли профессионализма.
DevOps — это тот специалист, который может улучшить процесс разработки там, где другие уже не в силах что-то предпринять.
Другое