Pull to refresh

Comments 141

Как то слабовато))) это джун?

Просто программирование в работе девопса очень важно) зачастую приходится разбираться в двух трех языках, для того что бы все работало хорошо)

или рядовая задача написать какой нибудь экспортер для прометеуса, или написать оператор для кубернетиса, это типовые задачи, которые без знания программирования не решить(((

плюсанул бы, но не довопс :)
а так да… кстати, там еще про нейросети и машинное обучение забыли. какой девопс без ML?

Соглашусь. Когда последний раз меня попросили помочь с наймом в мелкоконторку(конторка в Монреале), была в ужасе, что 3 из 6 соискателей не смогли назвать отличие list от tuple в питоне, при том, что заявлен он был у всех, а когда спросила про то, как тестировать лямбду в контексте AWS(подряд несколько вопросов было про AWS) — я верю, что DevOps/SRE суть разработчик infrastructure-as-code, а каждый разработчик должен уметь писать юнит-тесты к своему коду — ни один из них не вспомнил что это вообще такое. Только один подумал, что речь о лямбда функциях в питоне, и стал говорить что-то про них. Я даже почти хотела его взять, но увы, он забил писать тестовое задание.
UFO just landed and posted this here
основное — это интересно, архитектура, приходится решать очень сложные задачи, ну и с зп вы загнули, по вашему обычный разраб легко получает 500к?
UFO just landed and posted this here
У нас джун DevOps/SRE получает тысяч 70 канадских долларов в год, сеньёр тысяч 90-150. Люди более крутых грейдов (могут называться по-разному в разных компаниях, например, принципалы) получают ещё больше — это о крутых спецах. Лично я к их числу не отношусь. Я миддл, которая работает на сеньёрской позиции :)
Ещё ради спортивного интереса я проходила цикл интервью и получила оффер миддл бэкэнд разработчика (писать REST API на Flask/ORM/MySQL/Mongo/swagger), и там было меньше, чем на сеньёрской DevOps позиции.

Абсолютные цифры "у нас" мало что говорят. Насколько больше-меньше получают у вас девопсы по сравнению с разработчиками на тех же грейдах? У нас вот плюс-минус одинаково. Даже хантят на одни суммы хоть на сеньор девопса, хоть на сеньор разработчика. Тысяч 50-70 американских долларов в год.

Абсолютные цифры «у нас» мало что говорят. Насколько больше-меньше получают у вас девопсы по сравнению с разработчиками на тех же грейдах?

Зависит от стека. Более того, я считаю девопсов разработчиками, но инфраструктуры. Есть стеки, где разработчики получают больше, есть где меньше. Внутри девопсов тоже не одинаково, те же Golang/Kubernetes девопсы явно дороже других.

при этом "у вас" — это не то же самое, что "у нас" (применительно, я думаю, к любым странам/территориям).

Мозг могут рвать «везде», это скорее от руководителя и компании зависит. Умение писать на разных языках — это не дар, а нарабатываемый навык. Если человеку нравится учить языки и применять их в DevOps — почему бы и нет. Другое дело, что как правило, от программистов требуется более глубокое знание языка, библиотек и frameworks.

В некоторых странах DevOps больше или сопоставимо получает, чем разработчики

Так нормальный девопс и есть разработчик, только инфраструктурной части приложения, типа фронтэнд, бэкэнд, ML-инженер, DBA, и вот девопс. Что не так?
И там тебе не будут рвать мозг.

Зачем люди, не хотящие учиться, вообще нужны? Девопс это не эферемизм для админов, которые считают себя немножко лучше других, научившись писать баш скрипты, и прочитавшие пару книжек по terraform, запустившие кликанием мышки разок в жизни Google Kubernetes Engine, в сравнении со своими коллегами, всё ещё мышкатыкающими в MS AD,
UFO just landed and posted this here
UFO just landed and posted this here
К слову а то про что говорите называется SRE или Software Engineer ну или DBA или ML-инженер

Разница между DevOps и SRE в том, что первый с уклоном в в CI/CD, а второй в инфраструктуру как код. Но это в теории. На практике этим занимаются одни и те же люди, в смысле в одной команде ты делаешь пайплайны, в другой, например, экспортёры для Prometheus. И обеим специализациям нужно уметь в кодинг, или no hire. Сейчас нужны задачи по написанию операторов Kubernetes, по написанию Serverless функций по обслуживанию инфраструктуры. Погуглите термин ChatOps, и учите кодинг, если не хотите завтра оказаться за бортом:
И там тебе не будут рвать мозг.

Не получится так ничего
Ага это в целом даже не специальность, а методология для работы в команде).

Уже специальность благодаря хрюшам

Но по факту, хитрые работодатели пытаются заменить эту команду одним человеком оркестром который будет делать все, платя может на 20% больше.

Клёво же. Деньги это хорошо. Ну и не на 20%, имхо.
UFO just landed and posted this here
P.S. К слову согласно методологии, не должно быть отдельного человека который будет например, экспортёры для Prometheus делать

Нет разница в том что DevOps это методология.

Методология и прочий сферический Agile/Kanban/etc в вакууме отдельно, реальный рынок труда отдельно. В нашей и в куче других контор SRE это кто больше (но не исключительно) пишет тераформ, кубернетес операторы и лямбда функции для инфраструктуры, а DevOps это те, кто пишет врапперы вокруг тест кейсов, проектирует CI/CD пайплайны, соединяет в одно целое ops, dev и qa. Я работала и в качестве SRE(в других компаниях) и DevOps (сейчас и в других конторах). Мне больше нравится DevOps, т.к. не отвечаешь за продакшен, а отвечаешь за пайплайны и другую инфраструктуру для разработки, которые ночью и в выходные не нужны. Обычно DevOps может работать SRE, а SRE девопсом. Собственно, я могу работать и QA, и BackEnd разрабом. А вот одмин, который боится перегружать головку, нет.
То с работой все куда легче и вакансии в разы интереснее. Так что ещё вопрос кто остается за бортом

