Что должен знать программист DevOps
Специалист DevOps обладает широким диапазоном навыков и знаний для автоматизации и ускорения разработки проекта. Он:
-
Умеет работать с Linux, Windows, MacOS
-
Знает CI/CD процессы
-
Понимает принципы системного администрирования
-
Мониторит и тестирует готовые системы
-
Повышает безопасность приложения
-
Оценивает риски в работе готового продукта
Это лишь малая часть того массива задач, с которыми сталкивается специалист.
Не обойтись в работе без знание английского языка технического направления, чтобы читать интерфейсы и документы. Понадобится и разговорный английский, если компания работает на зарубежный рынок.
Soft skills для разработчика так же важны:
-
Умение находить общий язык с коллегами
-
Способность понятно и просто доносить информацию
-
Умение быстро, взвешенно и спокойно принимать решения
-
Стрессоустойчивость. Работа инженера требует высокого уровня ответственности
Умение учиться — один самых важных навыков для DevOps-разработчика. Через специалиста постоянно проходит множество новой информации, а продукты требуют всестороннего изучения. Способность разобраться самому или задать вопрос более опытному коллеге — важная характеристика для профессионала в этой сфере.
Базовые навыки для программиста DevOps
Попасть в сферу DevOps «с нуля» не получится. Она требует от разработчика ряда базовых знаний и определенного профессионального багажа:
- Junior Developer. Специалист должен уметь писать код, знать о потоках и ООП. Это позволяет понять, как именно создается продукт, чтобы потом легче автоматизировать и тестировать его
- Junior DBA. От разработчика потребуется умение писать запросы SQL, использовать explainи индексы, знание об NoSQL-решениях
- Senior System Administrator. Этот специалист должен знать среду, в которой будут работать приложения
Если обобщить, то список навыков для DevOps-инженера в вакансиях на Хабр Карьере выглядят так:
Какие программы должен знать DevOps-инженер
Чтобы работать DevOps-специалистом, понадобится знание ряда программ и умение работать с ними:
- Облачные платформы: AWS, Google Cloud или Microsoft Azure
- Протоколы и вычислительные сети: TCP/IP (IP, TCP, UDP, HTTP/HTTPs)
- Концепции API (REST, gRPC, GraphQL)
- Инструменты IAAC
- Docker, Kubernetes
- Непрерывная доставка и интеграция: Jenkins, Gitlab CI, CircleCI, GitHub Actions
- Системы контроля версий
- Ansible, Puppet
- Python, JavaScript или TypeScript
- ОС и инструменты
Образование для программиста DevOps
В профессию проще всего перейти из других IT-специальностей. Но и в таком случае специалист должен пройти обучение, чтобы восполнить недостающий объем знаний.
Если вы хотите освоить профессию «с нуля», не имея базы, понадобится много времени. Нет ничего невозможного, но оценивать свои перспективы нужно трезво: если вы не работали в IT, освоить DevOps будет сложно.
Требования к специалисту при приеме на работу
Как и в любой другой IT-специальности, в DevOps есть разделение профессионализма разработчиков по уровням. На каждом уровне от специалиста требуются определенные умения.
Junior Engineer имеет базовые знания и навыки в своей специальности, демонстрирует логическое мышление и способность к обучению. Он самостоятельно находит данные или обращается за помощью к опытному коллеге. Базовые требования к младшему специалисту:
- Знание ОС Linux, Windows
- Базовые знания инфраструктуры и сети, разработки ПО, OSI, CI/CD
- Kubernetes
- Английский для чтения технической документации
Middle Engineer самостоятельно справляется с задачами, разбирается в языках программирования и случаях, когда их применяют. Базовыми требованиями для работы являются:
- Знание Linux, Docker и Kubernetes
- Взаимодействие с метриками
- Ansible, Jenkins
- Мониторинг
Senior Engineer решает задачи с абстрактной формулировкой, берет на себя ответственность за принятые решения и их последствия. Он координирует и контролирует работу коллег и знает, кого и когда нужно подключить к процессу. Такой сотрудник разбирается в процессах с точки зрения бизнеса. Ключевые требования при приеме на работу выглядят так:
- Знание инструментов для конкретного направления. То есть, если речь о Microsoft, специалист должен работать с Visual Studio, или применять CMake, когда задачи касаются С++
- Понимание бюджетирования
- Агрегация, метрики, контейнеризация
- Умение внедрять новое, просчитывать будущие шаги и организовывать процесс
Team Lead Engineer — управленец, имеющий навыки работы сGoogle Cloud Platform, Terraform и Kubernetes. Он знает и внедряет в деятельность подходы Agile. В его задачи входит оценка эффективности работы всей команды, а также обратная связь для бизнеса.
Где обучиться на разработчика DevOps
Чтобы работать по специальности, нужно знать основы программирования и уметь писать код. Чаще всего рекомендуют начать с Python. Необходимо понимание работы с сетями, локальными или облачными центрами. Получить все необходимые знания можно на курсах.
Но даже в таком случае от ученика понадобится базовый набор умений и хотя бы минимальный опыт работы в IT. Курсы подходят системным администраторам, тестировщикам, разработчикам ПО. На нашем сайте представлены различные программы для будущих DevOps-инженеров.
Подведем итоги
DevOps — достаточно сложная специальность, находящаяся на стыке нескольких IT-направлений. Попасть в нее «с улицы» не получится. Нужно иметь набор базовых навыков по разным отраслям. В том числе обладать некоторыми soft skills: умение работать в команде, обучаемость, стрессоустойчивость, готовность быстро решить возникшую проблему. Знание английского языка также обязательно: для работы с документами, интерфейсами и общения с зарубежными коллегами.
Для работы DevOps-инженером понадобится знание специальных программ и умение работать с ними. Поэтому в профессию проще перейти из других IT-специальностей: разработчикам ПО, тестировщикам, сисадминам. Но и им понадобится обучение.
Чем выше уровень разработчика DevOps, тем больше знаний и навыков он должен иметь. Поэтому постоянное обучение в этой сфере — норма.