Девопсы, расскажите о своей работе

Здесь есть так называемые "девопс-инженеры"? Как вкатились в профессию, как проходит ежедневная рутина? Можно ли освоить профессию, имея только базовые знания в пайтоне и администрировании линукса? Необходимый стек технологий я понимаю(который различается от компании к компании).

Всякие курсы кажутся разводиловом.

44
3 комментария

DevOps — сама мифическая профессия в IT за последние лет пять. Это очень модное и частоупотребляемое слово, но никто толком не знает, что это такое и трактует по своему.

Я вот работал обычным Linux-админом в одной конторе три года, но потом меня оттуда уволили за троллинг руководства. Я устроился в другую контору и стал называться уже DevOps-инженером. Заработная плата выросла довольно существенно, а круг задач почти не изменился. Добавился только Jenkins и Ansible.

Также я иногда хожу по собеседованиям на позиции DevOps-инженера и везде эта профессия трактуется по-разному. Во многих конторах просто переименовывают вакансию системного администратора на Devops-инженера.

Может в Москве\Питере всё по-иному, я там не был. рассказываю про опыт из глубинки.

По поводу твоего случая, подучи вот это:
1) Jenkins. На youtube есть видеокурс на русском, технология приятная и несложная (если всё делать без pipline). Это даст существенное преимущество на собеседованиях. Вот рекомендую: https://www.youtube.com/channel/UC-sAMvDe7gTmBbub-rWljZg
2) Docker. Толковых курсов я не нашёл, но просмотрел примерно 3 курса и почитал документацию, стал понимать. Тоже несложная технология и даст весомые преимущества
3) Выучи какую-нибудь базу данных, желательно Postgres. На сайте https://postgrespro.ru/education/courses есть бесплатные курсы на русском
4) Ansible — тоже несложная теология и приятная. Рекомендую курсы от того же человека на youtube: https://www.youtube.com/channel/UC-sAMvDe7gTmBbub-rWljZg

В общем, делай упор на 1, 2 и 4 пункт. Знание этих технологий позволит тебе устроиться DevOps-инженером во многие компании.

Потом можно учить вот это:
5) Kebernetes. Очень востребовано, но сложно и учится долго
6) AWS\Azure. Облака — это будущее, и надо делать на них упор. Перспективно и требуется много где. Но есть компании, как правило, связанные с гос. сектором, где облака пока что не нужны (хотя надо приглядываться к Яндексу). Но тоже надо подучить DevOps-инженеру
7) Иметь представление о микросервисах и как их масшатабировать (RabbitMQ, Redis, Haproxy, репликация баз данных). И давать советы по оптимизации. Ну тут сложно, придёт с опытом.

По программированию — зависит от конкретной компании. В моей конторе всё написано на Django, в коде почти не ковыряюсь, но понять логику в целом могу.

Как-то примерно так.

4
Ответить

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

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

В целом все хотят рабочий CI/CD и автоматические тесты кода, но разделение обязанностей у разных компаний происходит по разному.
Где-то разработчики сами следят за интеграцией кода и сборкой, отдавая условным админам/девопсам уже готовые билды, а те уже настраивают автоматический деплой на серверы.
Где-то разрабы только пишут код, а девопсу уже приходится билдить его и дальше выкатывать на сервера.
Где-то от девопса могут хотеть ещё и написание автотестов.
Плюс чисто админские вещи - разворачивание серверов, мониторинг и т.д.

В целом освоить профессию можно и без знания пайтона - всё зависит от возложенного круга обязанностей. Наверное её (профессию) стоит воспринимать как построение платформы самообслуживания для команды разработки.
Что касается вопроса как вкатывался - мне повезло прийти в компанию админом, а через пару лет мы стали сильно много потеть выкатывая код вручную и захотели автоматизацию по максимуму. Как-то так получилось что из 4х админов наибольший интерес проявил я - и на меня это всё свалилось. Без опыта мне пришлось потратить года три (это было на windows стэке, тулзов ещё не было, девопс на линуксе был ещё в диковинку, а с виндой вообще было всё грустно - только успели в европах придумать термин winops)

В linux стеке стоит освоить такие вещи:
хранилища кода: git (почти все хранят код в разных вариациях гита)
сборка (или билд или компиляция): teamcity, jenkins, maven - тут всё зависит от языка на котором будут разрабатывать в компании. В этом языке придётся разобраться что означают сообщения об ошибках, до обретения это скилла мифическая стена преодолевается походом к разрабам с вопросами.
провиженинг серверов - ansible, terraform
Как обычно, все стараются использовать возможности железа полностью, что вызвало сперва переход на виртуализацию, а теперь и на контейнерзацию - тут стоит освоить docker/kubernetes/rancher, посмотреть в сторону rkt
Ещё любят всякие chef/puppet для управления конфигурациями.

 
Для винды стоит смотреть всё тот же teamcity для сборки кода или msbuild/tfs.
git/tfs version control для хранения кода.
octopus deploy для разворачивания.
провиженить сервера можно хоть wds с кастомными скриптами.

Знание баз данных весьма актуально. В первую очередь конечно реляционные БД - всевозможные варианты SQL. Дальнейший шаг в изучении - это NoSQL базы, например Apache Cassandra
Как сказали в посте выше - очень полезные штуки Redis, RabbitMQ/Apache Kafka, Haproxy.

От себя добавлю наверное пару инструментов от Hashicorp: Consul, Vault.

Всевозможных инструментов огромное количество и стоит их изучать "от задачи" ибо всё подряд в голову не поместится. Я наверное не описал тут и 20% от всего разнообразия - только то, что мне показалось наиболее распространённым.

Запихать всё в один курс или книгу вряд-ли получится, но постараюсь дать ориентиры:

В качестве литературного вкатывания в курс дела стоит посмотреть книжку "Проект феникс"
Чуть более серьёзно (но тоже обзорно) можно глянуть в книге "Философия DevOps" (Дэвис, Дэниелс)
Неплохое ориентирование в теме может дать курс devops от otus (я в первый раз пишу комментарий на этом ресурсе, прошу не убивать сразу если подобные вещи запрещено озвучивать - типа реклама)


При поиске работы рекомендую оценивать общую адекватность вакансии. Часто пишут что хотят видеть опыт использования инструмента едва ли не дольше чем инструмент существует.

Вот интересно оформленный список всевозможных тулзов "для девопса": https://xebialabs.com/periodic-table-of-devops-tools/

2
Ответить

Есть куча отличных курсов/книжек по девопсу: начиная ансиблом и паппетом, и заканчивая кубернетисом.

Вообще девопс-инженер - это настолько скользкая тема. Ты должен шарить буквально во всей инфраструктурной теме. Нужно уметь схватывать на лету.

Я сейчас работаю 50% Python/Golang-инженер и 50% девопс. Могу сказать, что приходиться иметь дело со всем на свете: это написание ансибл-скриптов, сиай на дженкинсе, деплой на авс, управление зоопарком микро-сервисом живущих в докер-контейнерах, постоянный тюнинг сети (пробрасывание портов, фаервол, лоад-балансеры и тд), масштабирование зукипера и кафки на десятки нод в кластере и многое другое.

1
Ответить