Кто такой devops engineer?
Думаю, все знают, кто такой системный администратор, но не все знают кто такой devops инженер. Devops инженер - этот тот же системный администратор, который администрирует приложения используемые в процессе разработки ПО. Эти приложения предназначены, чтобы облегчить, ускорить и улучшить сам процесс разработки программного обеспечения. Также на devops инженера ложится задача обеспечения работоспособности облачной инфраструктуры для development, test, production и т.п. окружений.
Зачем вообще становиться devops инженером?
Ответ простой - рынок труда системных администраторов угасает, количество вакансий падает, конкуренция среди работников растет. Работодатели снижают заработные платы и увеличивают требования. Зарплата толкового сисадмина, с хорошим опытом работы в районе $60-75к, при этом найти ее очень не легко (я не смог). Вакансии будут пестреть требованиями сертификатов и такими фразами как “superior written and spoken English skills”.
Рынок труда devops инженеров гораздо приятней для работника. Количество вакансий больше чем специалистов, требования по сертификатам практически отсутствуют, про superior English skills даже не заикаются Да, чуть не забыл, зарплаты devops engineer с опытом работы 2-3 года $80-120k, для более опытных и продвинутых $130-150k
Кто я такой, чтобы об этом рассказывать.
Я сисадмин, который долго мучился в поисках работы по профессии, потом самостоятельно разобрался, что нужно, чтобы стать devops инженером и также самостоятельно выучился. Потом искал работу и получил 2 два хороших оффера, один из которых от Amazon, куда я и устроился работать. It’s challenging but doable.
Как выучиться на devops инженера?
Как мне кажется devops инженер - это ветвь развития системного администратора, практически все что знает и с чем работал сисадмин пригодится, плюс надо освоить кое-что еще.
У меня были знания:
Networking (протоколы, маски сетей, ip адреса, firewall и т.п.)
Администрирование linux серверов (админил web сервера, LAMP stack)
Администрирование windows серверов (админил корпоративный AD)
Знание реляционных баз данных (работал с mysql/mariadb) и SQL
Понимание систем виртуализации (работал с VMWare vSphere)
Знание скриптовых языков программирования (программировал на perl и bash)
Что нужно было доучить:
Docker containers
Container orchestration (познакомился docker swarn и глубоко копал kubernetes)
Software deployment automation tools (изучал jenkins глубоко (!), очень важный элемент)
Version-control systems (изучал git и github, также распространен gitlab)
Configuration management tools (изучал ansible, но puppet тоже довольно популярный)
Scripting language (изучал python, perl устарел)
Monitoring systems (изучал Nagios/NagiosXI и внедрил на одном проекте, по хорошему надо было также изучать связку Grafana+Prometheus для k8s, но руки не дошли)
Cloud providers (изучал AWS глубоко, сдал на сертификат solution architect associate. AWS самый популярный, Azure менее популярный, но есть нехватка специалистов, GC на третьем месте)
Infrastructure as code (изучал оба cloudformation и terraform)
Все материалы брал из открытых источников, youtube видео, статьи, форумы, книжки. (если тема будет интересна форумчанам, буду приводить ссылки, на конкретные вопросы) Практику отрабатывал на виртуалках. Также создал аккаунт на githab и почти по каждому продукту делал проекты и выкладывал их на github, чтобы на собеседования приходить с реальными работами и показать, что я умею.
Какие подводные камни?
Есть нюанс, на рынке почти нет junior позиций, везде требуется опыт минимум 2-3 года. Это значит, что нужно самостоятельно погрузиться в эти системы глубоко и наработать практику, чтобы на собеседовании ваши знания подтверждали требуемый опыт.
Где лучше жить, чтобы найти работу?
В теории, не важно где жить, работу можно искать по всей стране и потом переехать. На практике, работодатели более охотно нанимают сотрудников, которые уже живут там где будут работать.
Основные города где было много devops вакансий:
San Francisco+Silicon Valley
Boston
Dallas
NY
Austin
Seattle
LA
По мне Dallas лучший, т.к. жилье доступное.