Хочешь уверенно проходить IT-интервью?

Мы понимаем, как сложно подготовиться: стресс, алгоритмы, вопросы, от которых голова идёт кругом. Но с AI тренажёром всё гораздо проще.
💡 Почему Т1 тренажёр — это мастхэв?
- Получишь настоящую обратную связь: где затык, что подтянуть и как стать лучше
- Научишься не только решать задачи, но и объяснять своё решение так, чтобы интервьюер сказал: "Вау!".
- Освоишь все этапы собеседования, от вопросов по алгоритмам до диалога о твоих целях.
Зачем листать миллион туториалов? Просто зайди в Т1 тренажёр, потренируйся и уверенно удиви интервьюеров. Мы не обещаем лёгкой прогулки, но обещаем, что будешь готов!
Реклама. ООО «Смарт Гико», ИНН 7743264341. Erid 2VtzqwP8vqy
В предыдущих статьях мы писали об основах DevOps и рассказали, как освоить эту профессию. Остальные публикации по теме доступны на сайте Proglib.io.
Чем инженер DevOps отличается от сисадминов
DevOps (DEVelopment OPerations) – набор практик, сочетающий разработку программного обеспечения (Dev) и IТ-операции (Ops). Эти практики направлены на сокращение жизненного цикла создания систем и непрерывную поставку программного обеспечения высокого качества.
Специалист DevOps должен знать все процессы цикла: от самой разработки до поддержки продукта после релиза. Он должен быть хорошим менеджером, который разбирается в процессах планирования и управления командами, а также умеет общаться с заказчиком.
Работа специалиста DevOps объединяет несколько направлений:
- непрерывную интеграцию и доставку (CI/CD);
- автоматизацию развертывания серверов (IaC);
- мониторинг;
- отчетность;
- сотрудничество.
Роль DevOps мы уже рассматривали подробнее.
Существует миф, будто задачи инженера DevOps может решать системный администратор или администратор Big Data, но сферы ответственности и рабочие объекты у этих специалистов различаются.

Системный администратор:
- разрабатывает конфигурацию корпоративной сети;
- работает с программным и аппаратным обеспечением персональных компьютеров;
- настраивает серверы;
- ведет мониторинг состояния сети;
- реализует резервное копирование и восстановление данных.
Администратор Big Data:
- настраивает и обслуживает инфраструктуру для хранения данных, создавая кластеры и конфигурируя облачные платформы;
- заботится об информационной безопасности больших данных;
- взаимодействует с облачными и виртуальными серверами.

Инженер DevOps:
- запускает поставленный разработчиками релиз в производство;
- интегрирует процессы разработки в поставки;
- стандартизирует окружение разработки;
- настраивает серверы, автоматизированную проверку и заливку кода;
- автоматизирует тестирование, решает задачи по деплою;
- находит и исправляет проблемы;
- автоматизирует процессы.
Системные администраторы обслуживают серверы и ПО, администраторы Big Data отвечают за инфраструктуру для больших данных, а инженеры DevOps автоматизируют решение задач, которые относятся к интеграции и доставке программного продукта заказчику.
Нюансы работы специалистов разных уровней
Мы расспросили специалистов DevOps разных уровней об их основных обязанностях и использующихся в работе инструментах.

Алексей Мамаев стажировался на позиции DevOps в «Тинькофф Банк», а сейчас занимает должность младшего разработчика в Mail.ru Group. Большая часть времени в процессе его стажировки уделялась разработке.
Круг обязанностей был следующим:
- настройка мониторинга инфраструктуры;
- разработка внутренних сервисов (например, конфигурирования серверов).
Задачи и инструменты:
- Системы мониторинга:
- конфигурирование мониторинга внутренней инфраструктуры (добавление метрик, их группировка, формирование дашбордов) в Nagios;
- разработка дополнительных плагинов на C, когда нужна более тонкая логика обработки: например, отслеживание совокупности метрик;
- добавление метрик для системы мониторинга Prometheus с использованием Golang;
- Шаблонное редактирование конфигураций развернутых в Kubernetes или на физических машинах веб-сервисов с помощью Puppet;
- Разработка внутренних сервисов: бекенда на Python и простейшего фронтенда с использованием Bootstrap. Возможно, с использованием Django/Flask. Как пример – простейший веб-интерфейс управления определенным классом серверов в дата-центре (включить/выключить, отобразить информацию о машине).
В итоге немалый объем работы был связан с мониторингом. По словам Алексея, эта сфера интересна ему в т.ч. по эстетическим соображениям, а опыт в DevOps может быть полезен обычным разработчикам: если в команде нет специалистов, им достается часть обязанностей по доставке ПО и поддержке разворачиваемых сервисов.

