Kubernetes vallutab maailma. Millal ja kuidas?

EelĂ”htul DevOpsConf Vitaly Khabarov tegi intervjuu Dmitri Stolyarovile (distol), tehnilise direktoriga ja ettevĂ”tte "Flant" kaasasutajaga. Vitaly kĂŒsis Dmitrilt, millega "Flant" tegeleb, Kubernetesest, ökosĂŒsteemi arengust, toetamisest. Arutati, miks on Kubernetes vajalik ja kas see on ĂŒldse vajalik. RÀÀkisime ka mikroteenustest, Amazon AWS-st, lĂ€henemisest "Mul on vedanud" DevOps-is, Kubernetesese tulevikust, miks, millal ja kuidas see maailma vallutab, DevOps-i perspektiividest ja millega insenerid peaksid ette valmistuma heledas ja lĂ€hemas tulevikus koos lihtsustamise ja nĂ€rvivĂ”rkudega.

Intervjuu originaal podcasti vormis kuulake DevOps Defloope — venekeelses podcastis DevOps-ist, ning allpool on tekstiversioon.

Kubernetes vallutab maailma. Millal ja kuidas?

Siin ja edaspidi kĂŒsib kĂŒsimusi Vitaly Khabarov Express42 insener.

Flantist

— Dima, tere. Sa oled tehniline direktor "Flant" ja samuti selle asutaja. RÀÀgi palun, millega teie ettevĂ”te tegeleb ja mis on sinu roll seal?

Kubernetes vallutab maailma. Millal ja kuidas?Dmitri: VĂ€liselt nĂ€ib, et me oleme sellised tĂŒĂŒbid, kes kĂ€ivad ringi, seadistavad kĂ”igile Kuberneteset ja teevad sellega midagi. Aga see ei ole tĂ”si. Alustasime ettevĂ”ttena, mis tegeleb Linuxiga, kuid juba ammu on meie peamine tegevus tootmis- ja high-load projektide vĂ”tmed kĂ€tte andmine. Tavaliselt ehitame kogu infrastruktuuri nullist ja vastutame selle eest kaua. SeetĂ”ttu on peamine töö, mida Flant teeb ja mille eest raha teenib – vastutuse vĂ”tmine ja tootmise vĂ”tmed kĂ€tte andmine.




Mina, kui tehniline direktor ja ĂŒks ettevĂ”tte asutajatest, tegelen pidevalt sellega, et vĂ€lja mĂ”elda, kuidas suurendada tootmise kĂ€ttesaadavust, lihtsustada selle kasutamist, kergendada adminnide elu ja muuta arendajate elu mugavamaks.

Kubernetesest

— Viimasel ajal olen Flant’i kaudu nĂ€inud palju ettekandeid ja artiklites Kubernetesest. Kuidas te selle juurde jĂ”udsite?

Dmitri: Olen sellest juba palju korda rÀÀkinud, aga mul ei ole kahju seda kordamast. Pean Ôigeks selle teema kordamist, kuna tekib segadus pÔhjuse ja tagajÀrje vahel.

Me olime tĂ”eliselt vajanud tööriista. Olime silmitsi paljude probleemidega, vĂ”itlesime, ĂŒletasime neid erinevate lahendustega ja tundsime tööriista vajadust. Proovisime lĂ€bi palju erinevaid variante, ehitasime oma jalgrattaid ja kogume kogemusi. Aja jooksul jĂ”udsime sinna, et hakkasime Dockerit kasutama peaaegu kohe, kui see ilmus, umbes 2013. aastal. Selle ilmumise hetkeks oli meil juba palju kogemusi konteineritega ja olime juba kirjutanud midagi, mis sarnanes „Dockerile” - mingid omatehtud lahendused Pythonis. Dockeri ilmumisega sai vĂ”imalikuks lahendustest loobuda ja kasutada usaldusvÀÀrset ning kogukonna poolt toetatud lahendust.

Kubernetesega on lugu sarnane. Hetkel, mil see hakkas populaarsust koguma – meie jaoks oli see versioon 1.2, – oli meil juba hunnik lahendusi, mis olid ehitatud Shelli ja Chefiga, millega pĂŒĂŒdsime Dockerit orkestreerida. Me vaatasime tĂ”siselt Rancheri ja erinevate teiste lahenduste poole, kuid siis ilmus Kubernetes, kus on kĂ”ik rakendatud tĂ€pselt nii, nagu meie oleksime teinud, vĂ”i isegi paremini. Mitte millegagi ei saa nuriseda.

Jah, siin on mingi lĂ”petamata töö, seal on mingi lĂ”petamata töö — palju lĂ”petamata asju, ja 1.2 on ĂŒldse hirmus, aga
 Kubernetes on nagu ehitame maja — vaatad projekti ja mĂ”istad, et see saab olema Ă€ge. Kui majal on praegu alus ja kaks korrust, siis mĂ”istad, et pole mĂ”tet veel sisse kolida, aga tarkvaraga selliseid probleeme ei ole — seda saab juba kasutada.

Meil ei olnud hetke, kus mĂ”tleksime, kas kasutada Kubernetes vĂ”i mitte. Me ootasime seda kaua enne, kui see ilmus, ja ĂŒritasime ise sarnaseid lahendusi luua.

Umbes Kubernetes

— Kas te osalete otse Kubernetes enda arenduses?

Dmitri: Keskmiselt. Pigem osaleme ökosĂŒsteemi arendamises. Me saadame mingisuguse arvu pull request'e: Prometheusesse, igasugustesse operaatoritesse, Helm'i — ökosĂŒsteemi. Kahjuks ei ole ma vĂ”imeline jĂ€lgima kĂ”ike, mida me teeme, ja vĂ”in eksida, aga meie poolt ei ole ĂŒhtegi puhastust tuumasse.

— Samal ajal arendate te ka palju oma tööriistu Kubernetes'i ĂŒmber?

Dmitri: Meie strateegia on jÀrgmine: me teeme pull-request'e kÔiges, mis juba olemas on. Kui sinna pull-request'e ei aktsepteerita, siis forkime need endale ja elame edasi, kuni nad meie ehitustega vastu vÔetakse. Siis, kui see jÔuab upstream'i, naaseme tagasi upstream'i versiooni juurde.

NĂ€iteks, meil on Prometheus-operator, millega oleme juba umbes 5 korda oma versiooni ja upstream'i vahel vahetanud. Kui meil on vaja mingit funktsiooni, saatsime pull-request'i, kuid me ei taha oodata, kuni see upstream'is vĂ€lja antakse. SeetĂ”ttu kogume endale, kĂ€ivitame oma versiooni koos vajaliku funktsiooniga kĂ”igis oma klastrites. Siis, nĂ€iteks, pöördub upstream meie poole, öeldes: „Poisid, teeme seda ĂŒldisema juhtumi jaoks”, ja me, vĂ”i keegi teine, viime selle lĂ”pule, mis lĂ”puks taas sulandub.

KĂ”ike, mis eksisteerib, pĂŒĂŒame arendada.. Paljusid elemente, mis veel puuduvad, pole veel vĂ€lja mĂ”eldud vĂ”i on vĂ€lja mĂ”eldud, kuid pole veel teostatud - meie teeme. Ja mitte sellepĂ€rast, et meile meeldib protsess ise vĂ”i jalgrattatootmine kui valdkond, vaid lihtsalt seetĂ”ttu, et meil on seda tööriista vaja. Sageli kĂŒsitakse, miks me tegime seda vĂ”i teist asja? Vastus on lihtne - nii on, sest pidime edasi liikuma, lahendama mĂ”ne praktilise probleemi, ja lahendasime selle tööriista abil.

Tee on alati selline: otsime vÀga hoolikalt ja kui me ei leia mingit lahendust, kuidas leivapÀtsi teha trollibuss, siis teeme oma leivapÀtsi ja oma trollibussi.

Flanta tööriistad

— Ma tean, et Flantal on praegu addon-operatorid, shell-operatorid, dapp/werf tööriistad. Nii nagu ma aru saan, on see sama tööriist erinevates inkarnatsioonides. Samuti mĂ”istan, et „Flanta“ sees on veel palju erinevaid tööriistu. Kas see on nii?