У нас (я в Канаде) вакансий админов уже вообще нет. Есть вакансии хэлпдеска, а люди без кодинг скиллов не нужны. Другое дело, что те, кто их клеймят их не имеют на самом деле, лол
UFO just landed and posted this here
Мне не нравится, что когда ищешь работу, мою специальность могут обозвать как угодно: DevOps, SRE, Build Engineer, Pipeline engineer, а сейчас у меня в тайтле Software Developer (DevOps), как это найти на линкедине или индиде вообще ХЗ, они мне сами написали.
А по факту есть люди-программисты инфраструктуры, со скиллами одминов, разрабов и QA, и это и есть моя специальность. Проблем с количеством офферов, когда я ищу работу у меня никогда не было, как и с тем, чтобы учить новые технологии. Почему Вы боитесь сложных задач я тоже не понимаю.
Специальность мне нравится, но не нравятся некоторые возможные задачи. Например, писать кубернетес операторы или лямбды, или чатботы, или тесты для бэкапов мне нравится, но мне не нравятся овертаймы, которые у админов постоянно и у SRE тоже частенько (если напишут кривой кубернетес оператор, который должен автоматически чинить продакшен).
UFO just landed and posted this here
Ничего сложного в том же кубере

Хм, как много патчей Вы писали для тех или других Kubernetes операторов?
Может быть, у Вас есть свой оператор, как pet project?

К слову вы не видели наверное какие интересные штуки лет 15 назад админы на перле писали. Там реально были иногда просто офигенные вещи. От которых не знаешь или плакать или восхищаться. И это все равно не делало их программистами. И не говорило о том что они умели программировать.

Мне тоже не нравится говорить «я умею программировать», это очень громкое заявление, если его сделает Ритчи, Керниган, или Гвидо, или Торвальдс, оно будет звучать достаточно весомо. Я предпочитаю считать себя говнокодером-инфраструктурщицей, но проблема в том, что большая часть людей на рынке DevOps/SRE/ops не умеет ничего даже отдалённо похожего.
Причём даже далеко не все backend разработчики знают то, что должны, в общем-то, знать, увы.

Считаю что писать yaml'ы

ХЗ, хз, в последнее время я пишу(пытаясь не говнокодить по-возможности) чаще всего на питоне и голэнге. С yaml'ами я работаю, конечно, но я их скорее создаю, в смысле, структуру yaml'ов для кубернетес оператора, например. А serverless/AWS lambda это вообще не про ямлы, как и chatops подход.

Кстати, terraform'овский диалект вполне себе вещь в себе. Круто, например, что он декларативный (как Puppet). Нет ничего плохого в том, чтобы кодить на декларативных диалектах, это вовсе не стыдная работа, а очень нужная, и требует достаточно глубокие знания, чтобы делать это хорошо и правильно.

