Как стать автором
Обновить

Разрабы становятся админами, а админы — разрабами. Интервью с инженером Uber, где разделение исчезло совсем

Время на прочтение7 мин
Количество просмотров16K
Всего голосов 37: ↑30 и ↓7+23
Комментарии23

Комментарии 23

Сейчас невозможно админить не программируя, поэтому если уж не программисты, то как минимум мастера-скриптологи уж точно.
Опытный админ, который не пишет код — это просто продвинутый эникейщик :)
Что за категоричность? Помимо компаний, так или иначе занимающихся разработкой ПО, есть и другие. Более того, просто использующих готовое гораздо больше! И там тоже нужны админы. Кто настроит сеть в офисе? Домен? Впн, фалообменник, телефонию, печать, видеонаблюдение, СКУД, мониторинг? Да миллион мест для приложения рук и головы.
За более чем 10 лет мне не приходилось программировать. Батники, баш скрипты и powershell не в счет.
А чем тебе bash/powershell не программирование? Снобизм?
Тем же что и батники.
Я говорю исключительно про администрирование. Пишется обычно несколько строк для решения конкретной задачи. В большинстве случаев даже не пишется, а гуглится и правится под себя.
Максимум что я делал — обход дерева директорий и удаление файлов по маске старше определенного времени. Строчек 15 вышло.
Я программировал в институте и после сам пытался «войти в айти» с python и php — задачи решаемые программированием в админстве и рядом с этим не стояли.
И вообще, тут коммутатор новый приехал с портами QSFP+ 40Гбит/сек — пойду погоняю на тестах, раньше ничего больше 10 не приходилось в руках держать.
Зачем мне ваше программирование?..
Я вот тоже работаю не в компании разрабатывающей ПО. И занимаюсь исключительно системным администрированием, без работы с телефонией, печатью, видеонаблюдением и СКУДом. Конечно, я для всего этого выделяю инфраструктурные ресурсы, но непосредственно этим занимаются отдельные, заточенное под оное люди.

В моём случае много скриптинга на повершелке, потому что:
1. Собрать нужный отчет с систем виртуализации vmware и hyper-v. много систем банально без vcenter'ов и vmm
2. Актуализировать учетные записи в AD на основе данных из учетных кадровых систем. Плюс отчеты по учеткам, группам. Не руками же мне править и данные выписывать.
3. Развернуть виртуальные машины в нужной конфигурации с нужным ПО. собрать с них отчеты о состоянии, ПО, конфигах. разлить специфичную настройку здесь и сейчас.
4. Собрать информацию по почтовым ящиками в Exchange. Почистить их, отключить, выгрузить.
И многие другие вещи по мелочи и нет.

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

И в догонку пара вопросов:
Как много классов в ваших программах на Powershell? В какой IDE разрабатываете, какую CVS используете? Используете MVC? Регулярно проходите code review?
По классам — свои почти никогда.
ISE, VSCode.
GIT, GITHub
Нет
Выстроенного процесса нет, но стараюсь смотреть код моих бойцов прежде чем он начнет работать там где это может нанести вред.

Я ж и говорю, не программисты, а мастера-скриптологи. :)
Ну то есть в целом вы согласны что программирование в системном администрировании несколько отличается от того чем занимаются программисты на полный рабочий день?
Я могу на питоне написать программу, которая будет брать кадровую информацию с разных кадровых систем, класть её в свою БД, потом из БД пушить изменения в AD по набору правил или по запросу из вебинтерфейса. Эдакий IAM.

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

Почему в первом случае я программист, а во втором нет?
Да программист вы, программист.
А вот я таким себя не считаю.
Как много классов в ваших программах на Powershell? В какой IDE разрабатываете, какую CVS используете? Используете MVC? Регулярно проходите code review?

MVC в администрировании, ага
А вы дискуссию читали? Я как раз и утверждал что программирование в администрировании сильно отличается.
Я как раз читал, просто вы взяли набор вещей и паттернов из интернетов и начали спрашивать их у админа который говорит, что занимается программированием.
Программирование разное бывает, я вполне верю что он что-то программирует, но при чем тут MVC?

Скриптигн, программинг, тестинг и конфигуринг — разные вещи, со своей спецификой. Как спринт, марафон, физ-ра и споритвное ориентирование. Во всех категориях случается бегать ногами, но подходы отличаются. Причем они крайне хреново совмещаются друг с другом.

Сначала у них БД прыгали (mysql -> postgresql -> mysql), теперь вот разработчики с админами. Интересно кто будут следующими? Аналитики с тестировщиками? :)

тестировщиков кстати тоже нет, совсем забыл про это упомянуть :)

Желание запихнуть внутрь команды разработчиков ещё и саппорт 24/7 понятно. Подходящую риторику и мифологию вместо ITIL для этого тоже придумать не сложно. Не понятно как они на такое ведутся? Вроде ж айтишники умные люди.

НЛО прилетело и опубликовало эту надпись здесь

Тоже этот момент очень удивил. Мы добавили бесплатную нагрузку, и почему то люди начали уходить.

Быть докой во всем все равно не хватит жизни. Это у эффективных менеджеров может быть красиво все выходит, что Вася и жнец, и жрец, и на дуде игрец. По факту рабочее время и голова у Васи не резиновые. Прибавил в одном, упустил в другом.
Поэтому, да, можно (и иногда нужно) подтянуть азы смежной области, расширить кругозор (тут, вы нам америку не открыли), но быть в ней наравне с узким специалистом — это популизм чистой воды, который не перестают лить в уши доверчивым гражданам, в том числе руководителям более высокого порядка.

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

Про ответственность все понятно, и без скрещивания разработчика с админом, у разработчика есть своя сфера ответственности, те кто этого не понимают всю жизнь сидят на попе ровно (день прошел и черт с ним).
И ваш посыл я тоже понимаю — отвечать в целом за продукт, а не кивать друг на друга (это твой код кривой, нет это твой кривой контейнер виноват). Вопрос в пределе скрещивания и решать стоит для конкретного проекта. У вас — так, у нас — по-другому. Кто вам нужен на поддержке дев-недоадмин, админ-недодев, недодев-недоадмин и тп комбинации. Сколько он будет стоить и сколько будет стоить решение или нерешение им проблем. Это тоже ответственность руководителя, принявшего решение как и кем закрывать вопрос с поддержкой.
Я ваше мнение в статье прочитал, услышал, узнал, что бывает вот так, как вы рассказали. Для себя лишний раз уяснил, что нет универсального решения. Опасения свои привел комментом ранее, потому как сталкивался с печальным опытом — оголтелыми любителями наводнить компанию только универсалами.
Хорошо, что у вас ваше решение работает. Успехов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий