Минимальные знания DevOps-инженера
DevOps — это не столько профессия, сколько культура и методика. В современной IT-отрасли — это важное связующее звено между командой разработки и командой эксплуатации. В DevOps-культуре можно условно выделить следующие роли:
В реальности DevOps-инженер отвечает за проработку и автоматизацию процесса сборки и доставки кода от разработчика в production.
Каковы минимальные знания?
Если вы решили войти в эту профессию, то вам будет намного легче при наличии ряда навыков. О них и поговорим.
1. Senior System Administrator
Или хотя бы middle)). Но вообще, вы просто обязаны уверенно разбираться в среде, где будут работать ваши приложения. Как эти приложения стартуют (init, systemd), как себя вести при ошибке too many open files, надо или не надо применять swap — на реальных проектах всё это очень пригодится.
Что тут можно посоветовать — как минимум, пройдите базовый курс Linux.
2. Networking — CCNA
Невозможно писать онлайн-сервисы, если вы не понимаете, как эти сети работают. От вас требуется понимание работы IP, TCP/UDP, HTTP, HTTP/2 — соответствующие знания сохранят ваше время, например, при поиске ошибки Connection Refused. Чтобы их получить, пройдите курсы по сетям (допустим, CCNA). Также можно установить GNS 3, что позволит вам прокачаться в настройке сетевого оборудования.
3. Junior Developer
Да, вы должны быть ещё и разработчиком. Необходимо понимать, как пишется код, знать про ООП, потоки и т. п. И чем больше у вас будет девелоперских знаний, тем легче будет собирать и выкатывать приложения. Таким образом, надо: 1. Изучить основные типы применяемых данных. 2. Разобрать основные алгоритмы. 3. Почитать про паттерны программирования. 4. Пройти какой-нибудь простой курс по любому языку программирования.
4. Junior DBA
Администрирование баз данных — тоже немаловажный момент, ведь все текущие проекты используют те либо иные БД. А значит, надо уметь писать SQL-запросы, применять explain, а также понимать, как функционируют и зачем нужны index‘ы. Неплохо ознакомиться и с популярными nosql-решениями.
5. Софт-скиллз
Разумеется, вам потребуются не только технические навыки, но и следующие умения: — коммуникабельность. Вам придётся много общаться с заинтересованными сторонами — вы же связующее звено; — умение спорить и отстаивать свою точку зрения. Вы станете продвигать новые технологии и идеи, а также чётко и ясно доносить свои мысли до окружающих; — стрессоустойчивость — как же без неё-то? — терпение. Понадобится точно, ведь далеко не всегда можно внедрить новую технологию в течение одного дня.
Вывод
Итак, волшебного эликсира, который способен сделать вас DevOps-инженером, не существует. А значит, придётся многому научиться, поэтому будьте готовы «к труду и обороне». Ну и, разумеется, вам очень поможет курс от Otus «DevOps-практики и инструменты».
По материалам статьи "Кто такой DevOps и как им стать: план обучения".