Как стать Devops инженером

Константин | 2 мая 2023 г. 17:21
Как стать Devops инженером
Привет дорогой читатель! Думаю, если ты добрался до этой статьи после прочтения всеъ предыдущих - то у тебя уже должно было сложиться какое-то базовое представление о разработке и ее различных областях. Сегодня я хочу немного рассказать о Дев-опс практиках. Поехали!

Представь, что ты бэкенд разработчик, и занимаешься написанием кода для реализации логики в какой либо части приложения. К примеру, та часть кода которую ты написал, должна выполнять следующую логику: авторизованный пользователь, нажимая определенную кнопку на сайте, должен получить отсортированный список со ссылками для перехода и предпросмотра содержания книги. При это должен быть получен список только тех книг, которые были выпущены в печать с 1960 по 1980 год, при этом это должна быть научная фантастика, только писателей из франции. Само приложение представляет из себя уже существующий сервис по продаже книг и другой литературы, который в данный момент полностью функционирует, и текущей задачей является дополнить возможность поиска только одной книги - возможностью выполнять группированный поиск не нескольким условиям. Как будет происходить процесс интеграции новой функциональности? Давай попробуем разобраться дальше!

Работая из среды разработки у себя на ПК, ты сперва отправляешь код на ревью. При этом, сперва твой код должен пройти проверки статическими анализаторами - это такие программы, которые могут показать стилистические ошибки, неправильное оформление кода, которое, как правило, является общепринятым для работы всеми участниками команды в рамках одного проекта. (Хотя существует такое понятие как Clean Code, и вот в основном все стараются следовать ему). Далее, твой код попадает в удаленное хранилище разрабатываемого проекта, куда "складируется" все содержимое всех участников. На этом этапе, происходит проверка кода на работоспособность с помощью тестов. Да, тех самых тестов, которые тоже пишут разработчики, а скорее всего ты и написал свой код для проверки на ошибки, и для дальнейшего расширения функционала без нарушения этой самой работоспособности. Теперь, все проверки пройдены, код может выполнять ту логику, задача в реализации которой стояла перед тобой, тех лид просмотрел твой код, и готов добавить его в основной код приложения - "слить" его с тем кодом, который отвечает за работу всего сервиса. (Сейчас хочу сделать ремарку - это все еще хранилище кода для работы с ним команды, а не тот код, который лежит на сервере, обращаясь к которому и происходит все "чудо" на экране смартфона или компьютера) Далее, слияние кода выполнено, и вот теперь - нужно этот код добавить не сервер, чтобы пользователь сервиса смог воспользоваться новой фишкой сайта по продажам книг. При этом, желательно, чтобы пользователь не заметил, что сайт перестал работать, а всего лишь, зайдя в очередной раз - мог воспользоваться тем функционалом, что ты написал. 

Теперь вернемся ближе к началу, и представим, что ты написал код у себя на компьютере, нажал кнопку "push", чтобы отправить код, и всё что я описал выше, происходит в автоматическом режиме, и буквально за считанные секунды - минуты. Реализация большей части этапов этого процесса и называется Devops практикой. Соответственно, Devops инженер - специалист, выполняющий настройку, администрирование, получение проверок кода, развертывание и обслуживание серверов.
Не будем погружаться в конкретные примеры используемых инструментов, тут от разных проектов и компаний - области ответственности могут отличаться для такого специалиста. Но можно понять, что Devops инженер - достаточно не простая специальность. Как правило, Девопсами становятся разработчики, так как нужно глубоко понимать принципы разработки, тестирования, этапы CI/CD процессов и многие другие особенности автоматизации всего этого. Однако, и есть к чему стремиться - как правило зарплаты таких специалистов могут быть даже выше чем у бэкенд разработчиков.

Не стоит грезить одними лишь зарплатами - чтобы попасть в IT сферу и стать хорошим специалистом, не важно в каком направлении, нужно еще и любить это дело. Если тебе интересно как происходит "магия" взаимодействия программных компонентов, какие есть способы реализации задач, как цифровизация помогает людям улучшать качество ведения работы, бизнеса, и даже просто жизни, то у тебя точно все получится! Приступай к обучению, и тебя точно захватит это дело с головой. Точно так и случилось у меня! И помни - дорогу осилит идущий!