Ну или например, берёшь ямлы из банального ансибла, и цепляешь их к утилите через питоновский модуль ansible-runner, и вызываешь из питон кода. Эта утилита вызывается, например, из test suite/CI. Может, это у Вас задачи такие, с «программированием только на ямле», не знаю :(
У меня, например, сейчас задачки по написанию пишу инфраструктурного тулчейна для тех, кто, собственно, пишет код продуктов.

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

«в наше время трава была зеленее», вы бы ещё перфокарты вспомнили и программирование в машинных кодах с помощью дырокола. Это звучит не очень профессионально, сорри

А админ сначала оценит задачу и если что спросит

И это тоже
UFO just landed and posted this here
Пофиг сколько времени это решение займет. Пофиг сколько денег компании потребует.

Тулчейн для разработчиков даёт очень много денег компании: представьте сотни разработчиков, и сэкономить им час-другой в день — это же офигенно!
А ещё, меня по-настоящему удивляет, что для кого-то написание кода на питоне и голэнге это что-то сложное, нестандартное и трата ресурсов работодателя бесцельная. Странно это. Вы в курсе, например, что сейчас считается правильным подходом автоматизировать ops работу написанием Кубернетес операторов, перенося в них все те инструкции, которые обычно компании имеют, как что-то пофиксить руками (вроде зайти в AWS консольку и ткнуть во что-то, или через ssh и запустить команды, если какая-то специфическая ошибка в логе/мониторинге)?
Мне кажется, люди, для кого писать на ямле легко и быстро, а на питоне(js, golang, итд — хотя бы на одном языке) сложно и долго, просто не нужны на рынке.
UFO just landed and posted this here
Меня удивляет что кто то не понимает что эти костыли и велосипеды нужно поддерживать. Как и любой другой код.

Конечно. А меня удивляет, что кто-то думает, что лапшу в ямле поддерживать проще, чем аккуратный компактный оператор в кубере или лямбда функции. Если же для кого-то на самом деле так, точно профессия была выбрана верно? Может, этому человеку лучше всё-таки в курьеры?

Вот назовите хоть одну причину, зачем это все тащить в go инфраструктуру и кубер?

Даже один час десятка-другого девелоперов, сэкономленные, позволят сэкономить компании тысячи долларов на длинной дистанции

Вот назовите хоть одну причину, зачем это все тащить в go инфраструктуру и кубер? Или зачем под подобные задачи делать кубер, го скрипты и прочую дичь?

А вы читали вообще что я писала? Например, автохилинг через кубернетес операторы: если прод упал ночью, пока кто-то проснётся, пока включит комп, пока запустит VPN, пока разберётся что произошло, и прочитает инструкции, контора может потерять кучу денег. Если есть инструкция, как чинить продакшен, её можно описать в кубернетес операторе.
Да, бывают случаи, не описанные там, но речь, собственно, не о них.
Или, например, юнит-тесты для инфраструктуры, функциональные для бэкапов и дизастер рекавери сценариев — я должна и это объяснять, зачем нужно?

Ещё вы почему-то проигнорировали насчёт chatops: а ведь сейчас девопсы очень часто пишут чат-боты для слака и жиры (на фронтэнде), или для github, gitlab, итд и с инфраструктурой на бэкэнде, и это экономит бэк, фронт, DBA разработчикам кучу времени.
Чат-боты Вы тоже собираетесь «программировать на ямле»?
UFO just landed and posted this here
Да одна только сертификация

Всегда сочувствовала тем, кто работает в госпараше. Как вы там боретесь с burn-out'ами? Не скучно?

К слову про автохилинг. Если у тебя есть проблема которая появляется несколько раз, ты знаешь причины и как её лечить. То какого черта. Почему ты не сделаешь так что бы она не повторялась? Это как раз стандартная работа админа/разраба.

Есть одна команда, она пишет бэк. Есть другая команда, она пишет инфраструктуру как код. Баги в беке фиксит команда, которая пишет бек, нет? А автохилинг это страховка продакшена от багов в беке. Как и CI/CD и автотесты — часть из которых (юнит) пишет бэк команда сама, а часть QA команда (функциональные, end2end, интеграционные итд)

То в конце месяца счет очень порадует руководство.

Так это проблема как раз программистов на ямле, за хайринг которых Вы так топите. Они не понимают как это всё работает, делают неподдерживаемую лапшу, т.к. кем-то считается, что не нужно обладать глубокими знаниями, чтобы программировать инфраструктуру. Как раз нормальный SRE будет чекать что там в биллинге — например, у него будет алерт в мониторинге на превышение бюджетов
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
ответ выше, в соседней ветке
Если есть инструкция, как чинить продакшен, её можно описать в кубернетес операторе.

обычно эта инструкция — перезапуск, что и без оператора решается обычной liveness пробой. А всё, что сложнее, это уникальные случаи, сломалось — починили — починили в коде так, чтобы оно больше не ломалось в этом месте. И тут без человека никуда. А если у вас в компании чинят код костылями и лейкопластырем — бегите оттуда.
Вы просто никогда не управляли достаточно сложной инфраструктурой с большим числом внутренних зависимостей
Когда в k8s запущена инфраструктура с большим числом внутренних зависимостей — это плохая архитектура, и нужно в первую очередь её чинить.
Очень спорная точка зрения. Микросервисы модная штука
Микросервисы модная штука
ну да. А что такое микросервисы? Это слабосвязанные сущности, их можно деплоить независимо. А если у вас зависимости — у вас монолит, просто разделенный на несколько приложений/контейнеров/etc, но монолит.
кубернетес монолит? А работать всё будет без etcd или без kube-proxy?
А работать всё будет без etcd или без kube-proxy?

Какое отношение эта фраза имеет к разговору выше? Окей, возможно вы меня не поняли, давайте я перефразирую. Вы говорите, что вам приходится писать k8s-операторы, чтобы не было проблем с деплоем приложений, состоящих из N контейнеров, связанных жестко друг с другом (т.е. которые нельзя деплоить в произвольном порядке). И далее называете такое — микросервисами. А я вам пытаюсь объяснить, что это — не микросервисная архитектура, это всё равно архитектура «монолит». Т.к. вся фишка микросервисов в том, что каждый из них имеет свой собственный релизный цикл, независящий от других. Захотел — обновил, захотел — перезапустил. Каждый микросервис сам поддерживает какую-то обратную совместимость с собственной прошлой версией через фиксацию соглашений, feature-флаги или как-то еще. Запускать свой монолит вы можете где угодно, хоть в k8s, но он от этого не перестаёт быть приложением, построенным по архитектурному принципу «монолит».
связанных жестко друг с другом (т.е. которые нельзя деплоить в произвольном порядке).

Я этого не говорила. Я сказала другое: что обычно в компаниях есть ранбуки, которые написаны для того, чтобы пофиксить те или иные типичные проблемы. Так вот, вместо того, чтобы поддерживать страничку в вики с ранбуком, лучше поддерживать k8s оператор, который сам применяет логику ранбука, а как и что он делает пояснить в комментах к коду.
Я этого не говорила.

Возможно я неправильно понял, объясните пожалуйста, что значит фраза
достаточно сложной инфраструктурой с большим числом внутренних зависимостей
к которой в продолжение были упомянуты микросервисы?
habr.com/ru/company/rebrainme/blog/527782/#comment_22972076
Порядок запуска обычно ни при чём (разве что для легаси какого). Речь о всяких стейтфул штуках, о репликации баз данных и брейн сплитах, о реакции на внутренние метрики микросервиса, которое оно отдаёт наружу, и которые как раз может обрабатывать оператор, меняя инфраструктуру, итд
Вы в курсе, например, что сейчас считается правильным подходом автоматизировать ops работу написанием Кубернетес операторов

У кого считается правильным? Не у всех считается правильным внедрять не то что Кубернетес, а Докер или другие контейнеры.


У кого-то считается правильным автоматизировать работу ops плэйбуками ansible, у кого-то рецептами chef, у кого-то простынями bash или вообще php :)


А в целом вы слишком категоричны. Никто не говорит, что внедрение того же Кубернетес бесцельная трата ресурсов компании. Но это и не однозначно выгодная инвестиция.


Я вот взял бы себе в команду "yaml-программиста", чтобы остальную команду вообще "devops" и ops вопросы мало касались. Пускай поднимает Кубернетес, пускай поднимает пайплайны и пишет докерфайлы. Даже операторы пускай использует, но только те, у которых тысячи звёзд на гитхабе. Самописные — нет. Кто в них потом разбираться будет, когда ему у нас станет скучно, а какая-то крупная компания предложит ему позицию разработчика операторов?


На рынке есть ниша для людей, которые легко и быстро пишут на yaml в рамках популярных продуктов, а на языках общего назначения только в случае крайней необходимости.

Я вот взял бы себе в команду «yaml-программиста», чтобы остальную команду вообще «devops» и ops вопросы мало касались.
пускай поднимает пайплайны и пишет докерфайлы. Даже операторы пускай использует, но только те, у которых тысячи звёзд на гитхабе. Самописные — нет.