Dmitri: Meil on GitHubis palju muud. Mida ma kohe meenutan, on statusmap — Grafana paneel, mis on kĂ”igile meeldinud. Seda mainitakse pea igas teises artiklis Kubernetes'ese jĂ€lgimise kohta Mediumis. Statusmap'i lĂŒhidalt kirjeldada on keeruline — selle kohta on vaja eraldi artikkel, kuid see on vĂ€ga kasulik tööriist aja jooksul statiuse jĂ€lgimiseks, kuna Kubernetes'is peame sageli nĂ€itama staatust aja jooksul. Meil on ka LogHouse — see on ClickHouse'i ja musta maagia baasil logide kogumise lahendus Kubernetes'es.

Palju utiliite! Ja tuleb veel rohkem, kuna teatud sisemised lahendused avaldatakse sel aastal. Suurte seas addon-operaatorite baasil on hulgaliselt lisandeid Kubernetes'e jaoks, nĂ€iteks kuidas Ă”igesti seadistada sertifikaadi haldamise tööriista Sert Manager - see on tööriist sertifikaatide haldamiseks, samuti kuidas Ă”igesti seadistada Prometheus koos hulga lisamahutitega - neid on umbes kakskĂŒmmend erinevat binaarfaili, mis ekspordivad andmeid ja koguvad midagi, Prometheusel on suurepĂ€rane graafika ja hĂ€ired. KĂ”ik need on lihtsalt hulgaliselt lisandeid Kubernetes'e jaoks, mis paigaldatakse klastrisse, muutes selle tavalisest millekski Ă€gedaks, keerukaks, automaatseks, kus paljud kĂŒsimused on juba lahendatud. Jah, me teeme palju.

ÖkosĂŒsteemi areng

— Minu arust on see vĂ€ga suur panus selle tööriista ja selle kasutusmeetodite arengusse. Kas sa vĂ”iksid umbes hinnata, kes veel panustaks nii suurelt ökosĂŒsteemi arendamisse?

Dmitri: Venemaal ei ole mitte ĂŒhtegi neist ettevĂ”tetest, kes meie turul tegutsevad — keegi ei ole lĂ€hedal.. Loomulikult on see dramaatiline vĂ€ide, kuna on suured tegijad nagu Mail ja Yandex — nad teevad samuti midagi Kubernetesega, kuid isegi nemad ei ole saavutanud globaalsete ettevĂ”tete investeeringutele lĂ€hedale, kes teevad palju rohkem kui meie. „Flant“ on keeruline vĂ”rrelda 80 inimese meeskonna ja Red Hatiga, kus ainult ĂŒhe Kubernetes'i jaoks on 300 inseneri, kui ma ei eksi. Meie RnD osakonnas on 6 inimest, sealhulgas mina, kes arendavad kĂ”iki meie tööriistu. 6 inimest versus 300 Red Hati inseneri — seda on keeruline vĂ”rrelda.

— Sellegipoolest, kui isegi need 6 inimest suudavad teha midagi tĂ”eliselt kasulikku ja jagatavat, kui nad seisavad silmitsi praktilise ĂŒlesandega ja annavad lahenduse kogukonnale — see on huvitav juhtum. MĂ”istan, et suurtes tehnoloogiaettevĂ”tetes, kus on oma arendamine ja Kubernetes'i tugimeeskond, vĂ”iksid pĂ”himĂ”tteliselt olla samasugused tööriistade arendamise vĂ”imalused. See on neile nĂ€ide, et saab arendada ja anda kogukonnale, andes tĂ”uke kogu kogukonnale, kes kasutab Kubernetes'e.

Dmitri: TĂ”enĂ€oliselt on see integreerija omadus, meie eripĂ€ra. Meil on palju projekte ja nĂ€eme erinevaid olukordi. Meie peamine viis, kuidas lisavÀÀrtust luua, on analĂŒĂŒsida neid juhtumeid, leida ĂŒhisosad ja maksimaalselt odavdada neid meie jaoks. Sellega tegeleme aktiivselt. Mul on keeruline rÀÀkida Venemaast ja maailmast, aga meil on ettevĂ”ttes umbes 40 DevOps-inseneri, kes tegelevad Kubernetesega. Ma ei usu, et Venemaal on palju ettevĂ”tteid, kellel on vĂ”rreldav arv spetsialiste, kes oskavad Kubernetesega tegeleda, kui neid ĂŒldse on.

Ma mĂ”istan kĂ”ike DevOps-inseneri ametinimest. KĂ”ik teavad ja on harjunud neid DevOps-inseneriteks kutsuma, seda ei pea arutama. Need 40 suurepĂ€rast DevOps-inseneri seisavad iga pĂ€ev silmitsi probleemidega ja lahendavad need. Me analĂŒĂŒsime seda kogemust ja proovime seda ĂŒldistada. Me teame, et kui see jÀÀb meie sisse, muutub see aasta vĂ”i kahe pĂ€rast kasutuks, kuna kuskil kogukonnas ilmub valmis tööriist. Pole mĂ”tet seda kogemust endas hoida — see on lihtsalt vĂ€givalla ja aja raiskamine dev/null'i. Seega ei ole meil seda kahju jagada. Avaldame selle suure rÔÔmuga ja mĂ”istame, et seda tuleb avaldada, arendada, reklaamida, edendada, et inimesed kasutaksid seda ja jagaksid oma kogemusi — siis kĂ”ik kasvab ja elab. Kaks aastat hiljem ei satu tööriist prĂŒgikasti. Pole kahju jĂ€tkata jĂ”udude investeerimist, sest on nĂ€ha, et keegi kasutab sinu tööriista, ja kahe aasta pĂ€rast kasutavad seda juba kĂ”ik.

See on osa meie suurest strateegiast dapp/werf. Ei mĂ€leta, millal me sellega alustasime, tundub, et umbes kolm aastat tagasi. Alguses oli see tĂ€iesti shellis. See oli super proof of concept, lahendasime mĂ”ned meie erilised ĂŒlesanded — see töötas! Aga shelli puhul on seal probleemid, seda on vĂ”imatu edasi arendada, shellis programmeerimine — see on tĂ”eline vĂ€ljakutse. Meil oli komme kirjutada Ruby's, seega tegime Ruby's midagi ĂŒmber, arendasime, arendasime, arendasime ja jĂ”udsime olukorda, kus kogukond, rahvas, kes ei ĂŒtlenud „meie tahame vĂ”i ei taha”, keeras Ruby'lt nina Ă€ra, kuigi see ei ole naljakas. MĂ”istsime, et peame kĂ”ik selle kirjutama Go's, et lihtsalt vastata kontrollnimekirja esimesele punktile: DevOps-tööriist peab olema staatiline binaarfail. Go's vĂ”i mitte Go's ei ole nii oluline, aga parem on, kui see on staatiline binaarfail, kirjutatud Go's.

Panime jĂ”udu, kirjutasime dappi Go's ĂŒmber ja nimetasime selle werf'iks. Dapp ei ole enam toetatud, seda ei arendata, see töötab mĂ”nes viimases versioonis, kuid ĂŒlespoole on absoluutne uuendusteed, millele on vĂ”imalik jĂ€rgida.

Miks dapp loodi

— Kas sa saad lĂŒhidalt rÀÀkida, miks dapp loodi, milliseid probleeme see lahendab?

Dmitri: Esimene pĂ”hjus on koostamises. Alguses olime kokku puutunud tĂ”siste koostamisprobleemidega, kui Docker ei osanud multi-stage'i, ja me tegime multi-stage'i ise. SeejĂ€rel oli meil veel hulk kĂŒsimusi pildi puhastamise osas. KĂ”ik, kes tegelevad CI/CD-ga, seisavad varem vĂ”i hiljem silmitsi probleemiga, et on palju koostatud pilte, ja neid tuleb mingil viisil puhastada, et jĂ€tta alles vajalikud.

