Обязанности DevOps Engineer
Обязанности системного администратора обычно выглядят так:
- Установка и обслуживание компьютерной и офисной техники
- Конфигурирование и запуск облачного или локального сервера и инфраструктурных элементов
- Установка, настройка и обновление системного, офисного и прикладного ПО
- Поддержка пользователей, организация рабочей среды, обеспечение удаленного доступа
- Обеспечение резервного копирования и, при необходимости, восстановления данных
- Обеспечение информационной безопасности
- Диагностирование программных и аппаратных проблем, планирование рисков
- Учет и инвентаризация компьютеров пользователей, организация закупки нового оборудования.
В небольших компаниях системные администраторы выполняют и функции сетевых администраторов.
В обязанности DevOps engineer входят:
- Подготовка среды разработки и инфраструктуры
- Написание серверного ПО
- Автоматическое развертывание серверов
- Автоматизация процессов, связанных с настройкой и развертыванием приложений
- Обеспечение информационной безопасности
- Коммуникация с заказчиками и разработчиками
- Установка полученного от разработчиков релиза
- Настройка систем мониторинга, быстрое обнаружение и исправление технических проблем
- Анализ используемых компанией технологий и разработка стратегий их улучшения и модернизации.
Скиллы Sysadminа
Знания и навыки сисадмина включают в себя:
- Глубокое знание операционных систем
- Знание систем мониторинга сервисов компьютерной сети (Zabbix, Prometheus)
- Умение диагностировать и исправлять программные и аппаратные проблемы
- Может потребоваться знание систем виртуализации (например, VMware, OpenVZ, MS Hyper-V, KVM).
DevOps должен знать:
- Хотя бы один язык программирования на уровне, достаточном, чтобы писать скрипты автоматизации. Например, Python, Ruby, Go, Powershell, Groovy, Bash
- Как минимум одну операционную систему (для понимания, на каком сервере продукт будет установлен, в какой среде будет запускаться, с какими сервисами взаимодействовать)
- Системы контроля версий (Git)
- Системы оркестрации Docker и Kubernetes
- Системы конфигураций, например, Chef, Ansible, Puppet — для автоматизации повторяющихся операций на серверах
- Разбираться в CI/CD, знать Jenkins.
Обязателен опыт работы с облачными провайдерами (AWS, Google Cloud, Microsoft Azure) и системами виртуализации.