Вы тоже не понимаете, что лапша в ямле ничем не лучше лапши в голэнге, питоне, js итд. Она не лучше в вопросах поддержки.
Ещё раз, компактный оператор на golang куда лучше километровых yaml конфигов, которые писал туповатый чел, боящийся «программирования»

Чем лапша на ямле хуже лапши на питоне или го?


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


Мой предел в экосистеме Кубернетес — это adhoc хелм-чарты, которые те же километровые ямлл-конфиги, вернее шаблоны для них с вырвиглазным синтаксисом гоу-шаблонизатора. Мне не место в индустрии, потому что я не хочу глубоко разбираться в личное время с очень узкоспециализированными знаниями и приобретать несильно востребованные в рамках моей основной специализации навыки? А на ямле и обычные конфиги приложений, и CI/CD, и конфигурация серверов, и облака, и куча всего ещё.


Особенно учитывая, что Кубернетес в обозримом будущем я использовать не буду. AWS или docker swarm — возможно, но k8s маловероятно — хлопотно это.

Чем лапша на ямле хуже лапши на питоне или го?

Ничем не лучше. Я сказала, что если задача решается километровым и невнятным, сложно поддерживаемым yaml-конфигом, и оператором на golang (python, etc) в несколько строчек, то нужно выбрать оператор на полноценном языке программирования. А со страхом писать не на ямле можно бороться, например, походами к психологу
На рынке есть ниша для людей, которые легко и быстро пишут на yaml в рамках популярных продуктов, а на языках общего назначения только в случае крайней необходимости.

а что значит "писать на yaml"?

UFO just landed and posted this here

Или обычными программистами, которым проще написать по туториалам ямл для задачи, сопутствующей основной, чем изучать новый язык и системное программирование на нём.

UFO just landed and posted this here

так конфигурятся или пишутся?
а то, получается, я умею писать на ямле, джейсоне, иксэмэле, ини (есть такое название?) и даже, о ужас, на плайнтексте.

UFO just landed and posted this here
а что значит «писать на yaml»?
фраза родилась из ситуации, когда ты вроде бы как сис.админ, автоматизатор и короче не программист, а тут наступил кубернейтс и вот ты месяц просидел в текстом редакторе и только yaml и правил.
И сделать нормально на 5-10 дедик серверах.

интересно, 5 — это уже не один, тут уже автоматизация нужна. Может быть им надо «нормально на AWS» или вообще как угодно, лишь бы «нормально», потому что у них просто бардак?

Возможно, простой перенос с "нормально на дедиках" привёл к "проблемы на AWS" или "очень дорого на AWS", потому что, например, условный ansible с AWS не очень дружит и вообще надо было архитектуру менять или хотя бы частично на managed сервисы/серверлесс переходить, а не поднимать rabbitmq кластер на ec2 просто чтобы письма слать асинхронно

а люди без кодинг скиллов не нужны.

ого, у всех уже поднят кубик, развернуты ci/cd и т.д.? До более-менее программирования типа написания операторов еще дожить надо (а может они и вообще не понадобятся, ну точнее возьмешь всё готовое и переписывать не будешь).

Ну, из открытой инфы зарплаты "девопсов" плюс-минус равны зарплатам разработчиков того же уровня. Это если иметь в виду под "девопсом" специалиста, основной обязанностью которого является инфраструктурное обеспечение процессов разработки и эксплуатации: развертывание инфраструктуры и приложений от локальной машины разработчика до продакшена, обеспечение их мониторинга, логирования и прочей обозреваемости, настройка пайплайнов и т. п.

UFO just landed and posted this here

А можно примеры? По моим представлениям обычный девопс получают примерно столько же как обычный разраб.

UFO just landed and posted this here
да девопс это и есть разработчик, просто разработчик инфраструктуры(infrastructure-as-code же). Всё зависит от стека. Возьмём веб бэк разработчиков — например, php/ разработчик вордпресс и разработчик Django — очевидно, что у второго зарплата выше.
У девопсов/SRE так же: chatOps, gitOps:kubernetes/golang devops'ы дороже, чем «программисты ямлом на ансибле»
Собственно, DevOps кубернетес стека точно дороже большинства веб-бэк и фронт разработчиков, но сипипишники и Scala разработчики точно дороже.
Если же мы возьмём «девопса» с опытом написания автоматизации на баше, то Django разработчик будет дороже.

Я несколько раз меняла свой стек:
Puppet > Puppet/OpenStack > Puppet/Ansible + Python / OpenStack > CI/CD (написание фреймворков для автотестов итд, дженкинсы, argoCD, итд) + Kubernetes + Golang + Python.
Сейчас тоже самое, только ещё serverless добавился
UFO just landed and posted this here
Возможно зависит от географии, но я беру европу, штаты, израиль.

Ну а в России — на одном уровне. Если ты senior — так хоть девопс, хоть php. Есть другая проблема — по факту сеньор может боятся менять работу, или идти на удаленку или че-то еще, и получать ниже, чем мог бы. А в этой же конторе может работать условный программист, который будет получать по рынку, потому что он на такую зп пришел.

Я вот по себе смотрю: 5-7 лет не работал с сетями и все знания улетучились. Я без жёсткого повторения не порисую строение пакета и разные бинарные/сокральные значения в tcpdump.
Да и за 7 лет второй родной язык забыт — могу понимать, но не говорить :(
А за 10 последних лет в сетях надобность резко сокращается, и в iptables и в прокси серверах и в баше и т.д.
С другой стороны на Амазоне столько штук, что можно докторскую делать по одной — обновления каждый месяц.


Не видно ещё Spark, Flink, Kafka, Hadoop, Storm, Redis, Nginx, DNS( Route53, Akamai, dyn ), CDN.
Блин чего только nginx или Akamai стоит.


Но все эти технологии не помогут человеку решать задачи или же общаться с другими командами или в команде.


Вообще сейчас за год можно сделать скачек и изучить многое. А если в команде есть тот, кто поможет...

А за 10 последних лет в сетях надобность резко сокращается
пока что-нибудь не сломается :) А тут надо понять без низкоуровневого доступа, что же именно сломалось, чтобы объяснить это поддержке облака ;)
Выключить fsync? Тут надо оговорку давать, что мол ускорить надо любой ценой. А то далеко не каждому человеку беспокоящемуся за данные такой метод в голову придет.
К чему вообще такие выдуманные ситуации? Отключить fsync плохое решение, нужно решать проблему в корне, иначе это «медвежья услуга», особенно для руководителя, который в этом не понимает. Была проблема, пришел «программист», выключил fsync и нету проблемы. Зачем тогда что-то еще делать, ведь все же работает? Так и останется оно с выключенным fsync до определенного момента…
нужно решать проблему в корне