Teine pĂ”hjus on deploy. Jah, on Helm, kuid see lahendab vaid osa ĂŒlesandeid. Kuidas iganes see ka ei kĂ”laks, on kirjutatud, et "Helm - Kubernetes'e pakihaldur". Just see "the”. Veel on sĂ”nad "Package Manager" - millised ootused tavaliselt pakihaldurilt? Me ĂŒtleme: "Package Manager - pane pakett paika!" ja ootame, et ta vastab: "Pakett on paigaldatud."

Huvitav on see, et me ĂŒtleme: "Helm, pane paket paika", ja kui ta vastab, et on paigaldanud, siis selgub, et ta vaid alustas installimist - andis Kubernetes'le kĂ€su: "KĂ€ivitada see asi!", aga kas see kĂ€ivitati vĂ”i mitte, Helm seda kĂŒsimust ĂŒldse ei lahenda.

Seega on Helm lihtsalt tekstiline eeltöötlus, mis laadib andmed Kubernetes'esse.

Kuid me tahame igas vĂ€ljundis teada, kas rakendus on tootmisse jĂ”udnud vĂ”i mitte? Kui see on tootmisse lĂ€inud, tĂ€hendab see, et rakendus on seal vĂ€ljastatud, uus versioon on kĂ€ivitatud ja see ei kuku kokku, vaid vastab korrektselt. Helm ei lahenda seda probleemi. Selle lahendamiseks tuleb kulutada palju vaeva, sest tuleb anda Kubernetes'ile kĂ€sk vĂ€ljastamiseks ja jĂ€lgida, mis seal tegelikult toimub — kas see on vĂ€lja lĂ€inud ja kĂ€ivitatud. Lisaks on palju ĂŒlesandeid, mis on seotud vĂ€ljastamise, puhastamise ja kogumisega.

Tunniplaanid

Sel aastal suundume me kohalikku arendusse. Tahame jĂ”uda olukorda, nagu see oli Vagrant'is — sisestasime "vagrant up" ja meil olid virtuaalmasinad kĂ€ivitatud. Tahame, et oleks projekt Git'is, kirjutame sinna "werf up" ja see kĂ€ivitab kohaliku koopia sellest projektist, mis on kĂ€ivitatud kohalikus mini-Kubes, koos kĂ”ikide arendamiseks mugavalt ĂŒhendatud kaustadega. SĂ”ltuvalt arenduskeelest toimub see erinevalt, kuid siiski, et oleks mugav viia lĂ€bi kohalikke arendusi montaaĆŸifailide all.

Meie jĂ€rgmine samm on tugevalt investeerida arendajate mugavusse. Ühe tööriistaga saab kiiresti kohapeal projekti kĂ€ivitada, arendada, tĂ”ukuda Git-i ja see avaldatakse samamoodi stseenil vĂ”i testides, sĂ”ltuvalt töövoogudest, ning seejĂ€rel sama tööriistaga minna tootmisse. See ĂŒhtsus, ĂŒhtlustamine ja infrastruktuuri reprodutseerimine kohalikust keskkonnast tootmiseni on meie jaoks vĂ€ga oluline. Kuid werf-is pole seda veel, plaanime seda teha.

Aga tee dapp/werf juurde on alati olnud sama, nagu Kubernetes'i alguses. Oleme pidanud silmitsi seisma probleemidega, lahendades need ringteedega — vĂ€lja mĂ”tlema lahendused shellis, mis iganes. Siis oleme pĂŒĂŒdnud neid ringteid kuidagi sirgendada, ĂŒldistada ja konsolideerida binaarideks, mida lihtsalt jagame.

On ka teine vaade kogu sellele loole, analoogiate kaudu.

Kubernetes on autotootmise raam ja mootor. Ei ole uksi, klaase, raadio ega muud — mitte midagi. Ainult raam ja mootor. Ja on Helm — see on rool. Lahe — rool on olemas, kuid vajalikud on ka roolipĂŒsti, roolivĂ”imendi, kĂ€igukast ja rattad, muidu ei saa.

werf on Kubernetes on veel ĂŒks komponent. Meil on praegu alfa-versioon werf'ist, kus nĂ€iteks Helm on tĂ€ielikult integreeritud werf'i, sest meil on sellest lihtsalt kĂ”rini. On palju pĂ”hjus, miks me seda teeme, ja ma rÀÀgin muudest aspektidest, miks me Helm'i koos Tiller'iga werf'i sisse integreerisime. dokumendil RIT++.

Praegu on werf palju integreeritum komponent. Meil on valmis sĂŒsteem, millega saame juba palju toiminguid teha. Ma ei tea autotest palju, aga see on suur plokk, mis lahendab piisavalt laia ĂŒlesannete spektrit. Me ei pea iseseisvalt kataloogis navigeerima, sobitama ĂŒhte detaili teisega ja mĂ”tlema, kuidas need omavahel kokku panna. Saime valmis masina, mis lahendab kohe hulga ĂŒlesandeid. Kuid see pĂ”hineb kĂ”ikidel samadel avatud lĂ€htekoodiga komponentidel, kasutab endiselt Docker'it kogumiseks, Helm'i osa funktsionaalsuse jaoks ja seal on veel mĂ”ned teised raamatukogud. See on integreeritud tööriist, et kiiresti ja mugavalt saada suurepĂ€rane CI/CD vĂ€lja kastist.

Kas Kubernetes'e toetamine on keeruline?

— Sa rÀÀgid oma kogemusest, et hakkasite Kubernetesit kasutama, see on nagu raam, mootor, ja et sellele saab palju erinevat kĂŒlge panna: kere, rool, pedaalid, istmed. Tuleb kĂŒsimus – kui keeruline on teile Kubernetesit toetada? Teil on ulatuslik kogemus, kui palju aega ja ressursse kulub teile just Kubernetes'i toetamiseks teistest asjadest eemal?

Dmitri: See on vĂ€ga keeruline kĂŒsimus ja et vastata, tuleb mĂ”ista, mis on tugi ja mida me Kuberneteselt ootame. Kas sa avad selle?

— Niipalju kui mina tean ja kuidas ma nĂ€en, tahavad praegu paljud meeskonnad proovida Kubernetesit. KĂ”ik tahavad sellega tegeleda, installeerivad seda enda kodudes. Mul on tunne, et inimesed ei mĂ”ista alati selle sĂŒsteemi keerukust.

Dmitri: Nii on.

— Kui keeruline on vĂ”tta ja paigaldada Kubernetes nullist, et see oleks tootmisvalmis?

Dmitri: Kuidas sa arvad, kui keeruline on sĂŒdame siirdamine? Ma saan aru, et kĂŒsimus on provokatiivne. Skalpelliga sĂ”itmine ja mitte eksimine – see ei ole nii keeruline. Kui sulle öeldakse, kust lĂ”igata ja kuhu Ă”mmelda, siis protseduur ise ei ole keeruline. Raskeks vĂ”ib osutuda garanteerida igas kord, et kĂ”ik Ă”nnestub.

Kubernetesi seadistamine ja töölepanek on lihtne: kliki! — see on valmis, installimiseks on palju viise. Aga mis juhtub, kui tekivad probleemid?

Tekivad alati kĂŒsimused — mida me veel ei arvesse vĂ”tnud? Mida me veel pole teinud? Milliseid Linuxi kerneliparametreid oleme valesti mÀÀranud? Jumal, kas me ĂŒldse mÀÀrasime need?! Millised Kubernetes'i komponendid me paigaldasime ja millised mitte? KĂŒsimusi tekib tuhat, ja nendele vastamiseks on vaja 15-20 aastat kogemust selles valdkonnas.

Mul on selle teema kohta vÀrske nÀide, mis vÔib avada probleemi mÔtet: "Kas Kubernetes'e hooldamine on keeruline?" MÔned aega tagasi vaatasime tÔsiselt, kas peaksime proovima Cilium'it Kubernetes'e vÔrgu lahendusena rakendada.

Selgitan, mis on Cilium. Kuberneteses on palju erinevaid vĂ”rgu alamsĂŒsteemide rakendusi, ja ĂŒks neist on vĂ€ga Ă€ge — see on Cilium. Mis on selle sisu? Aeg tagasi ilmnes kernelis vĂ”imalus kirjutada kernelihukke, mis mingil moel sekkuvad vĂ”rgu alamsĂŒsteemi ja teistesse alamsĂŒsteemidesse ning vĂ”imaldavad mööda minna suurtest osadest kernelis.

