Чаще всего в профессию приходят бывшие системные администраторы. Реже — разработчики, которые или решили, что DevOps — это круто, или не смогли реализовать себя в программировании и решили перейти в поддержку разработки. Обычно из них получаются сильные девопсы. Они знают сборку, тестирование, CI/CD со стороны разработчиков.
Прежде всего, вам необходимо освоить хотя бы один язык программирования. При этом не важно какой именно язык будет выбран, важно общее понимание принципов.
Основные концепции операционных систем
Следующим этапом важно освоить концепции, заложенные в работу популярных операционных систем. Разберитесь с тем, как осуществляется управление процессами и что такое потоки и параллельное выполнение. Уделите внимание разбору информации по сокетам, управлению вводом и выводом, файловым системам и хранилищам данных. Изучите виртуализацию.
Администрирование серверов
Теперь можно смело переходить к изучению принципов управления серверами и получению навыков администрирования. Особое внимание стоит уделить ОС Linux. Начните с Ubuntu, если у вас мало опыта подобной работы. Разберитесь с работой терминала. Это основа в работе с серверами на базе Linux. Изучите основные команды и инструменты для мониторинга, настройки, управления производительностью.
Сети и безопасность
Пора уделить больше внимания изучению сетей и безопасности. Разберитесь с основными понятиями – как работают сети, что такое DNS, HTTP/S, FTP, SSL/TLS. Как они настраиваются на уровне сервера и что влияет на безопасность работы.
Углубление в сервера
Далее следует уделить внимание изучению различных видов серверов, их работе и настройке. Разобраться что такое прямой (Forward) и обратный (Reverse) Proxy. Что такое Firewall и для чего он нужен, как настраивать. Среди веб-серверов уделите особое внимание Apache и Nginx.
Изучите подход “Инфраструктура как код”, какие его преимущества и как реализуется. Ознакомьтесь с основными инструментами построения, управления и контроля. Уделите внимание системам непрерывной интеграции. Это весьма важный момент в процессах разработки масштабных программных систем. Освойте инструментарий мониторинга инфраструктуры и программного обеспечения. Разберитесь с особенностями работы облачных провайдеров.
Продолжайте совершенствоваться!
Нет пределе совершенству. Даже если вы изучили многое и уже чувствуете себя как рыба в воде, не стоит останавливаться на достигнутом и продолжайте дальнейшее изучение технологий и инструментов DevOps. Ищите новые подходы, оптимизируйте старые процессы. Всегда найдется что улучшить и автоматизировать.