Это не всегда работает. У меня был клиент у которого приложение постоянно убивалось из-за недостатка памяти, в ответ на ествественный совет докупить памяти он упорно отмахивался — "ну рестартанет, не проблема". Приложением было mysqld.

Хотя бы посмотреть план выполнения запроса, может там не хватает индекса и СУБД каждый раз перечитывает таблицу с диска.
synchronous_commit = off делает всю грязную работу за тебя, но ты рискуешь не всей базой, а только транзакциями за последние 0,6 сек.
Согласен, что простое общение как инженер с инженером больше даст представление о человеке, но все же надо иметь золотую середину. Не допрос же, но знать базу это обязательно
Про корневой протокол

Это что за протокол?
Новичок, не знающий Docker, спокойно в нем разберется, если у него есть понимание, что такое HTTP, TLS и сети

А какая взаимосвязь между http и docker? В смысле как знание http поможет в освоение docker?

Типичная задача: поднять публичное (читай — https must have) веб-приложения на Докере. Усложнение сам Докер должен удалённо управляться, на сервере есть только он по сути.

Типичная задача: поднять публичное (читай — https must have) веб-приложения на Докере.
и как знание http протокола поможет в данной ситуации?

Усложнение сам Докер должен удалённо управляться, на сервере есть только он по сути.
Что в вашем понятии управление докером?

Ну надо понимать что будут идти http запросы, знать про коды возврата, что должны слушаться 80/443 порты, настроить веб-сервера, повесить TSL и т. п.


Обращение к API Докер демона. Чаще всего CLI клиентом Docker. По дефолту обычно он стучится к локальному серверу, но может и к удалённому

Можно зайти на СО или в документацию и настроить. В гугле на медиуме будут статьи о том как надо «правильно» с командами.
А вот знания http не помогут кастомно соединить контейнеры методом построения своих неймспейсов, бриджей и цгрупп.

не проще к серверу по ssh подключаться? Ну и так-то думать, что все контейнеры в обязательном порядке крутят что-то связанное с http — в корне не верно

Вот точно не проще. безопасней возможно, но не проще.


У самого докер HTTP API.

много контейнеров торчат портами на локалхост забикс, женкинс
Я хочу услышать, чем отличаются TCP и UDP. Хороший спец ответит мне, почему критичные системы (например, Domain Name System) используют протокол без гарантированной доставки сообщений (UDP).

Вы ведь в курсе, что DNS и по tcp работает? И в большинстве случаев "критичные системы" работают таки по tcp ибо он гарантирует доставку. Например трансфер зон в dns не просто так работает по tcp ;)

Не только трансфер зон. Бывают случаи вида. «Тут работает, а тут не работает». У человека проблема была: TXT записи yandex.ru на одном хосте принимались нормально, на соседнем либо пусто, либо connection timeout, no servers could be reached. При этом TXT записи того-же google.com, на этом-же хосте, принимались на ура! Когда цепочка была проверена вплоть до корректности MTU, обратили внимание на скромненькую строчку выдаваемую nslookup… Truncated Retrying in TCP mode. И тут Штирлиц понял, что забыл открыть 53/TCP для этого хоста, на граничном файрволе.
Протокол DNS использует для работы TCP или UDP-порт 53 для ответов на запросы. Традиционно запросы и ответы отправляются в виде одной UDP-датаграммы. TCP используется, когда размер данных ответа превышает 512 байт, и для AXFR-запросов.

Гугловые TXT записи весили меньше 512 байт и спокойно приходили по UDP, а вот яндексовые уже не влезали.

Двоякое впечатление. Вроде по всем темам могу поговорить, по каким-то более предметно, по каким-то менее. Но увидев в вакансии в требованиях все названия даже откликаться бы не стал с фразой типа "за 30 лет в ИТ я с почти всем этим сталкивался, но кроме разработки по остаточному принципу, вернее по принципу" кто если не я поднимет и настроит"

У меня к статье то же недовольство и занудство, что и к 90% вакансий с упоминанием devops, и к лично вашему практикуму, собственно (к практикуму не только это, ну да ладно). Это все чисто инженерные навыки, которые к devops имеют весьма косвенное отношение. Перестаньте лепить ярлык devops на людей, которые просто админят все, что админится. Этим занимаются обычные админы, никаким devops тут и не пахнет. Бд тут вообще ни к селу, ни к городу. Лучше б про мониторинг и логирование темы включили, про гит и ветвление там, да хоть про облака, уж это куда более в тему.
Как вопросы на собеседование чисто админу, это вполне ок. Не без удовольствия пытался отвечать самому себе, подметил какие-то пробелы (закрывать я их конечно же не буду, пока мне не потребуется это в работе или еще где).


Разве тебе не любопытно было узнать, как работают все эти штуки, в которых ты тыкаешь курсором мышки?

Мне вот как-то задали подобный вопрос после собеседования, которое я завалил, я тогда ничего не ответил, потому что был ненужным никому студентом. Да, любопытно, а еще мне любопытны тысячи тем, про которые вы не спросили, а еще я готов эти знания подтянуть, иначе бы я и сам отказался, даже если бы мне сделали оффер, а то и вообще не пришел, если бы вы все эти требования включили в вакансию, а не преподнесли в виде сюрприза. Что это за обвинения людей в недостаточном любопытстве? Человек пришел собеседоваться на конкретную должность с конкретными требованиями, а его проверяют на совпадение интересов и бэкграунда.
Дело впрочем ваше, можете хоть просить кандидатов продать ручку. Не нравится только, что вы и других если не учите тому же, то подаете им на мой взгляд не самый лучший пример.