Linux-iadris on ajaloos ip rout, ĂŒlevaatused, sillad ja palju erinevaid vanu komponente, millel on 15, 20 vĂ”i isegi 30 aastat ajalugu. Üldiselt nad toimivad, kĂ”ik on hĂ€sti, aga nĂŒĂŒd on konteinerite kiht tehtud ja see nĂ€eb vĂ€lja nagu 15 tellist teineteise peal, samas, kui sa seisad selle peal ĂŒhel jalal — kummaline tunne. See sĂŒsteem on ajalooliselt arenenud paljude nĂŒanssidega, nagu organi lisand. MĂ”nes olukorras on jĂ”udlusega muresid, nĂ€iteks.

On olemas suurepĂ€rane BPF ja vĂ”imalus kirjutada tuumahook'e — poisid on teinud oma tuumahook'id. Pakett saab Linux-i tuuma, nad vĂ”tavad selle kohe alguses vĂ€lja, töötlevad ise, kuidas vaja, ilma sildadeta, ilma TCP-ta, ilma IP-kihita — lĂŒhidalt, mööda kĂ”igest, mis on Linux-i tuumas kirjutatud, ja siis visatakse kohe konteinerisse.

Mis vĂ€lja tuli? VĂ€ga Ă€ge jĂ”udlus, Ă€gedad funktsioonid — lihtsalt fantastiline! Kuid vaatame seda ja nĂ€eme, et igas masinas töötab programm, mis ĂŒhendub Kubernetes API-ga ja saadud andmete pĂ”hjal genereerib C-koodi ja kompileerib binaarfaile, mis laaditakse tuuma, et need hook'id töötaksid kernel space'is.

Mis toimub, kui midagi lĂ€heb valesti? Me ei tea. Selle mĂ”istmiseks tuleb kogu see kood lĂ€bi lugeda, kĂ”iki loogikaid mĂ”ista ja see on ĂŒpris keeruline. Teisest kĂŒljest on olemas sillad, net-filterid ja ip-route — ma ei ole nende lĂ€htekoodi lugenud, ega ka 40 inseneri, kes meie firmas töötavad. VĂ”ib-olla mĂ”istavad mĂ”ned osad vĂ€hesed.

Ja mis siis? Tuleb vĂ€lja, et on olemas ip-route, Linuxi tuum ja on uus tööriist — mis vahet seal on, me ei mĂ”ista kumbagi. Aga me kardame uut kasutada — miks? Sest kui tööriist on 30 aastat vana, siis 30 aasta jooksul on kĂ”ik vead leitud, kĂ”ik takistused esiotsa pandud ja kĂ”igest teadmine ei ole vajalik — töötab nagu must kast ja töötab alati. KĂ”ik teavad, kuhu diagnostikapeitli panna, millal tcpdump kĂ€ivitada. KĂ”ik tunnevad korralikult diagnostikavahendeid ja mĂ”istavad, kuidas see komponentide kogum Linuxi tuumas töötab — mitte kuidas see on ĂŒles ehitatud, vaid kuidas seda kasutada.

Kuid suurepĂ€rasel Cilium'il ei ole veel 30 aastat, ta pole ka veel kĂŒps. Sama probleem on ka Kubernetesega, see on lihtsalt koopia. Et Cilium paigaldub kenasti, ning Kubernetes ka, aga kui midagi lĂ€heb tootmises valesti, kas olete suuteline kriitilises olukorras kiiresti mĂ”istma, mis valesti lĂ€ks?

Kui me rÀÀgime Kubernetes'e haldamise keerukusest — ei, see on vĂ€ga lihtne, ja jah, uskumatult keeruline. Kubernetes töötab suurepĂ€raselt iseenesest, kuid seal on miljard erinevat nĂŒanssi.

Kohustuslik lĂ€henemine ‘Mul vĂ”ib vedada’

— Kas on olemas ettevĂ”tteid, kus need nĂŒansid peaaegu garanteeritult ilmuvad? Oletame, et Yandex Ă€kki muudetakse kĂ”ik teenused Kubernetes'eks, seal on tohutu koormus.

Dmitri: Ei, see pole ju jutt koormusest, vaid kĂ”ige lihtsamast. NĂ€iteks meil on Kubernetes, oleme sinna rakenduse vĂ€lja pannud. Kuidas mĂ”ista, et see töötab? Valmis tööriista, et teada saada, et rakendus ei kukku, ei ole lihtsalt olemas. Valmis sĂŒsteemi, mis saadab hĂ€ireid — ei ole, tuleb need hĂ€ired ja iga graafik seadistada. Ja me vĂ€rskendame Kubernetes'e.

Ubuntu 16.04 on. VĂ”ib öelda, et see on vana versioon, kuid me oleme sellega endiselt, kuna see on LTS. Seal on systemd, mille nĂŒanss on see, et see ei puhasta C-gruppe. Kubernetes kĂ€ivitab podid, loob C-grupid, seejĂ€rel kustutab podid ja mingil moel jÀÀvad systemd lĂ”iked alles. See viib selleni, et aja jooksul hakkab iga masin tugevalt aeglustuma. See ei ole isegi kĂŒsimus highloadist. Kui kĂ€ivitatakse pidevalt podid, nĂ€iteks kui on Cron Job, mis pidevalt genereerib pode, siis masin Ubuntu 16.04 peal hakkab nĂ€dala pĂ€rast aeglustuma. Seal on pidev kĂ”rge load average, kuna on loodud hunnik C-gruppe. See on probleem, millega puutub iga inimene, kes lihtsalt installib Ubuntu 16 ja kuberneeide pealt.

Kujutage ette, et ta kuidagi uuendab systemd-d vĂ”i midagi muud, kuid Linuxi sĂŒdamikus kuni 4.16 on veelgi naljakam — C-gruppide kustutamisel lekivad nad sĂŒdamikus ja tegelikult ei kao. SeetĂ”ttu on kuu aja pĂ€rast sellel masinal peaaegu vĂ”imatu vaadata mĂ€lu statistikat podide kaupa. Me vĂ”tame vĂ€ikese faili, töötame programmiga ja ĂŒks fail töötleb 15 sekundit, kuna sĂŒda loendab endas miljonit C-gruppi, mis justkui oleksid kustutatud, kuid ei ole — need lekivad.

Selliseid pisidetaile on seal ja siin endiselt tohutult palju. See ei ole kĂŒsimus, millega hiiglaslikud ettevĂ”tted aeg-ajalt tohutute koormuste all silmitsi seisavad — ei, see on pĂ€evapoliitika. Inimesed saavad kuude kaupa elada nii — installisid Kubernetes'i, paigaldasid rakenduse — tundub, et töötab. Paljudele on see normaalne. Et kunagi see rakendus mingil pĂ”hjusel kokku kukub, ei kuule nad isegi, alarm ei tule, kuid nende jaoks on see normaalne. Varem elasime virtuaalmasinates ilma jĂ€lgimiseta, nĂŒĂŒd oleme kolinud Kubernetes'i ka ilma jĂ€lgimiseta — mis vahet seal on?

KĂŒsimus on selles, et kui me kĂ€ime jÀÀl, ei tea me kunagi selle paksust, kui me seda eelnevalt ei mÔÔtnud. Paljud kĂ€ivad ringi ja ei muretse, sest on seda juba varem teinud.

Minu arvates on igasuguste sĂŒsteemide kasutamise nĂŒanss ja keerukus selles, et tagada, et jÀÀ paksus oleks piisav meie ĂŒlesannete tĂ€itmiseks. See ongi see, millest rÀÀgitakse.

IT-s tundub, et on liiga palju lĂ€henemisi, kus loodetakse lihtsalt Ă”nnele. Paljud paigaldavad tarkvara, kasutavad teeke, lootes, et neil on Ă”nne. Üldiselt on paljudele Ă”nnestunud. VĂ”ib-olla seepĂ€rast see töötabki.