Андрей Сидоров занимает в компании ARRIVAL должность DevSecOps Architech.
В его обязанности входит проработка целевой безопасности компании:
- построение Security CI/CD для всех компонентов системы в соответствии со стандартами безопасности;
- построение SIEM для анализа и выявления кибер-угроз всем компонентам ИТ-инфраструктуры;
- построение системы работы с секретными данными на уровне всей компании;
- построение инфраструктуры для работы приложений в соответствии со стандартами безопасности.
В течение рабочего дня у Андрея обычно запланированы организационные звонки, занимающие в общей сложности до трех часов.
В остальное время он продумывает и разрабатывает Proof Of Concept различных решений и тестирует гипотезы.
Инструменты:
- Terraform (для управления конфигурацией инфраструктуры);
- CI/CD инструменты: Gitlab, Jenkins, TeamCity;
- Kubernetes;
- Vault;
- Istio;
- Open Policy Agent;
- Golang, Python.
Сейчас Андрей занимается решением для отправки отчетов различных сканеров (owasp dependency check, gitleaks, hadolint, dockle, trivy) в системы Application Security Vulnerability management (DefectDojo). В зависимости от настроек, оно импортирует нужную информацию о проекте и отправляет в DefectDojo, интегрируясь с Jira.
Андрей отмечает, что профессионалы в DevOps чаще вырастают из системных администраторов: им очень не хватает опыта программирования, поэтому изучение Go и Python необходимы. Go – из-за высокой популярности в корпоративном секторе, а также благодаря активному использованию в экосистеме Kubernetes.
Kubernetes становится стандартом любой инфраструктуры и он с нами надолго. Всем инженерам необходимо получить опыт эксплуатации сервисов на этой платформе, но надо понимать, когда ее использование целесообразно.

Илья Бленцов работает на должности Senior IT Engineer.
По мнению Ильи, обязанности специалиста DevOps зависят от проекта и его фазы, роли инженера на этом проекте и списка задач. Он приводит такие варианты задач по автоматизации отдельно взятых процессов:
- установка/развертывание решения, статическое тестирование кода, подготовка/обновление/клонирование окружения;
- изучение существующих инструментов и процессов на проекте с последующей их автоматизацией и оптимизацией, например «на нашем проекте вся автоматизация на скриптах Ansible и Shell»;
- изучение и внедрение конкретного инструмента (например, graylog для управления логами на проекте или Vault), где инженеру необходимо будет изучить продукт и понять, как с его помощью решить задачи проекта;
- организация CI/CD на проекте с помощью Gitlab-CI, где задачи инженера будут следующими:
- изучить существующие процессы на проекте;
- понять, как запрошенный инструмент поможет решить поставленную задачу;
- адаптировать/оптимизировать существующие процессы для реализации поставленной задачи;
- построить CI/CD;
- разработка унифицированного инструмента для компании, с написанием сопроводительной документации, подготовкой презентации и внедрением.
По мнению эксперта, не последнее место занимает задача «продать» новый инструментарий или подход командам, презентовать его, и в конце концов научить им пользоваться.
Илья отмечает, что ему приходится работать с IaaS и PaaS, развернутыми в частных и публичных облаках. В DevOps большинство задач так или иначе связаны с IaaS, причем наиболее популярна и актуальна сейчас экосистема Kubernetes.
Интересен опыт работы с публичными облаками крупных провайдеров: AWS, Azure, Google Cloud Platform. Python для специалиста DevOps по-прежнему «в топе», но все более актуальным становится язык программирования Go.
Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?
Можно учиться самостоятельно (долго) или пойти на курсы с преподавателями (быстро). Плюс нужно учитывать, что джунов много, конкуренция выше и работодатели повышают порог вхождения при найме на работу. Чтобы получить актуальные знания, мы в proglib.academy запустили курсы:
- Основы программирования на Python.
- Профессия Python-разработчик.
- Алгоритмы и структуры данных.
- Математика для Data Science.
- Профессия Data Science.
- Frontend Basic: принцип работы современного веба.
- Профессия Фронтенд-разработчик.
- Обработка естественного языка. Полный курс.
На подходе еще больше 10 курсов для взрослых и детей.
Комментарии