Полностью согласен.
DevOps он не только про администрирование.
Как знание http поможет DevOps оптимизировать процесс выкладывания продукта в AWS Marketplace?
Ещё есть куча компаний которые отправляют клиенту свой продукт «коробкой» или в магазин приложений.

Как-то слабо. А почему нет terraform, k8s, grafana, tsdb на худой конец? Где IPv6? И почему ни слова про http/2 или http/3. Последний, кстати, основан на UDP, так что не надо про критичные сервисы. А ещё не коснулись облачных провайдеров типа GCP или AWS (я уже молчу про специфичные типа Aptible).


А если серьёзно, то DevOps он может быть разный от компании к компании. Ваш список хорош, но потому что он подходит под ваши запросы. Ультимативным я б его всё-таки не назвал.

Последний, кстати, основан на UDP, так что не надо про критичные сервисы.

http/3 (если вы про quic) не основан на UDP а использует его в качестве транспорта, в статье же речь шла о "чистом" UDP. Разумеется, если ваше приложение само заботится о гарантиях доставки то хоть голубями можно это делать.

Я так понял, что позиция автора заключается в том, что IT-шник-универсал справится с чем угодно, включая devops, а человек, не имеющий базовых знаний, провалит любую нестандартную задачу, и поэтому не нужен.
Мне тоже так показалось, т.к. большинство вопросов охватывают более широкий спектр специализации, чем devops. Имхо, нормальный веб-разработчик на большую часть этих вопросов тоже ответит. Или админ линуха, или ещё кто-то из it-тусовки. Не только devops.
Вот только где в вопросах то самое «Dev»?
Всё, что перечислил автор, в той или иной степени (всесто докера были начальные системы полной вируализации, потом OpenVZ, lxc… и так далее) было «сисадминством» ещё когда я начинал в нулевые.
Скрипты для выполнения рутинных задач писали и раньше, только вместо ныне модного Python — на Perl, tcl, awk… Без разницы какой год, посмотрите на зоопарк утилит в Юникс-компатибильных системах.
При этом человек может ответить на все вопросы, а код писать очень плохой (используется эвфемизм к более распространённому эпитету), и толку от него как от девопса, того самого девопса, который может сесть с программистами бэкенда и вместе сделать как надо, будет ноль.
Я думаю, просто автор ошибся с названием статьи. Её следовало назвать примерно так «Базовые знания, которые надо знать, если ты работаешь с Linux и web».
Знает ли мой собеседник, что такое MX-запись, как работает spf или как работает DKIM.

А вы сами точно уверены что знаете как оно работает? Тогда скажите зачем человека расспрашивать о технологиях защиты от подлога электронных писем в SMTP, на вопросах о DNS?

Или как распарсить какой-нибудь access.log в Nginx средствами BASH. Чтобы человек рассказал про awk, про cat, про sort, про все, что помогает быстрой работе.

Так вы про Bash спрашиваете, или всё же про кучу других утилит/языков, к Bash имеющих такое-же отношение как и PowerShell?
А то «распарсить какой-нибудь лог» на чистом баше, это тот ещё кактус пожевать.

Новичок, не знающий Docker, спокойно в нем разберется, если у него есть понимание, что такое HTTP, TLS и сети.

Оказывается чтобы разобраться во внутриустройстве докера надо не о принципах работы ядра линукса (и интерфейсов им предоставляемых) иметь предствавление, а о нескольких протоколах из стека TCP/IP.

Я это на самом деле злорадствую, подражая тону статьи.
Ваш гайд ультимативный, но точно не по DevOps.

Вот такое же впечатление о статье сложилось. Вроде и по делу и вообще "базу нужно знать и помнить всегда", но такие нюансы портят впечатление о прочитанном.

Скажите, а гитхаб сосикателя вы смотрите?

Про айноды ещё надо спросить обязательно!

и разницу между ext4 и xfs, ага)
В чем то автор статьи прав, базу знать нужно, но я не считаю что вот прям как алфавит. На вскидку на таком собеседовании я половину ответов на вопросы досконально просто не вспомню. Про те же DKIM и spf записи. В современных реалиях такие вещи используешь на практике редко и значения в голове просто оседают остаточными знаниями. Так что я бы ожидал ответа максимум: «что эти записи создаются для того чтобы тот же gmail не отправлял письма с твоего почтового сервера в спам»

Или например про OSI — я помню что там 7 уровней, но на вскидку я их не назову и за что они отвечают.
К сожалению, наличие корректных SPF и DKIM записей на даёт гарантии, что Gmail не отправит ваше письмо в спам. Вероятность попадания в спам уменьшится. У больших бесплатных почтовых хостингов много критериев отсеивания спама, не связанных с этими протоколами.
Я вам более того скажу, наличие правильных SPF, DKIM и даже DMARC (без самой жесткой политики) вам не гарантирует, что Гугл поддельное письмо пошлёт в спам. Просто иконку к нему прилепит, что мол не мог гарантированно проверить отправителя (DMARC fail в хэдэрах). Без шуток.
Коллеги я утрирую теоретическое решение, по факту я с вами полностью согласен.
Надо знать все юниксовое, все Unix-like системы. Нужно уметь работать с Shell и Bash, знать основные команды. ls-ы всякие, mkdir и т.д.

По Linux спрошу, как заменить в файле строчки другими строчками. Или как распарсить какой-нибудь access.log в Nginx средствами BASH. Чтобы человек рассказал про awk, про cat, про sort, про все, что помогает быстрой работе.
ну разве что для джуна/мидла. Если бы мне задавали бы подобные вопросы на собеседовании — то я просто бы сказал, что дальше общаться нет смысла

