Share This
Связаться со мной
Крути в низ
Categories
//Повседневные задачи в DevOps: мнения инженеров

Повседневные задачи в DevOps: мнения инженеров

Корреспондент Proglib выяснил у инженеров DevOps, с какими задачами они сталкиваются ежедневно и какими инструментами пользуются. Рассказываем о наиболее полезных для профессионального развития. Обсудить

povsednevnye zadachi v devops mnenija inzhenerov f3d0b40 - Повседневные задачи в DevOps: мнения инженеров

В предыдущих статьях мы писали об основах DevOps и рассказали, как освоить эту профессию. Остальные публикации по теме доступны на сайте Proglib.io.

***

Чем инженер DevOps отличается от сисадминов

DevOps (DEVelopment OPerations) – набор практик, сочетающий разработку программного обеспечения (Dev) и IТ-операции (Ops). Эти практики направлены на сокращение жизненного цикла создания систем и непрерывную поставку программного обеспечения высокого качества.

Специалист DevOps должен знать все процессы цикла: от самой разработки до поддержки продукта после релиза. Он должен быть хорошим менеджером, который разбирается в процессах планирования и управления командами, а также умеет общаться с заказчиком.

Работа специалиста DevOps объединяет несколько направлений:

  • непрерывную интеграцию и доставку (CI/CD);
  • автоматизацию развертывания серверов (IaC);
  • мониторинг;
  • отчетность;
  • сотрудничество.

Роль DevOps мы уже рассматривали подробнее.

Существует миф, будто задачи инженера DevOps может решать системный администратор или администратор Big Data, но сферы ответственности и рабочие объекты у этих специалистов различаются.

povsednevnye zadachi v devops mnenija inzhenerov 637bdbd - Повседневные задачи в DevOps: мнения инженеров

Иллюстрация с сайта pixabay.com

Системный администратор:

  • разрабатывает конфигурацию корпоративной сети;
  • работает с программным и аппаратным обеспечением персональных компьютеров;
  • настраивает серверы;
  • ведет мониторинг состояния сети;
  • реализует резервное копирование и восстановление данных.

Администратор Big Data:

  • настраивает и обслуживает инфраструктуру для хранения данных, создавая кластеры и конфигурируя облачные платформы;
  • заботится об информационной безопасности больших данных;
  • взаимодействует с облачными и виртуальными серверами.

povsednevnye zadachi v devops mnenija inzhenerov 58ce691 - Повседневные задачи в DevOps: мнения инженеров

Иллюстрация с сайта pixabay.com

Инженер DevOps:

  • запускает поставленный разработчиками релиз в производство;
  • интегрирует процессы разработки в поставки;
  • стандартизирует окружение разработки;
  • настраивает серверы, автоматизированную проверку и заливку кода;
  • автоматизирует тестирование, решает задачи по деплою;
  • находит и исправляет проблемы;
  • автоматизирует процессы.

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

Нюансы работы специалистов разных уровней

Мы расспросили специалистов DevOps разных уровней об их основных обязанностях и использующихся в работе инструментах.

povsednevnye zadachi v devops mnenija inzhenerov 6d82680 - Повседневные задачи в DevOps: мнения инженеров

Иллюстрация с сайта pixabay.com

Алексей Мамаев стажировался на позиции DevOps в «Тинькофф Банк», а сейчас занимает должность младшего разработчика в Mail.ru Group. Большая часть времени в процессе его стажировки уделялась разработке.

Круг обязанностей был следующим:

  • настройка мониторинга инфраструктуры;
  • разработка внутренних сервисов (например, конфигурирования серверов).