— Minu pessimistlik hinnang on jĂ€rgmine: kui riskid on suured ja rakendus peab töötama, siis on vajalik tugi "Flantilt", vĂ”ib-olla Red Hatilt, vĂ”i on vajalik oma sisemine meeskond, mis on spetsiaalselt vĂ€lja pandud Kubernetes'ega töö tegemiseks ja kes on valmis selle jĂ€tkamiseks.

Dmitri: Objektiivselt on see tÔsi. VÀikesel meeskonnal on mÔningane risk iseseisvalt Kubernetes'ega tegeleda.

Kas me vajame konteinerite kasutamist?

— Kas sa saaksid rÀÀkida, kui laialdaselt Kubernetes Venemaal ĂŒldiselt levinud on?

Dmitri: Mul ei ole neid andmeid, ja ma ei ole kindel, kas neid on ĂŒldse kellelgi. Me rÀÀgime: „Kubernetes, Kubernetes”, kuid kĂŒsimusele on ka teine vaade. Kui laialt on konteinerid levinud, ei tea ma samuti, aga tean, et interneti aruannete kohaselt orkestreerib Kubernetes 70% konteineritest. See oli usaldusvÀÀrne allikas piisavalt suure valimi jaoks maailmas.

Siis on veel kĂŒsimus — kas me vajame konteinerid? Mul on isiklik tunne ja kogu ettevĂ”tte „Flant” seisukoht on selline, et Kubernetes on de facto standard.

Midagi peale Kubernetes ei tule.

See on absoluutne game-changer infrastruktuuri haldamise valdkonnas. Lihtsalt absoluutne — kĂ”ik, rohkem pole Ansible'it, Chefi, virtuaalmasinaid, Terraformi. Ma ei rÀÀgi isegi vanadest kemplustest. Kubernetes on absoluutne changer, ja nĂŒĂŒd on asjad ainult nii.

On selge, et kellegil on vaja paar aastat, aga kellegil paar kĂŒmmend, et sellele aru saada. Mul ei ole kahtlusi, et midagi muud ei tule peale Kubernetes ja selle uue vaate: me ei riku enam operatsioonisĂŒsteemi, vaid kasutame infrastructure as code, ainult et mitte koodiga, vaid yml — deklaratiivselt kirjeldatud infrastruktuur. Mul on tunne, et nii jÀÀbki igavesti.

— See, those companies that haven't yet transitioned to Kubernetes will inevitably either adopt it or be left behind. Did I understand you correctly?

Dmitri: That’s not entirely correct. For example, if we need to run a DNS server, we can run it on FreeBSD 4.10, and it can function perfectly well for 20 years. Just run and that’s it. Maybe after 20 years, we might need to update something once. If we are talking about software that we launched and that truly works for many years without any updates or changes, then, of course, Kubernetes won’t be necessary there.

When it comes to CI/CD — everywhere Continuous Delivery is needed, where version updates are required, and active changes need to be made, wherever fault tolerance needs to be established — it's only Kubernetes.

About microservices

— Siin tekib mul vĂ€ike vastuolu. Kubernetesega töötamiseks on vajaliku vĂ€line vĂ”i sisemine toetus — see on esimene punkt. Teiseks, kui me alustame arendust, oleme me vĂ€ike idufirma, meil pole veel midagi, Kubernetes'e vĂ”i isegi mikroteenuste arhitektuuri arendamine vĂ”ib olla keeruline ja mitte alati majanduslikult otstarbekas. Mind huvitab su arvamus — kas idufirmad peaksid kohe alguses Kubernetes'e peale kirjutama vĂ”i vĂ”iksid nad kĂ”igepealt kirjutada monoliidi ja siis alles minna Kubernetes'e juurde?

Dmitri: Äge kĂŒsimus. Mul on mikroteenuste kohta ettekand, «Mikroteenused: suurusel on tĂ€htsust». Olen korduvalt kokku puutunud sellega, et inimesed proovivad mikroskoobiga naelu naelda. LĂ€henemine on iseenesest Ă”ige, me kavandame oma sisemist tarkvara just selle meetodiga. Kuid seda tehes tuleb tĂ€pselt aru saada, mida sa teed. KĂ”ige rohkem vihkan mikroteenuste juures ma sĂ”na «mikro». Ajalooliselt on see sĂ”na tekkinud, ja mikski tĂ”ttu arvavad inimesed, et mikro on vĂ€ga vĂ€ike, vĂ€iksem kui millimeeter, nagu mikromeeter. See ei ole nii.

NĂ€iteks on olemas monoliit, mille kallal töötab 300 inimest, ja kĂ”ik, kes arenduses osalevad, teavad, et seal on probleeme ning see tuleks jagada mikroskoopilisteks tĂŒkkideks — umbes 10, millest igaĂŒht kirjutab vĂ€hemalt 30 inimest. See on oluline, vajalik ja suurepĂ€rane. Kuid kui meile tuleb startup, kus 3 vĂ€ga nutikat ja andekat kutti on kirja pannud 60 mikroteenust, siis iga kord otsin ma rahuolu.

Tundub, et sellest on juba tuhat korda rÀÀgitud — saime jaotatud monoliidi mingis vormis. See on majanduslikult mitteotstarbekas, vĂ€ga keeruline kĂ”igis aspektides. Lihtsalt olen seda nii mitu korda nĂ€inud, et see teeb mind lausa haigeks, seetĂ”ttu jĂ€tkan sellest rÀÀkimist.

Algse kĂŒsimuse juurde, et on konflikt selle vahel, et Kubernetes on hirmutav kasutada, sest ei ole selge, mis seal vĂ”ib katki minna vĂ”i mitte töötada, teisalt on selge, et kĂ”ik liigub sinna ja mitte midagi peale Kubernetes'i ei ole. Vastus — kaaluda kasu, mis tuleb, ja ĂŒlesannete mahtu, mida saate lahendada.Üks kaalupool on see. Teine pool on riskid, mis on seotud seismise vĂ”i reaktsiooniaja, kĂ€ttesaadavuse langemisega — töönĂ€itajate halvenemisega.

Siin on asi selline — kas me liigume kiiresti edasi, ja Kubernetes vĂ”imaldab paljusid asju teha oluliselt kiiremini ja paremini, vĂ”i kasutame usaldusvÀÀrseid, ajaga proovitud lahendusi, kuid liigume palju aeglasemalt. See valik peab olema igal ettevĂ”ttel. Seda vĂ”ib vĂ”rrelda dĆŸunglirajaga — kui lĂ€hed esimest korda, vĂ”id kohtuda mao, tiigri vĂ”i raevunud mĂ€graga, ja kui oled kĂ€inud 10 korda — oled rajale jĂ€lje jĂ€tnud, oksad eemaldanud ja liigeldes on kerge. Iga korraga muutub rada laiemaks. Siis on see juba asfalttee ja hiljem kaunis bulvar.

Kubernetes aren’t standing still. Once again, the question arises: Kubernetes, on one hand, comprises 4-5 binaries; on the other hand, it’s an entire ecosystem. It’s the operating system that runs on our machines. So, what is it? Ubuntu or Curios? It’s the Linux kernel with a plethora of additional components. All these components have been removed from the road like a venomous snake, and a fence has been put up. Kubernetes evolves rapidly and dynamically, and the level of risks and unknowns decreases every month, leading to a rebalance of these scales.

Vastates kĂŒsimusele, mida teha idufirmal, ĂŒtleksin, et tulge „Flantu” juurde, makske 150 000 rubla ja saage vĂ”tmed kĂ€tte DevOps lihtsate teenuste pakkuja. Kui olete vĂ€ike idufirma, kus on paar arendajat, siis see töötab. Selle asemel, et palgata enda DevOps-i, kellele tuleb Ă”ppida teie probleeme lahendama ja samal ajal palka maksta, saate vĂ”tmed kĂ€tte lahenduse kĂ”ikidele kĂŒsimustele. Jah, mĂ”ningaid miinuseid on. Outsourcina ei saa me olla nii kaasatud ja kiiresti reageerida muudatustele. Kuid meil on kĂŒllaga ekspertiisi ja valmis praktikaid. Me garanteerime, et igas olukorras suudame kiiresti toime tulla ning tĂ”stame ellu igasuguseid Kubernetes'eid.