Просто: нужно выключить fsync,
ну такое, может стоило бы включить логирование долгих запросов и посмотреть какие запросы, например, не используеют индексы? А то ведь от условного запроса вида select * from table1 where field1 like '%some text%' ни один fsync не поможет.

А еще разработчики любят писать
такое
image
и потом приходят к тебе и говорят, что ты криво настроил сервер и он все время тормозит. И из-за этого они не успевают во время закрывать тикиты
Если кандидат сказал бы мне что дальше общаться нет смысла из за моего заданного вопроса то он я ему сказал бы спасибо и пожелал ему удачи, причины возможно следующие:

1: Кандидат не знает ответ на вопрос, не хочет говорит об этом, проблема с признанием ишибки/незнания
2: У кандидата сильно большое эго он «недостоин» этого вопроса
3: Вместо того что бы спокойно ответить и объяснить почему этот вопрос не из его темы отвергает вопрос, проблемы со стабильностью, будет проблемно работать
4: Кандидат не понимает что в вакансии описан всегда идеальный кандидат, а люди приходят разные, кто то пишет на баше а кто то давно перепрыгнул это черту, мы знать не можем заранее что у вас с опытом.
Дело не в эго, и конечно корона с головы у меня не упадет, просто это сразу показывает уровень тех спеца и как правило и уровень фирмы в целом. И естественно дело не в конкретном вопросе, а скорее в уровне самого вопроса. Это из серии как у senior c/c++ developer задать вопрос вида — как объявить массив. Как думаете, что вам ответит на этот вопрос большинство кандидатов?

Таким образом я просто экономлю и свое и их время и все довольны. Не вижу смысла в подобных ситуациях тратить свое время. Все же на junior/middle/senior позиции вопросы и их уровень должны отличаться, имхо

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

Обычно в компаниях которые очень любят хитрые тесты по башу — творится бардак.
О нам нужно логи авком чекать, а заимплентируй нам Logstash за 20 минут в баше.

UFO just landed and posted this here
Вы когда то нанимали людей? Если в резюме все указывали реально что они умеют то мы бы жили в идеальном мире.
UFO just landed and posted this here
То есть для вас если человек вам сказал что «что дальше общаться нет смысла» после того как вы задали вопрос посередине собеседования это нормально?
Причем вопрос был по теме в которой он должен знать. Вы бы порекомендавали этого человека другу в компанию?
UFO just landed and posted this here
Когда так происходит, то дело не в самом вопросе, а в том, что этот вопрос — последняя капля. Лучше разойтись, и не факт, что одна из сторон — плоха.
А хотя бы 10k$ в месяц вы за это предлагаете? А то если нет — в большинстве случаев вы как работодатель получаете наижирнейший минус в тетради соискателя.
DevOps он разный как и его понимание :)
Что насчет овнерства процесса перехода на короткоживущие ветки в команде, в следствии изменений бизнесс процессов, только не для нового проекта, а для команды которая живет в долгоживущих бранчах уже года 4, а бизнесс процессы поменялись например пол года назад и до всех стало доходить, что дальше так продолжатся не может, а по другому они не умеют? (Не ну я не про тех, кто просто меняет компании и команды в этом случае, кому-то это все равно придеться разгребать)
Экономика разных облаков? Когда лучше в ажуре, а когда лучше в авсе? А когда лучше потратить месяц, но переехать и почему? А может on premise для этого проекта лучше?
Пол команды за ангуляр, а вторая половина за реакт, вставите свои 5 копеек? А с 11 явой в докер лучше? Настолько, что стоит переписать старый кусок с 8й или нет? А стоит ли вписать в проект эластик между бекендом микросервисов в (не суть, мезосе, кубере, да хоть сворме) и клиентским mssql? А вот если надо, что бы переводы на 12 языков шли вместе с релизом который едет по готовности сам по себе в любой момент, то как это может выглядеть? (сейчас оставание 4 недели после релиза, надо не больше дня — какие мысли ?)
Может и не во всех деталях, но в целом представление и понимание о таком надо иметь?
Как насчет умеющего вот это всё в сеть (я если че ex ccnp&ccvp, хоть и забил на ccie) но в конфлю\any wiki он доки не пишет? Возьмете такого?
А что кандидат думает про дейлики? А он кстати знает зачем груминг&планинг вон у тех ребят? А он кстати на них ходит\участвует? Я стараюсь спрашивать, а зачем он в них участвует (если) и как. (ответ на этот вопрос, это не плохо или хорошо, просто дает понимание о взаимодействии и опыте). А у него кстати опыт работы в выделенной команде девопсов на множество команд или он часть команды? А как больше нравится и почему?

Тестовое задание — вы собираетесь апнуть EC2 с продакшен постгресом, напишите письмо не более чем в 200 слов для своей компании, целевая аудитория письма — сапорт инженеры и лидеры команд.
Так долго можно продолжать и это все будет ни про сеть, ни про баш, ни про логгинг, ни про трейсинг ни про модель OSI.
Лично мне кажется, что эти моменты зря пропущены.
А вот для девопсов которые бывает из программистов конвертируются, мне кажется эта статья может помочь выявить стороны, которые стоит изучить :)
И еще я думаю, это прекрасно иллюстрирует то, почему джуниор девопсов не бывает. (где-то на хабре кстати эту мысль прочитал, спасибо тебе неизвестный мне автор).
— А с 11 явой в докер лучше? Настолько, что стоит переписать старый кусок с 8й или нет?
— Пол команды за ангуляр, а вторая половина за реакт, вставите свои 5 копеек?
это однозначно не компетенция devops инженера и он не должен знать ответы на подобные вопросы, имхо
Если с Ангуляром/Реактом как конкретными фреймворками я ещё готов согласиться, что это может быть не про девопса, то с Явой, а если быть точным, JVM в докере и приколами с настройкой работы памяти, сборщика мусора, необходимостью заставить эту богодельню уважать cgroup ограничения, проблемой перезагрузок и отдачи данных upstream/downstream перед «смертью» и прилагающимися приколюхами в sidecar в kubernetes pod, это очень даже туда.