Задачи и инструменты:

  • Системы мониторинга:
  1. конфигурирование мониторинга внутренней инфраструктуры (добавление метрик, их группировка, формирование дашбордов) в Nagios;
  2. разработка дополнительных плагинов на C, когда нужна более тонкая логика обработки: например, отслеживание совокупности метрик;
  3. добавление метрик для системы мониторинга Prometheus с использованием Golang;
  • Шаблонное редактирование конфигураций развернутых в Kubernetes или на физических машинах веб-сервисов с помощью Puppet;
  • Разработка внутренних сервисов: бекенда на Python и простейшего фронтенда с использованием Bootstrap. Возможно, с использованием Django/Flask. Как пример – простейший веб-интерфейс управления определенным классом серверов в дата-центре (включить/выключить, отобразить информацию о машине).

В итоге немалый объем работы был связан с мониторингом. По словам Алексея, эта сфера интересна ему в т.ч. по эстетическим соображениям, а опыт в DevOps может быть полезен обычным разработчикам: если в команде нет специалистов, им достается часть обязанностей по доставке ПО и поддержке разворачиваемых сервисов.

povsednevnye zadachi v devops mnenija inzhenerov fa8a39c - Повседневные задачи в DevOps: мнения инженеров

Иллюстрация с сайта pixabay.com

Андрей Сидоров занимает в компании 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 становится стандартом любой инфраструктуры и он с нами надолго. Всем инженерам необходимо получить опыт эксплуатации сервисов на этой платформе, но надо понимать, когда ее использование целесообразно.

povsednevnye zadachi v devops mnenija inzhenerov 174268c - Повседневные задачи в DevOps: мнения инженеров

Иллюстрация с сайта pixabay.com

Илья Бленцов работает на должности Senior IT Engineer.

По мнению Ильи, обязанности специалиста DevOps зависят от проекта и его фазы, роли инженера на этом проекте и списка задач. Он приводит такие варианты задач по автоматизации отдельно взятых процессов:

  • установка/развертывание решения, статическое тестирование кода, подготовка/обновление/клонирование окружения;
  • изучение существующих инструментов и процессов на проекте с последующей их автоматизацией и оптимизацией, например «на нашем проекте вся автоматизация на скриптах Ansible и Shell»;
  • изучение и внедрение конкретного инструмента (например, graylog для управления логами на проекте или Vault), где инженеру необходимо будет изучить продукт и понять, как с его помощью решить задачи проекта;
  • организация CI/CD на проекте с помощью Gitlab-CI, где задачи инженера будут следующими:
  1. изучить существующие процессы на проекте;
  2. понять, как запрошенный инструмент поможет решить поставленную задачу;
  3. адаптировать/оптимизировать существующие процессы для реализации поставленной задачи;
  4. построить CI/CD;
  • разработка унифицированного инструмента для компании, с написанием сопроводительной документации, подготовкой презентации и внедрением.

По мнению эксперта, не последнее место занимает задача «продать» новый инструментарий или подход командам, презентовать его, и в конце концов научить им пользоваться.

Илья отмечает, что ему приходится работать с IaaS и PaaS, развернутыми в частных и публичных облаках. В DevOps большинство задач так или иначе связаны с IaaS, причем наиболее популярна и актуальна сейчас экосистема Kubernetes.

Интересен опыт работы с публичными облаками крупных провайдеров: AWS, Azure, Google Cloud Platform. Python для специалиста DevOps по-прежнему «в топе», но все более актуальным становится язык программирования Go.

***

DevOps – сложная и многогранная методология. Профессию можно освоить самостоятельно, но если вы только начинаете свой путь в ней, обратите внимание на курс DevOps онлайн-университета GeekBrains.

В течении полутора лет студенты осваивают перечисленные героями статьи инструменты: Python, Docker, Kubernetes, Ansible, Terraform, CD/CI, AWS и Azure. Они изучают настройку серверов, облачные технологии и микросервисную архитектуру, платформу Azure, системы мониторинга на примере Prometheus+Grafana и многое другое. В возникающих проблемах студентам помогают разобраться опытные преподаватели и личный наставник.

Интересно, хочу попробовать

  • 14 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close