
Výklad:
Azat Khadiev: Dobrý den. Jmenuji se Azat Khadiev a jsem vývojář v oblasti PaaS společnosti Mail.ru Cloud Solutions. Dnes je se mnou Pavel Selivanov ze společnosti Southbridge. Jsme na konferenci DevOpsDays. On zde vystoupí s přednáškou o tom, že s Kubernetes lze vybudovat DevOps, ale pravděpodobně se vám to nepodaří. Proč je téma tak temné?
Pavel Selivanov: Není to ve skutečnosti temné. Je to o tom, že mnohé problémy v naší komunitě se snažíme řešit pomocí technologií, a přitom se to snažíme dělat dosti jednostranně. Kubernetes je právě taková věc, za kterou odpovídají, dá se říci, Ops. Ale máme skvělý pojem DevOps inženýr. Ten odpovídá za Kubernetes. Přičemž... Říkají vám, abyste udělali Kubernetes, a vývojáři vůbec nevědí, co vše kubernetes nabízí — a přesto pro ně všechno funguje tak, jak bylo předtím. A to navzdory tomu, že Kubernetes obsahuje hotová řešení a nástroje, které umožňují s touto technologií rozšiřovat přístup DevOps a komunikaci mezi Dev a Ops. Tuto možnost velmi málo využíváme. Protože i stávající struktury převádíme na všechny tyto nástroje DevOps — Docker, Kubernetes, cloud atd. — situaci jen zhoršujeme. A nástroje začínáme používat jinak, než byly zamýšleny. A kolem všech těchto technologií se staví opravdu děsivé kostry.
Azat Khadiev: Rozumím. Je jasné, že téma je obrovské. Co si myslíš, jaký je nejběžnější problém firem nyní? S Kubernetes.
Pavel Selivanov: Nejčastějším problémem s Kubernetes je nedostatek kompetencí. V IT je to běžný problém. Vždy chybí specialisté. Vždy chybí kompetence. A teď s Kubernetes chybí kompetence. A přitom je na tržišti málo hotových řešení, která by umožnila získat Kubernetes, ale přitom nemít potřebné kompetence. A ty, které existují, vzbuzují otázky. Stále hledáme lidi, kteří se v Kubernetes vyznají. Snažíme se vývoj přizpůsobit tomu.
Azat Khadiev: A vzhledem k aktuálnímu nedostatku pracovních sil v IT. Který tu vždy byl. A teď je. Co si o tom myslíš, jak se v těchto podmínkách žít? Jaké jsou tipy a triky?
Pavel Selivanov: Tipy a triky. Za prvé, pokud jde o cloudová řešení, tip vypadá takto — co kdybyste nám předali část svých kompetencí. A my si je vezmeme. A budeme to řešit interně. A to je fajn. Kromě toho, že je důležité pochopit pro ty, kdo tímto disponují… To je ve skutečnosti skvělý moment… Ale je důležité si uvědomit, že když předáváte část svých kompetencí do cloudu nebo poskytovateli, dostáváme univerzální řešení. Zjednodušeně řečeno, máme databázi, která vykonává velmi specifické úkoly, a byla velmi specificky nastavena. Když tuto databázi dáme do cloudu, samozřejmě můžeme propustit administrátora, který se předtím staral o databázové clustry — totéž udělá za nás Amazon nebo Google. Ale Amazon nebo Google nám také nedovolí přesně nastavit naši databázi. Velké projekty, velké společnosti — v každém případě se dostávají k tomu, že v určitém okamžiku používají cloudová řešení, a poté se vždy vracejí zpět k tomu, aby si vzali kompetence zpět, protože je potřeba větší specifikace.
Azat Khadiev: Jsou univerzální řešení špatná, nebo lze na nich postavit více?
Pavel Selivanov: Ne, univerzální řešení rozhodně nejsou špatná. Univerzální řešení jsou dobrá. Jen univerzální řešení… jsou univerzální. Je důležité to pochopit. Je to jako vzít obecný skript… Pokud kolem tohoto obecného skriptu, obecného použití dokážeš postavit celou logiku fungování firmy — je to skvělé. Ale pokud je logika fungování jiná a bereš to univerzální řešení, univerzální skript — a snažíš se to natáhnout, jako sova na glóbus, to je špatné. V samotném univerzalismu není nic špatného.
Azat Khadiev: Pokud máš administrátora, který už pracuje, problém není v jeho propuštění. On toho prostě zvládne víc.
Pavel Selivanov: Ano, vzít mu rutinu a předat ji někomu jinému, aby to dělali tam někde. To je bezpochyby dobrý přístup. Důležitý moment je, jestli to standardní řešení vyhovuje konkrétnímu případu.
Azat Khadieva: Z prostého pohledu ze svého zkušenosti vidím, že mnoho firem dělá to samé. Nastavují Kubernetes klastr a přemýšlejí o jeho škálování. A všechny tyto operace jsou velmi opakovatelné.
Pavel Selivanov: Ano, bezpochyby. Zvlášť, když vezmeme konkrétně Kubernetes, je tu takový problém, že na trhu je nyní opravdu málo hlubokých a dobrých znalostí o Kubernetes. A Kubernetes je takový obrovský konstruktér, že pokud ho vezmete do firmy, buďte připraveni vzít si spolu s ním inženýra, který se na plný úvazek bude vším tímto zabývat. A to je drahé. A takového inženýra ještě zkuste najít. Pokud mluvím o sobě, nemám rád žádná cloudová řešení, protože dost dobře a hluboce rozumím, jak Kubernetes funguje. A často mi v cloudech chybí nějaká funkčnost, o kterou žádám – a oni mi říkají "Ne, to nejde". No, v takovém případě promiňte, ale já mohu udělat lépe než cloud. Ale zároveň, pokud nemáte inženýra na plný úvazek, nemáte chuť platit za tohoto inženýra, který spravuje Kubernetes, a vy mu neustále platíte hodně peněz, aby jen experimentoval, pak cloud je prostě skvělé řešení. Protože tam alespoň pracují lidé, které provider už najal. A ti se vyznají v tom, co dělají. A ty základní věci, které potřebujete na každodenní bázi, tam jsou.
Azat Khadieva: Jak si myslíš o současném stavu Kubernetes? Co s ním bude za pět a za deset let?
Pavel Selivanov: Dobrý dotaz. Vím, co se v naší komunitě děje ohledně tohoto tématu. Někteří lidé věří, že kromě Kubernetes už nic jiného zůstane. Situace, která se dávno odehrála s linuxy. To znamená, že mimo Linux existují lidé, kteří žijí na BSD, pravděpodobně mají velmi specifické úkoly. Jsou lidé, kteří pracují pod Windows — windows servery — pravděpodobně mají také specifické úkoly, nebo mají prostě kompetenci v této oblasti a nechtějí odtud odcházet. V každém případě je standardem v naší sféře Linux. Existuje názor, že Kubernetes se stane takovým de facto standardem, a kromě Kubernetes nic dalšího nebude. Kubernetes bude řídit nejen aplikace, jejich nasazení, deployment a škálování. Opravdu vším. Již se ptají: "Je možné do Kubernetes nacpat databázi?" Obvykle říkám, že otázka není v Kubernetes, ale v Dockeru. Pokud jste připraveni na to, že vaše databáze bude fungovat v kontejnerech, jak bude pracovat. Odpovídají mi: "Ne-ne-ne, počkejte. V kontejnerech to nepotřebujeme. Potřebujeme to v Kubernetes. Připojíme ji k nodu. To znamená, že všechno bude, jak máme teď, jen vším tím bude řídit Kubernetes." A to je ve skutečnosti dobrý nápad. To znamená, že Kubernetes je taková věc, kdy může přijít do firmy, pokud má firma Kubernetes a na něm postavené procesy, tak člověku, který se v tom vyzná — stačí se podívat pár dní, aby řekl: "Jsem připraven vás podporovat. Kompletně. Úplně. Pochopil jsem, jak to u vás funguje." Na rozdíl od přístupů bez Kubernetes — tady jsou jedny klacky, tady další klacky. Tady Ansible, tady Terraform. Někdo to všechno napsal a trvá půl roku, než se v tom vyznáte. Takže zda se Kubernetes stane de facto standardem, nevím. V současnosti vypadá mnohem ambiciózněji a sebejistěji než řešení, která kolem něj existují.
Azat Khadieff: No, srovnání s Linuxem je docela odvážné. On totiž funguje na jednom stroji — a to je všechno. A Kubernetes funguje na mnoha strojích. Okamžitě vzniká milion variací, příčin. Ano, to je odvážné. Jen když vezmeme v úvahu, že má konkurenty této paradigmatu. Například Serverless. Je Kubernetes v ohrožení před takovými konkurenty?
Pavel Selivanov: Od Serverless… (smích) Serverless — my přece jen chápeme, že serveru přece jen existují. Nedávno jsem slyšel přednášku, kde jeden člověk řekl, že servery přece jen existují — a to je cloud. Ale musíme vždy chápat, že v cloudu jsou také servery. Tam stojí skutečné fyzické servery, racky, a jsou někde nainstalovány. To je ten cloud. Nad tím existuje Serverless, kde servery „ne“. Takže otázka je, zda Serverless ovládne Kubernetes? Domnívám se, že Serverless se přesune na Kubernetes. Pro poskytovatele, kteří nabízejí Serverless, je Kubernetes velmi pohodlná platforma, aby to mohli poskytovat. Ano, možná v nějakém okamžiku přestaneme mluvit o Kubernetes jako o běžném vývoji obchodních aplikací. Ale kdesi v hloubce, budou mít poskytovatelé a inženýři Kubernetes, kde se to vše realizuje.
Azat Khadiev: Trochu jiná téma. Existuje takový pojem jako fullstack inženýr. Co si o nich myslíš? Opravdu existují?
Pavel Selivanov: Eh… Fullstack inženýr… No, myslím, že bychom měli rozlišovat tyto věci o tom, že… Víš, existuje taková věc jako T-shaped people. Jsou takoví lidé v dnešním průmyslu potřební? Ano, bezpochyby. Potřebujeme lidi, kteří mají široký rozhled, ale přitom jsou specialisté v nějaké úzké oblasti. A zde je Fullstack inženýr to samé — člověk, který dělá všechno. Začínaje vývojem frontend, testováním, backendem, servery a vším ostatním. Nevím, že v velké firmě by tím mohl být pověřen jeden člověk, aniž by měl úzké specializace v každém z parametrů. Ale přitom, pouze s úzkou specializací, jako že okolo toho, co se děje, nevím nic — to také v moderním světě nefunguje. Tak bych řekl... slovo Fullstack bych opustil. Potřebujeme velmi inženýry. Potřebujeme DevOps. Mám pocit, že brzy přehodnotíme tento moment. A ti nebudou potřeba.
Azat Khadiev: Můžeš to rozvést?
Pavel Selivanov: Myslím, že v průmyslu dojdeme k tomu, že role Dev a Ops brzy zaniknou. Pokud potřebujeme specialisty a hledáme... Potřebujeme určitého vývojáře, potřebujeme takové administrátory, potřebujeme DevOps inženýry — teď už je máme, brzy přijdou také inženýři pro produkci, SRE inženýři. I když ve skutečnosti to, co potřebujeme, jsou inženýři, které chceme zaměstnat. Pozadí vlastně není důležité. Protože... Například SRE říká, že problémy s infrastrukturou jsou vždy softwarové. A co... Pojďme brát vývojáře — z pohledu, že vývojář je inženýr — posadíme je do oddělení podpory a oni budou tyto problémy řešit přesně tak, jak řeší obchodní problémy pomocí kódu, pomocí inženýrství, jakékoliv.
Azat Khadiev: A z tohoto pohledu... Jak pohovorovat s takovými inženýry?
Pavel Selivanov: Oh, that's a good question. It probably lies beyond what I understand in this life. But I would give an example. It has nothing to do with the interview. This is about our education system in Russia. In IT, we know that our education system in Russia is very outdated for the IT world; it is not what it should be. I’m talking generally about the vastness of Russia — and what is happening there. People graduate who are absolutely not ready to step into web development or a technology company the day after graduation. And that's a problem. We teach them some strange things when we should be teaching them how to develop for Android, for iOS, how to use Git, and all of that. In reality, it seems that we do not. College is a time when parents mostly pay for you. For your whole life. And you can dedicate five years of your life to study in depth. And study all this T-shaped knowledge. When you can learn in college what version control systems are, what kinds of development patterns exist, how to test all that, what databases there are, and load balancers. And when you go to work, you start to delve into a specific area. And this way we get engineers. And our education system in Russia is much closer to this truth than we think. We are given a good mathematical foundation, a solid algorithmic grounding, and some understanding of programming languages. And concerning the interview, it seems something similar to that. We need to interview engineers. We need the top part of the letter T in T-shaped. Because they will gain the vertical part of the letter T.
Azat Khadiev: Yes, interesting. For five years after college, I thought my education was rather strange and inadequate. But then, as I encountered deeper tasks and larger projects at work, I realized that no, I was taught very important things. Pavel, thank you. It was very interesting to hear your answers. Let’s listen to your presentation.
Pavel Selivanov: Thank you.
Zdroj: habr.com