Т.е. вы можете дать экспертную оценку что вот эти N строк из 1кк надо переписать с 8ки на 11ю и мы получим прирост в X% при запуске в докере?


Не верю ( с )

Я думаю, что важнее задачу поставить ребром и в Таймлайн проекта вставить. А сделать ее может и студент, программист или же девопс.
Но на вскидку таким вопросам будет дана неправильная оценка и проект может срок сорвать, без грамотно приложенной руки или глаза.

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

Мои примеры не для выставления оценки «хорошо\плохо» и тут нет «должен» или «не должен» знать. А для составлении представления об имеющемся опыте и знаниях. И это определенно не ограничиваетя переченем вопросов из этой статьи.
Это компетенции Senior DevOps с уклоном в архитектора.

Вот прямо хорошие вопросы!

Тестовое задание — вы собираетесь апнуть EC2 с продакшен постгресом, напишите письмо не более чем в 200 слов для своей компании, целевая аудитория письма — сапорт инженеры и лидеры команд.
Более прекрасного тестового задания ещё не встречал. Браво!
UFO just landed and posted this here

Мне кажется 90% разработчиков которые учились в университете на IT специальности должны ответить по тем сетевым вопросам что в топике. Что такое маска, IP, DNS, ISO уровни, ARP, RIP, это всё впихивается в 1 семестр. И остаточных знаний достаточно. Я вот читая статью и строча этот коммент вспомнил что это такое, хотя учил более 10 лет назад :D

Представьте себе, что там есть ещё и 127.0.0.2!

Да, да. А ещё, например, ping 127.1024, или там ping 1234567890 прекрасно работают! Впрочем как и любая другая утилита работающая с IP.

Я на хабре еще не видел статьи про «какие вопросы нужно задавать на собеседовании» с положительными комментариями по большей мере. Это наверное говорит о ОЧЕНЬ разнообразном подходе к этому вопросу.
Еще один раздает советы как нанять yaml программиста со знанием сетей и линукса…
DevOps тут и не пахнет.

P.S. За разбор логов вручную — в 2020 принято бить по рукам. Где централизация логов? Где SIEM? Где алертинг? Вот это все…
UFO just landed and posted this here
Так если потенциальный админ/devops/техинженер не знает как грепом пользоваться, то какой SIEM ему поможет?
Тот, в которых это вынесено в визуально-ориентированный интерфейс, например
Какой это админ/техинженер/devops, если в греп он не умеет, а за gui смотреть умеет? Оператор ЭВМ может быть хотели сказать?
Согласен со многими комментаторами, в статье про DevOps практически ничего. Местами совсем. В недавней статье про DevOps для рекрутеров куда лучше и качественней вопрос рассмотрен.

В быстром отборе резюме помогает правило: чем больше технологий я встречаю, тем лучше
Лучше чего? И на сколько? Человек может написать много разного, с которым он имел шапочное знакомство или вообще мимо проходил.

Хороший спец ответит мне, почему критичные системы (например, Domain Name System) используют протокол без гарантированной доставки сообщений
Хороший спец, который знает цену потерянной обратной связи с объектом в критичной системе, вам наверно не ответит.

Инженеру нужно понимать это хотя бы на базовом уровне — есть корневой центр сертификации, он подписал сертификат, и сертификат где-то используется.
Только вот зачем? Асимметричная криптография это не про то что кто-то где-то подписал сертификат и его используют.

Обычная виртуализация, виртуализация через гипервизор.
Виртуализация через гипервизор — это понятное дело. Бывает первого рода и второго. А что тогда обычная виртуализация? На чём она работает?

Скажи мне, как человек деплоит, и я все пойму. Он может деплоиться с помощью Helm в Kubernetes, Ansible, скриптами или чем-то еще самописным.
Что вы скажете о человеке, который пишет операторы для K8s и деплоит их через kubectl?

Допустим, база сейчас сидит и упирается в диск. И с ней ничего не сделать — больше сервер никто покупать не будет. Как сделать так, чтобы оно работало быстрее прямо сейчас?
Это точно вопрос к девопсу и вообще к техническому специалисту? Бизнес хочет чтобы его данные были целыми и сохранными, но не хочет за это платить. Чем это может закончится, очень хорошо знаю. Прям ну очень хорошо. Наверное не один такой. Почему из-за скаредности бизнеса надо грех на душу брать?

Просто: нужно выключить fsync, чтобы база не дожидалась записи с данных на диск, а как бы сохраняла.
Что уже тогда мелочиться? Давайте vacuum отключим и check point сделаем как можно реже, вообще перестанем писать WAL.

контейнерная и гипервизорная
Прошу простить меня за занудство, но контейнерной виртуализации (если мы имеем в виду стек CRI) не существует.

Есть ещё масса вопросов, но важен пока один. На какое вознаграждение по ЗП может рассчитывать кандидат после успешного прохождения такого отбора? Предполагаю, ответ на этот вопрос будет интересен многим читателям этой статьи.
Задавать вопросы весело, но мне интересно, как формируется уровень ЗП, а главное сама ЗП. Вот работает девопс на удалёнке. Не контейнеры же считать и не часы работы. У кого какие подходы с этим?
Спрос и предложения как раз и формируют. Хотя бывают и исключения, например, недавно предлагали 3к-3.5к в Киеве, сам я из Харькова. И это очень и очень мало.

Или еще бывают такого вида — зп определяется по результатам собеседования. Таких я сразу отправляю искать счастливчиков дальше
UFO just landed and posted this here

Как я собеседовал "девопсов":


  • составил картинку того, что у нас есть уже и чего нам хотелось бы через год-другой
  • спросил несколько вопросов как бы они решали те или иные задачи уже нами решенные "на коленках", выслушал, рассказал р наших способах, попросил сравнить, назвать плюсы и минусы этих подходов
  • спросил как бы решали задачи из списка наших хотелок

А фиг знает, что ещё спрашивать: знал бы — мы бы "девопса" не искали, сам бы всё сделал

Sign up to leave a comment.