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