Soovitan kategooriliselt outsourcerimist idufirmadele ja juba stabiilsetele ettevÔtetele, kuni te ei suuda eraldada 10 inime meeskonda oma hoolduseks, sest vastasel juhul pole see mÔttekas. See on absoluutne mÔte outsourcerida.

Amazonist ja Google'ist

— Kas saab pidada outsourcerimiseks Amazonilt vĂ”i Google'ilt pakutavat hostimist?

Dmitri: Jah, muidugi, see lahendab teatud kĂŒsimusi. Kuid on jĂ€lle nĂŒansse. Peame ikkagi mĂ”istma, kuidas seda kasutada. NĂ€iteks, Amazon AWS töötab tuhandete pisiasjadega: Load Balancerit tuleb soojendada vĂ”i esitada eelnevalt taotlus, et „poisid, meile tuleb liiklus, soojendage meie Load Balancer!” Need nĂŒansid tuleb teada.

Kui pöördute inimeste poole, kes on sellel alal spetsialiseerunud, saate peaaegu kĂ”ik tĂŒĂŒpilised asjad kaetud. Meil on hetkel 40 inseneri, aasta lĂ”puks on neid ilmselt 60 — me oleme kindlasti kĂ”ikide nende asjadega kokku puutunud. Isegi kui mĂ”nes projektis seisame silmitsi sama probleemiga, kĂŒsime kiiresti ĂŒksteiselt ja teame, kuidas lahendada.

TĂ”enĂ€oliselt on vastus selline – jah, hosted-lahendused lihtsustavad mingit osa. KĂŒsimus on selles, kas olete valmis nende hostijate usaldamiseks ja kas nad lahendavad teie probleemid. Amazon ja Google on end hĂ€sti tĂ”estanud. Meie kĂ”igis projektides – kindlasti. Meil ei ole rohkem positiivseid kogemusi. KĂ”ik teised pilved, millega oleme proovinud töötada, tekitavad vĂ€ga palju probleeme – nii Ager kui kĂ”ik, mis Venemaal olemas on, ning igasugused OpenStack'i erinevad realiseeringud: Headster, Overage – kĂ”ik, mida soovite. KĂ”ik nad tekitavad probleeme, mida ei taha lahendada.

SeetĂ”ttu on vastus jah, kuid tegelikult pole kĂŒpsed hosted-lahendused just palju.

Kellele on Kubernetes vajalik?

— Ja ikkagi, kellele on Kubernetes vajalik? Kes peaks juba Kubernetes'e peale minema, kes on tĂŒĂŒpiline «Flanta» klient, kes tuleks just Kubernetes'e pĂ€rast?

Dmitri: KĂŒsimus on huvitav, sest praegu on Kubernetes tĂ”eliselt populaarsust kogumas: “Rebavad, me teame, et te teete Kubernetes'e, tehke meile ka!” Me vastame neile: “HĂ€rra, me ei tee Kubernetes'e, me teeme tootmis- ja kĂ”ik sellekĂ”igega seonduvat.” Sest produtseerimine ilma kogu CI/CD ja muu sellise tegemiseta on praegusel ajal lihtsalt vĂ”imatu. KĂ”ik on loobunud sellest arusaamast, et meil on arendus omaette ja peale selle operatsioon sĂ”ltumatu.

Meie kliendid ootavad erinevat, kuid kĂ”ik loodavad mingisugusele headusele, et nad saavad lahenduse oma probleemidele ja nĂŒĂŒd – hop! – Kubernetes lahendab need. Inimesed usuvad imedesse. Nad mĂ”istavad, et imet ei tule, kuid sĂŒdames loodavad – Ă€kki see Kubernetes lahendab meie jaoks kĂ”ik, sellest rÀÀgitakse nii palju! Äkki see on nĂŒĂŒd – tĆĄik! – ja hĂ”bedane kuul, tĆĄik! – ja meil on 100% uptime, kĂ”ik arendajad saavad 50 korda releasida, mida tahes tootmisse, ja see ei kuku maha. ÜhesĂ”naga, ime!

Kui sellised inimesed meie juurde tulevad, ĂŒtleme: «Kahjuks ime ei eksisteeri». Tervislikuks jÀÀmiseks on oluline sĂŒĂŒa hĂ€sti ja sporti teha. UsaldusvÀÀrse serveri jaoks tuleb see korralikult seadistada. Mugava CI/CD jaoks peab see olema Ă”igesti ĂŒles ehitatud. See on palju tööd, mida tuleb teha.

Vastates kĂŒsimusele, kellele on Kubernetes vajalik — Kubernetes ei ole vajalik kellelegi.

MĂ”nede inimeste jaoks on vale arusaam, et neile on vajalik Kubernetes. Inimestele on vajalik, et nad lĂ”petaksid muretsemise, tegelemise ja huvi tundmise igasuguste infrastruktuuri ja rakenduste kĂ€ivitamise probleemide ĂŒle. Nad soovivad, et rakendused töötaksid lihtsalt ja nende juurutamine toimuks sujuvalt. Kubernetes on nende jaoks lootus, et nad lĂ”petavad lugemise lugusid sellest, et «me seal segaduses olime» vĂ”i «me ei saa vĂ€lja minna», vĂ”i midagi muud.

Meie juurde tuleb tavaliselt tehniline direktor. Temalt kĂŒsitakse kahte asja: ĂŒhelt poolt, andke meile uusi funktsioone, teiselt poolt - stabiilsust. Pakume seda ise teha. HĂ”bedane kuul, tĂ€psemalt hĂ”bedane, seisneb selles, et sa lĂ”petad nende probleemide ĂŒle mĂ”tlema ja aega raiskama. Sul on spetsiaalsed inimesed, kes selle kĂŒsimuse lahendavad.

KĂŒsimus, kas meil vĂ”i kellelgi muul on vaja Kubernetesit, on vale.

Kubernetes on adminnidele tĂ”eliselt vajalik, sest see on huvitav mĂ€nguasi, millega saab mĂ€ngida ja nokitseda. Olgem ausad - kĂ”ik armastavad mĂ€nguasju. Me kĂ”ik oleme kuskil lapsed ja kui me nĂ€eme midagi uut, tahame sellega mĂ€ngida. MĂ”nel on see juba maha surutud, nĂ€iteks adminnina, sest on juba mĂ€ngitud ja on tĂŒhi, et isegi enam ei viitsi. Kuid see ei ole tĂ€ielikult kadunud kellelgi. NĂ€iteks, kui mulle juba ammu ei meeldi mĂ€nguasjad sĂŒsteemi haldamise ja DevOpsi valdkonnas, siis ma siiski armastan mĂ€nguasju ja ostan ikka uusi.

Ärge mĂ€ngige tootmisprotsessiga. Millest ma kategooriliselt ei soovitaks rÀÀkida ja mida ma praegu palju nĂ€en: "Ah, uus mĂ€nguasi!" — jookseme seda ostma, ostsime ja: "VĂ”tame selle nĂŒĂŒd kooli, nĂ€itame kĂ”igile sĂ”pradele." Ärge nii tehke. Palun vabandust, mul on lihtsalt lapsed, ma nĂ€en pidevalt laste kaudu midagi, mĂ€rkan seda endas ja ĂŒldistan siis ka teistele.

LÔplik vastus: Kubernetes ei ole teile vajalik. Peate lahendama oma probleemid.

Saavutada on vÔimalik, et:

  • toode ei lange;
  • isegi kui ta pĂŒĂŒab langeda, teame me sellest ette ja saame midagi lisada;
  • saame seda muuta sellise kiirusel, nagu meie Ă€ri vajab, ja teha seda mugavalt, see ei tekita meile probleeme.

Reaalsed vajadused on kaks: usaldusvÀÀrsus ja dĂŒnaamilisus/paindlikkus. KĂ”ik, kes praegu teevad mĂ”nda IT-projekti, pole oluline, mis Ă€ris — tarkvara, mis lihtsustab maailma, ja kes seda mĂ”istab, peab need vajadused lahendama. Kubernetes Ă”ige lĂ€henemise, Ă”ige arusaama ja piisava kogemusega vĂ”imaldab neid lahendada.

