Мини-интервью: Олег Чирухин

Из всех сравнений «что изменилось со времён JPoint 2017» нам больше всего нравится эта история. Год назад, когда мы брали на JPoint интервью у Олега, он был там одним из спикеров. А позже стал частью команды JUG.ru Group, и из интервьюируемого превратился в интервьюера: теперь в онлайн-трансляциях наших конференций он сам расспрашивает спикеров.

Между конференциями Олег занимается постами в нашем хабраблоге (вот свежий — «Производительность и рантаймы на JPoint 2018»), и взялся за это так, что возглавляет рейтинг пользователей на Хабре. Но при всём этом не забросил публичные выступления, и на новом JPoint представит доклад «Статус проектов OpenJDK: прошлое, настоящее и будущее Java». Похоже, Олегу придётся там проинтервьюировать самого себя!

А что за год произошло с DevOps, которому был посвящён предыдущий доклад Олега? Явление так разрослось, что мы даже запустили отдельную конференцию DevOops. Объяснять «что это такое» уже почти никому не нужно — и часть вопросов из нашего прошлогоднего интервью сегодня может выглядеть неактуальной.

Руслан: И мы продолжаем! С нами Олег Чирухин, DevOps-инженер из Сбербанк-Технологий. Дисклеймер: в интервью Олег будет выражать свою личную точку зрения, а не точку зрения компании Сбербанк-Технологии.

Олег: Только не DevOps-инженер, а архитектор. Но вот так сложилось, что я и DevOps тоже занимаюсь.

Руслан: Прошу прощения, просто у тебя доклад был про DevOps. Начнём как раз с этого. Как известно, DevOps — он, как Слава КПСС, вообще не человек. Что это такое, и в чем разница между DevOps и DevOps-инженером? А то на HeadHunter можно увидеть вакансии, которые называются просто «DevOps».

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

А есть DevOps как маленький человек, который должен всю эту тяжкую ношу нести. Да, это большая разница, две разных темы: живой человек и Слава КПСС.

Евгений: У нас на конференции среди спикеров есть другие любители DevOps — Кирилл Толкачёв (у которого целый подкаст об этом), Барух Садогурский. Но есть и Java-разработчики, которые о DevOps ничего знать не хотят. Поэтому хочется узнать: на этой конференции ощущаете ли себя среди единомышленников?

Олег: Ощущаю, да. Хотя люди не сильно топят за само слово DevOps, большая часть Java-программистов так или иначе этим занимаются. Про того же Толкачёва: у него с Александром Тарасовым был отличный доклад про Jenkins. Когда я мучился с Jenkins, прописал это проклятое зеркало, поступив не как нормальный человек, а как человек, у которого появилась интересная задача. Я бросился сразу писать своё зеркало, а минут через 30 понял, что забыл самое главное: погуглить, есть ли такое вообще. Первое, что нагуглилось — это доклад про Jenkins на митапе JUG.ru. Люди рассказывали именно ту тему, которая у меня крутилась в голове: просто Jenkins с менеджером пакетов нам не сильно нужен, а хотелось бы сделать Jenkins как сервис. А тут целый доклад готовый про это. У меня даже маленькая обида промелькнула, что кто-то сделал раньше меня мой доклад. Это к вопросу о том, насколько мы единомышленники: мысли одинаковые приходят в голову.

Евгений: Насколько знаю, у тебя с Jenkins вообще сложные отношения. А почему именно?

Олег: У меня большая любовь к системам, в которых есть самая свежая версия и есть все остальные. Как, например, браузеры Firefox или Chrome. Вот ты знаешь, какая у тебя версия Chrome? Каким браузером пользуешься?

Евгений: Пользуюсь Vivaldi, версию знаю. Но когда пользовался Chrome, его версию не знал, да.

Олег: Вот, у тебя есть самая свежая версия браузера. А очень часто, когда спрашивают людей, зачем им нужен Jenkins, они начинают рассказывать про версионирование артефактов, про то, как определить, какому коммиту какой старый билд был назначен. Лично мне в workflow моего маленького проекта всё это на фиг не нужно. И когда мне приходится ради, например, заготовленной инфраструктуры, тащить ещё и всю инфраструктуру Jenkins, мне неприятно, получается многогигабайтный монстр. В конце концов всё это закончится тем, что Jenkins выполнит всего две операции: скачает какой-то репозиторий с гита и всё скачанное отправит на вход Ansible.

Руслан: Так а не проще ручками?

Олег: Совсем ручками не проще. Нужен какой-то удобный интерфейс, нужна история того, что произошло. Но я не готов на это тратить 4 часа жизни в неделю, которые я сейчас трачу на этот Jenkins, не готов тратить ресурсы серверов… Блин, ты знаешь, сколько стоит написать скрипты вот эти… ох, не важно, я прям про это могу бесконечно рассказывать!

Руслан: Понятно, Jenkins зажёг.

Олег: У меня вообще горит от Jenkins.

Евгений: Ну то есть проблема не в том, что сам по себе Jenkins ужасен и не нужен, а…

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

Евгений: То есть идеальной ситуацией было бы, если бы был Jenkins, но кроме него, был более простой инструмент с очень узким кругом задач?

Олег: Да-да-да. В идеале это было бы так: допустим, ты пишешь свой очередной Hello World, продумываешь, какая архитектура развёртывания деплоймента ему нужна, как он будет толкаться до передней линии обороны. Потом ты одной кнопочкой говоришь «Так, а теперь разверни мне инфраструктуру для этого всего», у нас там есть 10 заготовленных стандартных инфраструктур, и для разных проектов они будут разные, очевидно. Как-то так.

Да, с моей точки зрения, в Jenkins есть огромная проблема. Чтобы установить плагин, надо все перезапустить. И у них на сайте огромный «плач Ярославны», который показывает, что это не я не дочитал документацию до конца, и не знаю как обновить плагины без перезагрузки, а они сами плачутся и даже начали оправдываться. Я могу про это бесконечно рассказывать.

Евгений: Возвращаясь к DevOps: у вас доклад с посылом, что многие называют Java тормознутой, потому что без понимания DevOps не умеют её готовить, пользуются устаревшей инфраструктурой. А вызвало ли это у части зрителей негативную реакцию «Нет, я всё знаю лучше, Java тормозит, и вообще вы мне рассказываете о работе админа, пусть они этим занимаются».

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

Руслан: Я задам последний вопрос. Ты в Сбертехе, система довольно-таки здоровая, вы там используете in-memory. Ты как архитектор насколько ощущаешь масштаб всей этой истории с терабайтами оперативной памяти?

Олег: …6 тысяч серверов. Да, я их ощущаю. У тебя когда нибудь было столько?

Руслан: У меня нет.

Олег: И у меня никогда не было. Я раньше думал, что 100 серверов для БД — это край вообще. А тут мне рассказывают про десятки тысяч транзакций, тысячи серверов, всё это надо как-то админить, писать для этого код, специальный фен-шуй. Да, размах ощущается и поначалу кажется, что люди с этим не справятся, но, похоже, они справляются.

Руслан: Ну, у меня переводы с карты на карту работают, да.

Олег: Ну если чо, приходи в то место, где открывал эту карту…

Руслан: Хорошо, Олег. Спасибо большое!

Tags from the story