
Razlaga:
Azat Khadiev: Pozdravljeni. Moje ime je Azat Khadiev. Sem razvijalec PaaS področja Mail.ru Cloud Solutions. Tukaj je z menoj Pavel Selivanov iz podjetja Southbridge. Nahajava se na konferenci DevOpsDays. On bo tukaj predstavil poročilo o tem, kako z Kubernetesom lahko zgradimo DevOps, toda verjetno vam ne bo uspelo. Zakaj takšna temna tema?
Pavel Selivanov: Dejansko ni temna. Gre za to, da mnoge težave v naši skupnosti poskušamo rešiti s tehnologijami. In ravno tako poskušamo reševati s tehnologijami precej enostransko. Kubernetes je prav tako stvar, za katero odgovarjajo, lahko bi rekli, Ops. A imamo lepo pojmovanje DevOps inženirja. Za Kubernetes odgovarja DevOps inženir. Hkrati… Tipično, naredite Kubernetes, Dev tipi sploh niso na tekočem z vsemi temi kubernetes stvarmi, niso seznanjeni s tem, kar omogoča — in vse zanje ostaja enako. In to kljub temu, da Kubernetes vsebuje pripravljene rešitve, pripravljene instrumente za razširitev tega DevOps pristopa, komunikacijo med Dev in Ops. To možnost zelo malo uporabljamo. Zaradi tega, ker celo trenutne strukture prenašamo na vse te DevOps instrumente — Docker, Kubernetes, oblake in tako naprej — še bolj poglablja to situacijo. In orodja začnemo uporabljati ne tako, kot so bila zamišljena. In okoli vseh teh tehnologij se tiščijo grozljive palice.
Azat Khadiev: Jasno. Čutiti je, da je tema obsežna. Kako misliš, kakšna je najpogostejša težava pri podjetjih danes? S Kubernetesom.
Pavel Selivanov: Z Kubernetesom je najpogostejša težava — pomanjkanje kompetenc. V IT je to razširjena težava. Vedno primanjkuje strokovnjakov. Vedno primanjkuje kompetenc. In sedaj s Kubernetesom primanjkuje kompetenc. Hkrati pa je na trgu zelo malo 100% pripravljenih rešitev, ki bi omogočale pridobitev Kubernetes, ne da bi imele potrebne kompetence. Tiste, ki so, sprožajo vrsto vprašanj. Nenehno iščemo ljudi, ki se spoznajo na Kubernetes. Poskušamo pritegniti razvoj k temu.
Azat Khadiev: Considering the current talent shortage in IT, which has always existed and still does, how do you think one can navigate these conditions? What are some life hacks?
Pavel Selivanov: Life hacks. First, from the perspective of cloud services, a life hack looks like this — how about you hand over part of your competencies to us? We'll take them on and manage them internally. It sounds good. Except it’s important to understand for those who use this… It’s actually a wonderful moment… But you need to realize that by giving part of your competencies to a cloud or provider, we receive a universal solution in return. To put it simply, we have a database that performs very specific tasks and has been very specifically configured. By moving this database to the cloud, we can indeed let go of the admin who used to manage the database clusters — Amazon or Google can do that for us. However, Amazon and Google will not allow us to finely tune our database. Large projects, large companies — they eventually come to the point where they use cloud solutions, but later, they revert to reclaiming their competencies because they need something more specific.
Azat Khadiev: Are universal solutions bad, or can more be built on their basis?
Pavel Selivanov: No, universal solutions are definitely not bad. Universal solutions are good. They are just universal. It’s important to understand this. It’s like taking a general script… If you can build the entire logic of the company around that general script and its general application — then that’s great. But if the logic of the work is different, and you take this universal solution, a universal script — and try to force-fit it like a owl on a globe, that’s bad. There’s nothing wrong with universalism itself.
Azat Khadiev: If this admin is already working for you, it’s not about his dismissal. He’ll simply be able to do more.
Pavel Selivanov: Yes, taking the routine off his plate and giving it to someone else to handle is certainly a good approach. The important question here is whether this standardized solution fits the specific case.
Azat Khadiev: Based on my experience, I see that many companies are doing the same thing. They set up a Kubernetes cluster and think about its scalability. All these operations are very repetitive.
Pavel Selivanov: Yes, absolutely. Moreover, if we take Kubernetes specifically, there's a point that there is currently a shortage of deep, good knowledge about Kubernetes in the market. Kubernetes is such a huge constructor that if you bring it into a company, be ready to bring in an engineer who will manage it full-time. And that’s expensive. Plus, finding such an engineer is a challenge. Speaking for myself, I don’t particularly like cloud solutions because I understand Kubernetes quite well and deeply. I often find some functionality lacking in the clouds that I request — and I’m told, 'No, it’s not possible.' In that case, sorry, but I can do better than the cloud. However, if you don't have a full-time engineer and don’t want to pay for one who manages Kubernetes, consistently paying them a lot of money for just experimenting, then the cloud is simply a great solution. Because at least there are people who the provider has already hired and who know what they are doing. And the basic things you need on a daily basis are available there.
Azat Khadiev: What are your thoughts on the current state of Kubernetes? What will happen to it in five and ten years?
Pavel Selivanov: Dobro pitanje. Jednostavno znam šta se dešava u našem zajedništvu povodom toga. Neki ljudi veruju da osim Kubernetesa više ništa neće ostati. Situacija koja se davno desila sa Linuxima. Dakle, van Linuxa ima ljudi koji žive na BSD-u, najverovatnije imaju vrlo specifične zadatke. Ima ljudi koji rade na Windows-u — windows serveri — najverovatnije, i oni imaju specifične zadatke, ili jednostavno imaju kompetenciju u tome i ne žele da se preseljavaju. U svakom slučaju, standard u našoj oblasti je Linux. Postoji mišljenje da će Kubernetes postati takav standard de facto, i da osim Kubernetesa više ništa neće biti. Kubernetes će upravljati ne samo aplikacijama, njihovim raspoređivanjem, deploy-om, skaliranjem. U stvari, svime će upravljati. Već se sada postavlja pitanje: „Da li možemo u Kubernetes staviti bazu podataka?”. Obično govorim da ovde pitanje nije u Kubernetesu, već u Docker-u. Ako ste spremni da vaša baza podataka radi u kontejnerima, kako će ona raditi. Odgovaraju mi: „Ne-ne-ne, sačekajte. Ne treba u kontejnerima. Potrebno je u Kubernetes. Povezaćemo je sa nodom. Dakle, sve će biti kao sada, samo će tim svime upravljati Kubernetes.” I to je zapravo dobra ideja. Dakle, Kubernetes je takva stvar, kada možete doći u kompaniju, ako u kompaniji postoji Kubernetes i procesi izgrađeni na njemu, osobi koja se u tome razume — dovoljno je da pogleda par dana, da kaže: „Spreman sam da vas podržim. Potpuno. U potpunosti. Razumeo sam kako vam šta funkcioniše.” Za razliku od pristupa bez Kubernetesa — ovde su jedni štake ubacili, ovde druge štake. Ovde Ansible, ovde Terraform. Neko je to sve napisao, i potrebno je pola godine da se razume. Tako da, hoće li Kubernetes postati standard de facto, ne znam. Na trenutni dan izgleda mnogo ambicioznije i sigurnije nego rešenja koja postoje oko njega.
Azat Khadiev: Pa, poređenje sa Linux-om je prilično hrabro. On radi na jednoj mašini — i to je to. A Kubernetes radi na više mašina. Odmah se pojavljuje milion varijacija, razloga. Da, to je hrabro. Samo ako uzmemo u obzir da postoje konkurenti toj paradigmi. Na primer, Serverless. Da li je Kubernetes u opasnosti pred takvim konkurentima?
Pavel Selivanov: O Serverless… (smeh) Serverless — vendar moramo razumeti, da strežnika vendar obstajajo. Pred kratkim sem slišal govor, v katerem je oseba rekla, da strežniki vendar obstajajo — in to je oblak. A vedno moramo razumeti, da v oblaku — so tudi strežniki. Tam stojijo pravi fizični strežniki, omara, in nekje so nameščeni. To je oblak. Nad tem obstaja Serverless, kjer strežnikov „ni“. Zato se postavlja vprašanje, ali bo Serverless premagal Kubernetes? Zdi se mi, da bo Serverless prešel na Kubernetes. Za ponudnike, ki nudijo Serverless, je Kubernetes zelo prirodna platforma za to. Da, morda bomo v nekem trenutku prenehali govoriti o Kubernetesu na splošno, kot o običajni razvijalni platformi za poslovne aplikacije. Ampak v ozadju, pri ponudnikih in inženirjih bo stal Kubernetes, kjer bo vse to realizirano.
Azat Khadiev: Malce drugačna tema. Obstaja pojem fullstack inženir. Kaj misliš o njih? Ali sploh obstajajo?
Pavel Selivanov: Hmm… Fullstack inženir… Zdi se mi, da bi morali razmejiti te stvari, ker… Veš, obstaja taki koncept kot T-shaped people. Ali so taki ljudje potrebni v današnji industriji? Da, zagotovo so potrebni. Potrebujemo ljudi, ki imajo široko znanje, a hkrati so strokovnjaki na svojem ožjem področju. In tukaj je Fullstack inženir prav tako — oseba, ki počne vse. Od razvoja frontenda, testiranja, backend, strežnikov in vsega ostalega. Ne verjamem, da lahko v veliki podjetju to dela ena oseba, ne da bi imela ozke specializacije za vsak parameter. Hkrati pa imeti samo ozko specializacijo, tipa „okoli tega se dogaja, ne vem nič“ — to v sodobnem svetu prav tako ne deluje. Torej tukaj bi rekel… besedo Fullstack bi spustil. Potrebujemo inženirje zelo. Potrebujemo DevOps. Čutim, da bomo kmalu predelali ta trenutek. In ti morda ne bodo potrebni.
Azat Khadiev: Lahko to razložiš?
Pavel Selivanov: Mislim da ćemo u industriji doći do trenutka kada će ove Dev i Ops uloge skoro nestati. Ako nam trebaju stručnjaci i tražimo... Trebaju nam takvi programeri, potrebni su nam takvi administratori, potrebni su nam DevOps inženjeri — sada su oni kod nas, uskoro će se pojaviti i produkcijski inženjeri, SRE inženjeri. Iako, zapravo, ono što nam treba su inženjeri koje želimo zaposliti. Pozadina u većini slučajeva nije važna. Zato što... Na primjer, SRE kaže da su problemi infrastrukture uvijek softverski prirode. Pa, hajde da zapošljavamo programere — s obzirom na to da je programer inženjer — da ih smjestimo u odjel za podršku i oni će rješavati te probleme upravo onako kako rješavaju poslovne probleme putem koda, putem inženjeringa, kao takvog.
Azat Khadieva: A s te tačke gledišta... Kako intervjuisati takve inženjere?
Pavel Selivanov: Oh, that's a good question. It's probably beyond what I understand in this life. But let me give you an example. It's not related to interviews. It’s about our education system in Russia. In IT, we know that our education system in Russia is very outdated for the IT world; it's not what it should be. I'm speaking generally about vast Russia — and what's happening there. Graduates are released who are absolutely unprepared to step into web development or a tech 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 those things. In reality, it seems we don’t. College is a time when mostly your parents pay for you. For your entire life. And you can devote five years of your life to studying deeply. And learn all this T-shaped knowledge. When you could be studying in college what a version control system is, what development patterns exist, how to test everything, what databases and load balancers are there. And when you start working, you begin to deepen your knowledge in a specific area. And that's how we produce engineers. And our education system in Russia is much closer to this reality than we think. We receive a good mathematical education, a solid algorithmic foundation, and some understanding of programming languages. And about interviews, I think it’s something close to this. We need to interview engineers. We need the upper part of the letter T in T-shaped. Because the vertical stroke of the T will be acquired later.
Azat Khadiev: Yes, interesting. For five years after college, I felt that my education was somehow strange and inadequate. But then, as I progressed in my work, when the tasks became deeper, and the projects larger, I realized that no, I was taught very important things. Pavel, thank you. It was very interesting to listen to your answers. Let's hear your presentation.
Pavel Selivanov: Thank you.
Izvor: habr.com