Serverless

— Kui vaadata natuke kaugemale tulevikku, siis pĂŒĂŒdes lahendada probleemide puudumist infrastruktuuris, rakenduste tootmiskiirus ja muutumise kiirus, tulevad esile uued lahendused, nagu serveriteta. Kas sa tunned selles suunas mingit potentsiaali ja ĂŒtleme, et ka ohtu Kubernetes'e ja sarnaste lahenduste jaoks?

Dmitri: Siin tuleb jĂ€lle mĂ€rkida, et ma ei ole nĂ€gija, kes vaatab ette ja ĂŒtleb - see lĂ€heb nii! Kuigi ma just tegin sama asja. Vaatan jalgu ning nĂ€en seal hulga probleeme, nĂ€iteks kuidas arvutites töötavad transistorid. Kummaline, eks? Meil on teatud vigadega CPU's.

Serveriteta lahenduse tegemiseks on vaja piisavalt usaldusvÀÀrselt, odavalt, tĂ”husalt ja mugavalt lahendada kĂ”ik ökosĂŒsteemi kĂŒsimused. Siin olen nĂ”us Elon Muskiga, et on vaja teist planeeti, et tagada inimkonnale hĂ€dakorralisuse. Kuigi ma ei tea, mida ta ĂŒtleb, aga ma saan aru, et ei ole valmis Marsile lendama ja see ei toimu homme.

Serverless on selgelt mĂ”istetav mĂ”isted, nagu kĂ€itunud usaldusvÀÀrsus inimkonnale - kaks planeeti on parem kui ĂŒks. Kuid kuidas seda praegu teostada? Ühe ekspeditsiooni saatmine - ei ole probleem, kui sellele keskenduda. Saata mitu ekspeditsiooni ja asustada seal paar tuhat inimest, arvan, et see on ka realistlik. Aga tĂ€ieliku usaldusvÀÀrsuse saavutamine, et pool inimkonnast seal elaks, tundub mulle praegu vĂ”imatu, mitte kaaluda.

Serverless on sama asi: tore asi, kuid see on kaugel 2019. aasta probleemidest. Kaugemal 2030 - elame sinna vĂ€lja. Ma ei kahtle, et me elame, kindlasti elame (korrake enne magamaminekut), kuid praegu tuleb lahendada teisi probleeme. See on justkui usk muinasjuttudesse poni RÔÔmus. Jah, paar protsenti juhtudest lahendatakse, ja need lahendatakse suurepĂ€raselt, kuid subjektiivselt on serverless - see on vikerkaare... Minu jaoks on see teema liiga kaugel ja liiga arusaamatu. Ma ei ole valmis rÀÀkima. 2019. aastal ei saa serverlessiga ĂŒhtegi rakendust kirjutada.

Kuidas Kubernetes areneb

— Kuidas sa arvad, kuidas Kubernetes ja selle ĂŒmber olev ökosĂŒsteem tulevikus areneb, kui me liigume selle potentsiaalselt hĂ€mmastava kauge tuleviku suunas?

Dmitri: Olen selle ĂŒle palju mĂ”elnud ja mul on selge vastus. Esiteks – statefull – stateless'i tegemine on ikkagi lihtsam. Kubernetes panustas alguses rohkem sellesse, tema ĂŒmber kĂ”ik algas. Stateless töötab Kuberneteses praktiliselt ideaalselt, seal pole lihtsalt millegi ĂŒle nuriseda. Statefulli puhul on aga veel palju probleeme, vĂ”i pigem nĂŒansse. Meil töötab seal juba kĂ”ik suurepĂ€raselt, kuid see oleme meie. Selleks, et see töötaks kĂ”igil, on vaja veel paar aastat, vĂ€hemalt. See pole mÔÔdetud nĂ€itaja, vaid minu tunne.

LĂŒhidalt, statefull peab kindlasti – ja tuleb – arenema, sest kĂ”ik meie rakendused hoiavad olekut, stateless-rakendusi ei eksisteeri. See on illusioon, alati on vajalik mingi andmebaas ja midagi veel. Statefull on kĂ”ike, mida vĂ”imalik, sirgendamine, kĂ”ikide vigade korrigeerimine, kĂ”igi probleemide lahendamine, millega me praegu silmitsi seisame – nimetame seda vastuvĂ”tuks.

Uurimise tase, lahendamata probleemide tase, tĂ”enĂ€osus millegagi silmitsi seista, vĂ€heneb oluliselt. See on oluline teema. Ja operaatorite kĂ”ik, mis on seotud haldussĂŒsteemi loogika, haldusteenuse loogika, et saavutada lihtne teenus: MySQL lihtne teenus, RabbitMQ lihtne teenus, Memcache lihtne teenus — need on kĂ”ik komponendid, mida vajame, et garantii saaks kastist töötama. See lahendabki need mured, mis meil on, et soovime andmebaasi, kuid ei soovi selle haldamisega tegeleda, vĂ”i soovime Kubernetes't, kuid ei soovi selle haldamisega tegeleda.

See lugu operaatorite arendamisest oma eri vormides on edaspidistel aastatel oluline.

Ma arvan, et kasutusmugavus peab oluliselt suurenema — kast muutub jĂ€rjest mustamaks, usaldusvÀÀrsemaks, koos ĂŒha lihtsamate reguleerimise seadistustega.

Kordagi mĂ”tlesin ma, et kuulsin YouTube'is vanast 80-ndate aastate Isaac Asimovi intervjuust Saturday Night Live'is — see on nagu Urgant, aga huvitavam. Seal kĂŒsiti temalt arvutite tuleviku kohta. Ta ĂŒtles, et tulevik peitub lihtsuses, nagu see oli raadio vastuvĂ”tja puhul. Raadio vastuvĂ”tja oli algselt keeruline masin. Kuni signaali pĂŒĂŒdmise nimel tuli 15 minutit nuppusid keerata, osata rampida ja tegelikult mĂ”ista, kuidas kĂ”ik töötab, mĂ”ista raadiosignaalide edastamise fĂŒĂŒsikat. LĂ”ppkokkuvĂ”ttes jĂ€i raadiole ĂŒks nupp.

Mis raadio 2019. aastal? Autos raadio vastuvĂ”tja leiab kĂ”ik signaalid, jaama nimed. Protsessi fĂŒĂŒsika ei ole 100 aastaga muutunud, on muutunud kasutamise lihtsus. TĂ€na, ja see ei ole ainult tĂ€nane, juba 1980. aastal, mil Asimoviga intervjuu tehti, kasutasid kĂ”ik raadiot ja keegi ei mĂ”elnud sellele, kuidas see töötab. See töötas alati — see on lihtsalt alati nii.

Asimov ĂŒtles siis, et arvutitega on sarnane — kasutamise lihtsus suureneb. Kui 1980. aastal oli vajalik erikoolitus, et arvutis nuppe vajutada, siis tulevikus ei ole see enam nii.

Mul on tunne, et Kubernetes'i ja infrastruktuuri kasutusmugavus muutub oluliselt lihtsamaks. See on minu arvates ilmne – see on pinnal.

Mida teha inseneridega?

— Aga mis saab siis inseneridest, sĂŒsteemiadministraatoritest, kes toetavad Kubernetes'i?

Dmitri: Mis juhtus raamatupidajaga pĂ€rast 1C ilmumist? Umbes sama. Enne loeti paberil – nĂŒĂŒd programmis. Töö efektiivsus on kasvanud kordades, kuid töö sellest siiski ei kadunud. Kui varem vajasime 10 inseneri, et lampi vahetada, siis nĂŒĂŒd piisab ĂŒhest.

Tarkvara ja ĂŒlesannete arv, minu arvates, kasvab praegu kiiremini kui ilmuvad uued DevOps'd ja suurenevad efektiivsused. Praegu on turul konkreetne puudus ja see kestab kaua. Hiljem jĂ”uab kĂ”ik teatud normi, kus töö efektiivsus suureneb, serverless lahendusi tuleb jĂ€rjest rohkem, Kubernetes'ile ĂŒhendatakse tehisintellekt, mis mÀÀrab kĂ”ik ressursid tĂ€pselt nagu vaja, ja kĂ”ik teeb ise, nagu peab – inimene astu kĂ”rvale ja Ă€ra sega.

