Расшифровка:
Азат Хадиев: Здравствуйте. Меня зовут Азат Хадиев. Я разработчик PaaS направления Mail.ru Cloud Solutions. Со мной здесь Павел Селиванов из компании Southbridge. Мы находится на конференции DevOpsDays. Он здесь выступит с докладом о том, что с Kubernetes можно построить DevOps, но скорее всего у вас ничего не получится. Почему такая мрачная тема?
Павел Селиванов: Она на самом деле не мрачная. Она о том, что многие проблемы в нашем сообщества пытаемся решить с помощью технологий. И причём мы стараемся решать с помощью технологий достаточно однобоко. Kubenetes тот же самый — это штука, за которую отвечают, можно сказать, что Ops. Но у нас есть прекрасное понятие DevOps инженер. Вот за Kubernetes отвечает DevOps инженер. При этом… Типа вы вот сделайте Kubernetes, а Dev ребята вообще не в курсе всех этих кубернетесов, не в курсе, что он позволяет делать — и всё для них живёт точно так же. И это несмотря на то, что Kubernetes содержит в себе готовые решения, готовые инструменты для того, чтобы с помощью этой технологии растягивать этот DevOps подход, общение между Dev и Ops. Мы очень мало эту возможность используем. За счёт того, что мы даже текущие структуры переводим на все эти инструменты DevOps — Docker, Kubernetes, облака и так далее — мы эту ситуацию усугубляем ещё сильнее. И инструменты начинаем использоваться не так как они задумывались. И вокруг всех этих технологий строятся просто страшные костыли.
Азат Хадиев: Понятно. Чувствуется, что тема обширная. Как ты думаешь, как наиболее распространённая проблема у компаний сейчас? С Kubernetes.
Павел Селиванов: C Кубернетесом самая распространённая проблема — это отсутствие компетенций. В IT это распространённая проблема. Всегда не хватает специалистов. Всегда не хватает компетенций. А сейчас с Kubernetes компетенций не хватает. А при это ещё стопроцентно готовых решений на рынке, которые бы позволяли получить себе Кубернетес, но при этом не обладать необходимыми компетенциями, их ещё на рынке откровенно мало. А те, что есть, они все вызывают какие-то вопросы. Постоянно с Кубернетесом мы находимся в поиске людей, которые в этом разбираются. Пытаемся разработку под это подтянуть.
Азат Хадиев: А учитывая текущий кадровый голод в IT. Который всегда был. И сейчас есть. Как ты думаешь, как в этих условиях жить? Какие есть лайфхаки?
Павел Селиванов: Лайфхаки. Во-первых, с точки зрения облаков лайфхак выглядит так — а давайте вы нам отдадите часть своих компетенций. И мы их заберём себе. И будем заниматься этим внутри себя. И это всё хорошо. За исключением того, что важно понимать для тех, кто этим пользуется… На самом деле прекрасный момент… Но важно понимать, что отдавай часть своих компетенций куда-то облаку или провайдеру, мы в ответ получаем универсализированное решение. Грубо говоря, у нас есть база данных, которая выполняет очень специфические вещи, и она была очень специфично настроена. Отдавая эту базу данных в облако, мы, конечно же, можем уволить админа, который раньше заниматься кластерами баз данных — тот же Amazon или Google сделает это за нас. Но при этом тот же Amazon или Google не позволят нам чётко настроить нашу базу данных. Крупные проекты, крупные компании — они в любом случае приходят к тому, что на каком-то этапе своей жизни использует облачные решения, а потом в любом случае возвращаются к тому, чтобы забрать компетенции обратно себе, потому что требуется более специфичное.
Азат Хадиев: Универсальные решения — плохо или на их базе можно больше построить?
Павел Селиванов: Нет, универсальные решения — это точно не плохо. Универсальные решения — это хорошо. Просто универсальные решения … универсальные. Тут важно понимать. Это как взять общий скрипт… Если ты вокруг этого общего скрипта, общего применения сможешь построить всю-всю логику работы компании — то это клёво. А если логика работы другая, но ты берёшь это универсальное решение, универсальный скрипт — и начинаешь, как сову на глобус натягивать, это плохо. А в самом универсализме нет ничего плохого.
Азат Хадиев: Если админ этот у тебя уже работает, дело-то не в его увольнении. Он просто сможет больше делать.
Павел Селиванов: Да, забрать у него рутину отдать их куда-то кому-то, чтобы их делали где-то там. Это безусловно хороший подход. Важный момент тут подходит ли это стандартное решение под конкретный кейс.
Азат Хадиев: Просто исходя из своего опыта вот вижу, что многие компании занимаются одним и тем же. Они настраивают кубернетес кластер, думают о его масштабировании. И все эти операции очень повторяемые.
Павел Селиванов: Да, безусловно. Тем более, что если мы возьмём конкретно Кубернетес, тут есть такой момент, что глубоких, хороших знаний сейчас по Кубернетесу сейчас на рынке реально мало. И Кубернетес это такой конструктор гигантский, что если вы его взяли в компанию, будьте готовы брать вместе с ним инженера, который на фултайме будет всем этим заниматься. И это дорого. И такого инженера ещё попробуй найти. Если я буду говорить про себя, я не очень люблю какие-то клаудные решение, потому что я достаточно хорошо и глубоко пониманию, как работает Кубернетес. И мне часто в клаудах как раз и не хватает какой-то функциональности, которую я запрашиваю — а мне говорят «Нет, нельзя». Ну, в таком случае извини, но я могу лучше, чем клауд. Но в то же время если у вас нет инженера на fulltime, нет желания платить за этого инженера, который тянет Кубернетес, и вы ему постоянно платите много денег, чтобы он просто экспериментировал, то cloud — это просто хорошее отличное решение. Потому что хотя бы там сидят ребята, которых провайдер сам уже нахантил. И они разбираются в том, что они делают. И те базовые вещи, которые нужны вам на каждодневной основе, там есть.
Азат Хадиев: Как ты думаешь по поводу текущего состояния Kubernetes? Что с ним будет через пять и через десять лет?
Павел Селиванов: Хороший вопрос. Я просто знаю, что у нас происходит в комьюнити по этому поводу. Некоторые люди верят, что кроме Кубернетеса ничего не останется. Та ситуация, которая давно произошла с линуксами. То есть вне Linux есть люди, которые живут на BSD, скорее всего у них очень специфичные задачи. Есть люди, которые работают под Windows — windows-сервера — скорее всего, у них тоже есть специфичные задачи, или есть просто компетенция в этом деле и они не готовы оттуда уезжать. В любом случае, стандарт в нашей сфере — это Linux. Вот есть мнение, что Kubernetes станет таким же стандартом де-факто, и кроме Кубернетеса ничего не будет. Кубернетес будет управлять не только приложениями, их разворачиванием, деплоем, масштабированием. Вообще всем управлять. Сейчас уже спрашивают: «А можно ли в Kubernetes запихнуть базу данных». Я обычно говорю о том, что тут вопрос не в Кубернетесе, а в Docker. Если вы готовы, что ваша база данных будет работать в контейнерах, как она будет работать. Мне отвечают: «Не-не-не, подождите. В контейнеры не нужно. Нужно в Кубернетес. Мы её привьём к ноде. То есть всё будет, как у нас есть сейчас, только всем этим будет управлять Кубернетес.» И это хорошая идея на самом деле. То есть Кубернетес — это такая штука, когда можно прийти в компанию, если в компании есть Кубернетес и на нём построенные процессы, то человеку, который в этом разбирается — ему достаточно посмотреть пару дней, чтобы сказать: «Я готов вас поддерживать. Полностью. Целиком. Я понял, как у вас что работает». В отличие от подходов без Кубернетеса — тут одни костыли запихали, тут другие костыли. Тут Ansible, тут Terraform. Кем-то всё это написано, и надо полгода, чтобы разобраться. Вот. Так что станет ли Кубернетес стандартом де-факто, я не знаю. На текущий день он выглядит гораздо амбициозней и уверенней, чем решения, которые вокруг него есть.
Азат Хадиев: Ну, сравнение с Linux достаточно смелое. Он-то работает на одной машине — и всё. А Кубернетес работает на многих машинах. Сразу же возникает миллион вариаций, причин. Да, это смело. Просто если учитываться, что есть конкуренты у этой парадигмы. Например, Serverless. КУбернетес в опасности при таких конкурентах?
Павел Селиванов: От Serverless… (смех) Serverless — мы же всё-таки пониманием, что сервера всё-таки есть. Я вот недавно слышал по этому поводу доклад. Там человек сказал, что сервера всё-таки есть — и это облако. Но мы всегда должны понимать, что облако — там тоже сервера есть. Там стоят реальные железные сервера, стойка, и вот они где-то установлены. Вот это облако. Поверх этого существует Serverless, где серверов «нет». Потому вопрос победит ли Serverless Kubernetes? Мне кажется, что Serverless уедет в Kubernetes. Для провайдеров, которые предоставляют Serverless, Kubernetes очень удобная платформа, чтобы это предоставлять. Да, возможно, в какой-то момент мы перестанем говорить о Кубернетес в принципе, как о рядовой разработке бизнес-приложений. Но где-то в глубине, у провайдеров и инженеров будет стоят Кубернетес, где всё это будет реализовано.
Азат Хадиев: Чуть другая тема. Есть такое понятие fullstack-инженер. Что ты о них думаешь? Они вообще существуют?
Павел Селиванов: Эм… Fullstack-инженер… Ну, мне кажется, что стоит разграничить эти вещи о том, что… Знаешь, есть такая штука, как T-shaped people. Нужны ли такие люди в сегодняшней индустрии? Да, нужны безусловно. Нам нужны люди, которые имеют широкий кругозор, но при этом они специалисты в какой-то узкой своей области. И вот тут Fullstack-инженер то же самое — человек, который делает всё. Начиная от разработки фронтенда, тестирование, бэкенд, сервера и всё остальное. Я не верю, что в крупной компании этим может заниматься один человек, не имея узких специализаций по каждому из параметров. Но при этом просто имея узкую специализацию, типа вокруг этого что происходит я ничего не знаю — это тоже в современном мире не работает. То есть здесь бы я сказал… слово Fullstack я бы отбросил. Нам нужны инженеры очень. Нужны нам DevOps. Чувствую, мы скоро пересмотрим этот момент. И они будут не нужны.
Азат Хадиев: Можешь раскрыть?
Павел Селиванов: Мне кажется, что мы в индустрии придём к тому, что эти роли Dev и Ops, они скоро отпадут. Если нам нужны специалисты и мы хантим… Нужен разработчик такой-то, нужны администраторы такие-то, нужны DevOps-инженеры — теперь они у нас появились, сейчас ещё появятся продакшн-инженеры, SRE-инженеры. Хотя на самом деле то, что нам нужно — это инженеры, которых мы хотим на работу взять. Бэкграунд по большому счёту не важен. Потому что… Например, SRE говорит, что проблемы инфраструктуры они софтварные всегда. А что… Давайте брать разработчиков — с точки зрения, что разработчик это инженер — сажать их в отдел сопровождения и они будут решать эти проблемы точно так же, как они решают бизнес-проблемы с помощью кода, с помощью инженерии, как таковой.
Азат Хадиев: А с этой точки зрения… Как собеседовать таких инженеров?
Павел Селиванов: Ох, хороший вопрос. Он, наверное, находится уже за гранью того, что я понимаю в этой жизни. Но я просто пример бы привёл. Он к собеседованию отношения не имеет. Это про нашу систему образования в России. В IT мы знаем, что наша система образования в России для IT-мира очень сильно устарела, она не такая, как должна быть. Я говорю в среднем про Россию необъятную — и что там происходит. Выпускаются люди, которые абсолютно неготовы пойти завтра же после выпуска пойти в веб-разработку, в технологическую компанию. И типа это плохо. Мы обучаем их каким-то странным вещам, хотя вроде бы должны учить разрабатывать их под Android, под iOS, как пользоваться Git и всем этим вещам. На самом деле как будто бы нет. Институт — это такое время, когда за тебя по большей части платят родители. За всю твою жизнь. И ты можешь посвятить пять лет своей жизни, чтобы углублённо учиться. И изучать весь этот T-shaped. Когда ты можешь в институте изучать, что такое система контроля версий, какие бывают паттерны разработки, как это всё дело тестировать, какие бывают базы данных, балансировщики. А когда ты уже идёшь работать, ты начинаешь углубляться в какой-то конкретной области. И таким образом мы получаем инженеров. И вот наша система образования в России гораздо ближе к этой правде, чем нам кажется. Нам дают хорошую математическую подготовку, дают хорошую алгоритмическую подготовку, нам дают какое-то представление о языках программирования. И про собеседование мне кажется что-то близкое этому. Инженеров нам надо собеседовать. Нам нужна верхняя часть буквы T у T-shaped. Потому что вертикальную черту буквы Т он приобретёт.
Азат Хадиев: Да, интересно. Мне пять лет после института казалось, что моё образование было какое-то странное и неадекватное. А потом уже по ходу работы, когда задачи стали глубже, проекты больше, я осознал, что нет, меня учили очень важным вещам. Павел, спасибо тебе. Было очень интересно послушать твои ответы. Послушаем твой доклад.
Павел Селиванов: Спасибо вам.
Автор: aSkobin