Kuid mingid otsused tuleb ikkagi kellelgi vastu vĂ”tta. Selge on see, et selle inimese kvalifikatsioon ja spetsialiseeritus on kĂ”rgem. Praegu ei vaja raamatupidamisosakond 10 töötajat, kes peavad raamatupidamisdokumente, et nende kĂ€ed ei vĂ€si. See ei ole lihtsalt vajalik. Paljusid dokumente skaneeritakse automaatselt ja tuvastatakse elektroonilise dokumentide haldamise sĂŒsteemi kaudu. Piisab ĂŒhest nutikast pea-raamatupidajast, kellel on juba palju suuremad oskused ja hea arusaam.

Üldiselt on selline tee kĂ”igis valdkondades. Autodega on sama: varem kuulus autole mehhaanik ja kolm juhtijat. Praegu on auto juhtimine kĂ”ige lihtsam protsess, milles me kĂ”ik igapĂ€evaselt osaleme. Keegi ei mĂ”tle, et auto on midagi keerulist.

DevOps vĂ”i sĂŒsteemiinseneritus ei kao kuhugi – töö taseme ja efektiivsus suurenevad.

– Olen veel kuulnud huvitavat ideed, et tegelikult töö maht suureneb.

Dmitri: Loomulikult, sada protsenti! Sest tarkvara kogus, mida me kirjutame, kasvab pidevalt. KĂŒsimuste arv, mida me tarkvaraga lahendame, kasvab pidevalt. Töömaht suureneb. Praegu on DevOpsi turg jubedalt ĂŒlekuumenenud. Seda saab nĂ€ha palgaootustes. Üldiselt, mitte detailidesse laskudes, peaks olema algajaid, kes tahavad X, keskaste spetsiifiliste ootustega 1,5X ja kogenud, kes soovivad 2X. Aga praegu, kui vaadata Moskva DevOpsi palgaturgu, tahab algaja X kuni 3X ja kogenud X kuni 3X.

Keegi ei tea, kui palju see maksab. Palgataset mÔÔdab sinu enesekindlus — tĂ€ielik segadus, kui aus olla, turg on kohutavalt ĂŒle kuumenud.

Loomulikult see olukord muutub vĂ€ga kiiresti — peab toimuma teatud kĂŒllastus. Tarkvara arendamisega ei ole see nii — vaatamata sellele, et arendajad on alati vajalikud ja kĂ”igile on vaja hĂ€id arendajaid, mĂ”istab turg, kui palju keegi vÀÀrt on — valdkond on stabiliseerunud. DevOpsiga ei ole see praegu nii.

— Kuuldust jĂ€reldan, et praegune sĂŒsteemiadministraator ei peaks liialt muretsema, aga on aeg oma oskusi tĂ€iendada ja valmistuda selleks, et homme tuleb rohkem tööd, kuid see on keerulisem ja nĂ”uab rohkem kvalifikatsiooni.

Dmitri: Absoluutselt. Üldiselt elame me 2019. aastas ja elureegel on jĂ€rgmine: elu jooksul Ă”ppimine — me Ă”pime kogu elu. Tundub, et hetkel teavad ja tunnevad seda juba kĂ”ik, kuid vĂ€he on lihtsalt teada — tuleb ka tegutseda. Iga pĂ€ev peame muutuma. Kui me seda ei tee, visatakse meid professionaalsest tĂ”ukest vĂ€lja varem vĂ”i hiljem.

Olge valmis jĂ€rskudeks pöördeks 180 kraadi. Ma ei vĂ€lista olukordi, kus midagi radikaalselt muutub, leiutatakse midagi uut — seda juhtub. HĂŒpp! — ja nĂŒĂŒd tegutseme teistmoodi. Oluline on selliseks olukorraks valmis olla ja mitte Ă€revustada. VĂ”ib juhtuda, et homme osutub kĂ”ik, mida ma teen, tarbetuks — pole hullu, olen terve elu Ă”ppinud ja olen valmis Ă”ppima midagi muud. See ei ole probleem. Töökindluse pĂ€rast ei tasu muretseda, aga tuleb olla valmis pidevalt uudist Ă”ppima.

Soovid ja reklaamikÀik

— Kas sul on mĂ”ni soov?

Dmitri: Jah, mul on mitmeid soove.

Esimene ja materjalne soov – tellige YouTube. Austatud lugejad, minge YouTube'i ja tellige meie kanal. Umbes kuu pĂ€rast alustame aktiivset laienemist videoteenusesse, kus on palju Ă”ppeaineid Kubernetes'ist, avatud ja erinevatest: praktilistest asjadest, sealhulgas laboritest, kuni sĂŒgavate pĂ”himĂ”tteliste teoreetiliste asjadeni ja kuidas rakendada Kubernetes'e pĂ”himĂ”tete ja mustrite tasemel.

Teine materjalne soov – minge GitHub ja paneme tĂ€htedega hinnanguid, kuna me toitume neist. Kui te meid ei hinda, jÀÀme nĂ€lga. See on nagu mana arvutimĂ€ngus. Me teeme midagi, teeme, pĂŒĂŒame, keegi ĂŒtleb, et need on kohutavad jalgrattad, keegi ĂŒtleb, et kĂ”ik on tĂ€iesti vale, aga me jĂ€tkame ja tegutseme tĂ€iesti ausalt. Me nĂ€eme probleemi, lahendame selle ja jagame kogemusi. Seega andke meile tĂ€ht, teilt ei kulu midagi, aga me saame, sest me toitume neist.

Kolmas, oluline ja mitte enam materjalne soov – lĂ”petage muinasjuttudesse uskumine. Te olete professionaalid. DevOps on vĂ€ga tĂ”sine ja vastutustundlik amet. LĂ”petage mĂ€ngimine töökohal. Las see teile kohale jĂ”uab ja mĂ”istate seda. Kujutage ette, et lĂ€hete haiglasse, ja seal katsetab arst teiega. Ma mĂ”istan, et see vĂ”ib kellelegi haiget teha, aga tĂ”enĂ€oliselt ei kĂ€i see teie kohta, vaid kellegi teise. Öelge teistele, et nad ka lĂ”petaksid. See rikub tegelikult kĂ”igi meie elu — paljud hakkavad suhtuma operatsioonidesse, adminnidesse ja DevOps’idesse kui tĂŒĂŒpidessse, kes jĂ€lle midagi Ă€ra rikkusid. See „Àra rikkumine“ juhtub enamasti seetĂ”ttu, et me lĂ€ksime mĂ€ngima, mitte ei vaadanud asjadele kĂŒlma peaga.

See ei tĂ€henda, et ei pea eksperimenteerima. Eksperimenteerida tuleb, me ise teeme seda. Kui olla aus, siis me ise ikka vahel mĂ€ngime — see on muidugi vĂ€ga halb, aga miski inimlik ei ole meile vÔÔras. Las 2019. aasta olema tĂ”siste hoolikalt mĂ”eldud katsete aasta, mitte mĂ€ngud prod's. Arvatavasti nii.

— Suur aitĂ€h!

Dmitri: AitÀh, Vitali, ka aja ja intervjuu eest. Kallid lugejad, suur tÀnu teile, kui olete selles punktis Àra kÀinud. Loodan, et oleme teile vÀhemalt paar mÔtet edastanud.

Intervjuus puudutas Dmitri werf kĂŒsimust. Praegu on see universaalne Ć veitsi armee nuga, mis lahendab peaaegu kĂ”ik ĂŒlesanded. Kuid see ei olnud alati nii. DevOpsConf  festivali RIT++ Dmitri Stoljarov rÀÀgib sellest tööriistast detailselt. Ettekandes «werf – meie CI/CD tööriist Kuberneteses» oleb kĂ”ik: probleemid ja salajased nĂŒansid Kubernetesest, lahenduste variandid nende raskuste lahendamiseks ja praegune werfi rakendamine ĂŒksikasjalikult. Liituge 27. ja 28. mail, loome ideaalseid vahendeid.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster