EelĂ”htul Vitaly Khabarov intervjuu viis Dmitri Stolyaroviga (), tehnilise direktori ja ettevĂ”tte âFlantâ kaasasutaja. Vitaly kĂŒsis Dmitrilt, millega tegeleb âFlantâ, Kubernetesest, ökosĂŒsteemi arengust ja toetamisest. RÀÀkisime, miks on vajalik Kubernetes ja kas see on ĂŒldse vajalik. Samuti puudutasime mikroteenuseid, Amazon AWS-i, lĂ€henemist âMul on Ă”nneâ DevOpsis, Kubernetes tulevikku, miks, millal ja kuidas see haarab maailma, DevOpsi perspektiivid ja millega peaksid insenerid valmistuma ereda ja lĂ€hedase tuleviku jaoks koos lihtsustamise ja nĂ€rvivĂ”rkudega.
podcastina kuulamiseks DevOps Deflope â Venekeelses DevOps podcastis, ja allpool on tekstiversioon.

Siin ja edaspidi kĂŒsib kĂŒsimusi insener Express42-st.
Flantist
â Dima, tere. Sa oled ââ tehniline direktor ja samuti selle asutaja. RÀÀgi palun, millega tegeleb ettevĂ”te ja sina seal?
Dmitri: VĂ€limuselt tundub, et me oleme sellised kutid, kes kĂ€ivad, paigaldavad kĂ”igile Kubernetes ja teevad sellega midagi. Aga see pole tĂ”si. Alguses alustasime ettevĂ”ttena, mis tegeleb Linuxiga, kuid juba vĂ€ga kaua on meie peamine tegevus â vĂ”tmehoidjaga tootmis- ja highload-projektide teenindamine. Tavaline on see, et ehitame kogu infrastruktuuri nullist ja siis vastutame selle eest kaua aega. Seega, peamine töö, mida âFlantâ teeb, mille eest ka raha kĂŒsime â on vastutuse vĂ”tmine ja tootmise rakendamine vĂ”tmehoidjaga.
Mina, kui tehniline direktor ja ĂŒks ettevĂ”tte kaasasutajatest, töötan ööpĂ€evaringselt selle nimel, et leida viise, kuidas suurendada tootmise kĂ€ttesaadavust, lihtsustada selle kasutamist, kergendada administraatorite elu ja muuta arendajate elu meeldivamaks.
Kubernetesest
â Viimasel ajal olen âFlantiâ poolt nĂ€inud palju ettekandeid ja Kubernetesest. Kuidas te sinna jĂ”udsite?
Dmitri: Olen sellest palju rÀÀkinud, kuid mul ei ole sugugi kahju seda korrata. Pean Ôigeks seda teemat korrata, kuna tekib segadus pÔhjuse ja tagajÀrje vahel.
Meil oli vĂ€ga vaja tööriista. Me kohtasime mitmeid probleeme, vĂ”itlesime nendega, ĂŒletades neid erinevate lahendustega ja tundsime tööriista vajadust. Proovisime mitmeid erinevaid variante, ehitasime oma jalgrattaid ja kogusime kogemusi. Aeglaselt jĂ”udsime sinnamaani, et hakkasime Dockerit kasutama peaaegu kohe, kui see ilmus â umbes 2013. aastal. Selle ilmumise hetkel oli meil juba palju kogemusi konteineritega, olime juba kirjutanud oma analooge âDockerileâ â mingisuguseid meie loomingulisi lahendusi Pythonis. Dockeri ilmumisega saime Ă€ra visata meie lahendused ja hakata kasutama usaldusvÀÀrset ning kogukonna toetatud lahendust.
Kubernetesega on lugu sarnane. Ajal, mil see hakkas hoogu koguma â meie jaoks on see versioon 1.2 â oli meil juba hulk loomingulisi lahendusi nii Shellis kui ka Chefis, mida me pĂŒĂŒdsime Dockerit orkestreerida. Me vaatlesime tĂ”siselt Rancherit ja erinevaid teisi lahendusi, kuid siis ilmus Kubernetes, milles oli kĂ”ik just nii, nagu me oleksime ise teinud, vĂ”i isegi paremini. Midagi pole viga.
Jah, siin on mingid puudujÀÀgid, seal on mingid puudujÀÀgid â palju puudujÀÀke, ja 1.2 on tĂ”eliselt hull, aga... Kubernetes sarnaneb ehitatavale hoonele â vaatad projekti ja mĂ”istad, et see tuleb Ă€ge. Kui hoonel on praegu vundament ja kaks korrust, siis mĂ”istad, et parem on praegu mitte sisse kolida, kuid tarkvaraga pole selliseid probleeme â juba saab kasutada.
Meil ei olnud mingeid kahtlusi, kas kasutada Kubernetesit vĂ”i mitte. Me ootasime seda palju enne, kui see ilmus, ja pĂŒĂŒdsime ise analooge luua.
Kubernetesest
â Kas te osalete otseselt Kubernetes'i arenduses?
Dmitri: Kaudselt. Pigem osaleme ökosĂŒsteemi arenduses. Me saadame teatud arvu pull request'e: Prometheusesse, erinevatesse operaatoritesse, Helmi â ökosĂŒsteemi. Kahjuks ei suuda ma jĂ€lgida kĂ”ike, mida me teeme, ja vĂ”in eksida, kuid meie kĂ€est ei ole ĂŒhtegi pulka tuuma lĂ€inud.
â Samas arendate te palju oma tööriistu ĂŒmber Kubernetes'i?
Dmitri: Strateegia on selline: me lÀheme ja teeme pull request'e kÔigesse, mis juba olemas on. Kui seal pull request'eid ei vÔeta vastu, siis me lihtsalt forkime need endale ja elame edasi, kuni need on meie versioonidega vastu vÔetud. Siis, kui see jÔuab upstream'i, naaseme tagasi upstream'i versioonile.
NĂ€iteks, meil on Prometheus-operator, millega me oleme viis korda juba ĂŒles-alla ĂŒmber lĂŒlitunud meie versioonile. Meil on vaja mingit funktsiooni, me saatsime pull requesti, peame selle homme vĂ€lja tooma, kuid ei soovi oodata, kuni see upstreamis vĂ€lja antakse. Seega valmistame endale, paiskame meie versiooni koos meie funktsiooniga, mis on meile vajalik, kĂ”ikidele oma klastritele. Siis ĂŒtlevad nad nĂ€iteks upstreamis: "Kallid, teeme selle palju ĂŒldisema juhtumi jaoks," me, vĂ”i keegi teine, viimistleb selle ja aja jooksul sulandub see jĂ€lle tagasi.
KĂ”ike, mis eksisteerib, pĂŒĂŒame me edasi arendada.. Paljusid elemente, mida veel ei ole, pole veel vĂ€lja mĂ”eldud vĂ”i on vĂ€lja mĂ”eldud, kuid pole suudetud ellu viia - me teeme. Ja mitte seetĂ”ttu, et meile meeldib ise protsess vĂ”i jalgrattaehitus valdkonnana, vaid lihtsalt seetĂ”ttu, et meil on seda tööriista vaja. Tihti kĂŒsitakse, miks me tegime selle vĂ”i teise asja? Vastus on lihtne - sest meil oli vaja edasi liikuda, lahendada mingi praktiline probleem ja me lahendasime selle selle tööriistaga.
Tee on alati selline: me otsime vÀga hoolikalt ja, kui me ei leia mingit lahendust, kuidas leivapÀtsist trollibussi teha, siis teeme oma leivapÀtsi ja oma trollibussi.
Flanta tööriistad
â Ma kuulen, et Flantal on praegu addon-operatorid, shell-operatorid, tööriistad dapp/werf. 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 tĂ”si?
Dmitri: Meil on GitHubis veel palju asju. AinuĂŒksi, mis mul praegu meeles on, on statusmap - paneel Grafanale, mis on kĂ”igile sobinud. Seda mainitakse peaaegu igas teises artiklis Kubernetes'i jĂ€lgimise kohta Mediumis. On vĂ”imatu lĂŒhidalt rÀÀkida, mis on statusmap - selleks on vaja eraldi artiklit, kuid see on vĂ€ga kasulik asi staatuse jĂ€lgimiseks ajas, kuna Kubernetesis on meil sageli vaja kuvada staatust ajas. Veel on meil LogHouse - see on asi ClickHouse'is ja musta maagia baasil logide kogumiseks Kubernetesis.
Palju utiliite! Ja tuleb veel rohkem, sest mĂ”ni sisemine lahendus on sel aastal vabastamisel. Suurte addon-Operaatorite pĂ”hjal on palju addone Kubernetes'i jaoks, nagu nĂ€iteks, kuidas Ă”igesti seadistada sertifikaadihaldurit - tööriist sertifikaatide haldamiseks, kuidas Ă”igesti seadistada Prometheust koos palju lisafunktsioonide - seal on umbes kakskĂŒmmend erinevat binaarfaili, mis eksportivad andmeid ja koguvad midagi, ning Prometheuse jaoks on suurepĂ€rased graafikud ja hoiatuste sĂŒsteem. KĂ”ik need on lihtsalt palju addone Kubernetes'ile, mis installitakse klastrisse ja muudetakse see lihtsast keeruliseks ja automaatseks, kus paljusid kĂŒsimusi on juba lahendatud. Jah, teeme palju.
ĂkosĂŒsteemi areng
â Minu arvates on see vĂ€ga suur panus selle tööriista ja selle kasutusmeetodite arengusse. Kas sa saaksid enam-vĂ€hem hinnata, kes veel teeks nii suurt panust ökosĂŒsteemi arengusse?
Dmitri: Venemaal ei ole ĂŒkski ettevĂ”te, mis tegutseb meie turul, lĂ€hedal.. Muidugi, see on suur avaldus, sest on suured mĂ€ngijad, nagu Mail ja Yandex - nad teevad ka midagi Kubernetes'iga, kuid isegi nemad ei ole lĂ€henenud ettevĂ”tete panusele ĂŒldiselt maailmas, kes teevad palju rohkem kui meie. Raske on vĂ”rrelda "Flant" 80 inimesega ja Red Hat'iga, millel on ainult Kubernetes'e jaoks 300 inseneri, kui ma ei eksi. Raske on vĂ”rrelda. Meie RnD osakonnas on 6 inimest, sealhulgas mina, kes arendavad kĂ”ik meie tööriistad. 6 inimest versus 300 Red Hat'i inseneri - kuidagi raske vĂ”rrelda.
â Siiski, isegi kui need 6 inimest suudavad teha midagi tĂ”eliselt kasulikku ja edasi antavat, kui nad silmitsi seisavad praktilise probleemiga ja annavad lahenduse kogukonnale - huvitav juhtum. Ma mĂ”istan, et suurtes tehnoloogiaettevĂ”tetes, kus on oma arendus ja Kubernetes'i tugimeeskond, vĂ”ivad sellised tööriistad ĂŒldiselt areneda. See on nende jaoks nĂ€ide, et saab arendada ja anda edasi kogukonnale, andes tĂ”uke kogu kogukonnale, kes kasutab Kubernetes'i.
Dmitri: TĂ”enĂ€oliselt on see integratsiooni tegija eripĂ€ra. Meil on palju projekte ja nĂ€eme erinevaid olukordi. Meie peamine viis lisavÀÀrtuse loomiseks on analĂŒĂŒsida neid kohti, leida ĂŒhiseid jooni ja maksimaalselt odavendada neid meie jaoks. Sellega tegeleme aktiivselt. Mul on raske rÀÀkida Venemaast ja maailmast, kuid meil on firmas umbes 40 DevOps-inseneri, kes tegelevad Kubernetesega. Ma ei usu, et Venemaal on palju ettevĂ”tteid, kus oleks sama palju spetsialiste, kes mĂ”istavad Kuberneteset, kui ĂŒldse on.
Ma tean kĂ”ik DevOps-inseneri tiitlist, kĂ”ik mĂ”istavad ja on harjunud nimetama DevOps-insenerideks, me ei hakka seda arutama. KĂ”ik need 40 suurepĂ€rase DevOps-inseneri seisavad iga pĂ€ev silmitsi probleemidega ja lahendavad neid, me lihtsalt analĂŒĂŒsime seda kogemust ja ĂŒritame seda ĂŒldistada. Me mĂ”istame, et kui see jÀÀb ainult meie seas, siis aasta vĂ”i kahe pĂ€rast on tööriist kasutu, sest kuskil kogukonnas ilmub valmis lahendus. Pole mĂ”tet seda kogemust enda sees hoida - see on lihtsalt energiate ja aja raiskamine dev/null'i. Nii et me ei kahetse seda. Me avaldame kĂ”ik suure hea meelega ja mĂ”istame, et seda tuleb avaldada, arendada, reklaamida, et inimesed kasutaksid ja lisaksid oma kogemust - siis kasvavad ja elavad kĂ”ik. Siis kaks aastat hiljem tööriist ei lĂ€he prĂŒgimĂ€ele. Pole kahju energiat jĂ€tkata, sest on nĂ€ha, et keegi kasutab sinu tööriista ja kahe aasta pĂ€rast kasutavad seda kĂ”ik.
See on osa meie suurest strateegiast koos dapp/werfiga.. Ma ei mĂ€leta, millal me selle arendamisega alustasime, tundub, et umbes 3 aastat tagasi. Alguses oli see tĂ€iesti shell'il. See oli super tĂ”estuskontseptsioon, lahendasime mĂ”ned meie erialased probleemid - see toimis! Kuid shell'iga on seal probleeme, seda on edasi arendada vĂ”imatu, shell'il programmeerimine on ĂŒsna vaevarikas. Meil oli harjumus kirjutada Ruby keeles, seega tegime Ruby's midagi ĂŒmber, arendasime, arendasime ja jĂ”udsime sinnamaani, et kogukond, rahvas, kes ei ĂŒtle 'me tahame vĂ”i ei taha', keeras Ruby'le nina, kuigi see ei ole naljakas. Saime aru, et peame kĂ”ik selle kirjutama Go keeles, et lihtsalt vastata nimekirja esimesele punktile: DevOps-tööriist peab olema staatiline binaarGo kasutamine ei ole nii oluline, kuid parem on statiline binaar, mis on kirjutatud Go-s.
Kulusid palju ressursse, et kirjutada dapp Go-s ja nimetada see werfiks. Dapp-i ei toetata enam, see ei arene, see töötab mingis vanas versioonis, kuid on tÀiesti olemas tÀiustuste tee, mida saab jÀrgida.
Miks dapp loodi
â Kas sa saaksid lĂŒhidalt rÀÀkida, miks dapp loodi, milliseid probleeme see lahendab?
Dmitri: Esimene pĂ”hjus on ehitamine. Alguses oli meil tĂ”siseid probleeme ehitamisega, kui Docker ei osanud multi-stage, ja me tegime multi-stage ise. Siis oli meil veel palju kĂŒsimusi image'i puhastamisega. KĂ”ik, kes teevad CI/CD-d, satuvad varem vĂ”i hiljem silmitsi probleemiga, et on palju ehitatud imagesid, mis tuleb kuidagi puhastada, jĂ€ttes alles need, mis on vajalikud.
Teine pĂ”hjus on deploy. Jah, olemas on Helm, kuid see lahendab ainult osa ĂŒlesannetest. Irooniline, et öeldakse: "Helm â Kubernetes'i pakihaldur". Just see "the" on oluline. Veel on sĂ”nad "pakihaldur" â millised ootused on tavaliselt pakihaldurilt? Ătleme: "Pakihaldur - pane pakett!" ja ootame, et ta ĂŒtleb: "Pakett on paigaldatud."
Huvitav, et me rÀÀgime: "Helm, pane pakett", aga kui ta vastab, et on paigaldatud, selgub, et ta alles alustas installimist â ta ĂŒtleb Kubernetes'ile: "KĂ€ivita see asi!", kuid kas see kĂ€ivitus vĂ”i mitte, Helm ei kĂ€sitle seda kĂŒsimust ĂŒldse.
Selgub, et Helm on lihtsalt tekstipreprotsessor, mis laadib andmed Kubernetes'i.
Aga me tahame iga deploy'i raames teada â kas rakendus on produktsiooni jĂ”udnud vĂ”i mitte? Produktsiooni jĂ”udmine tĂ€hendab, et rakendus jĂ”udis sinna, uus versioon on ĂŒles seatud ja see ei jooksnud vĂ€hemalt kokku ning vastab Ă”igesti. Helm ei lahenda seda ĂŒlesannet. Selle ĂŒlesande tĂ€itmiseks tuleb palju vaeva nĂ€ha, sest tuleb anda Kubernetes'ile kĂ€su vĂ€lja viia ja jĂ€lgida, mis seal toimub â kas see on ĂŒles seatud vĂ”i mitte. Ja on veel palju ĂŒlesandeid, mis on seotud deploy'i, puhastamise ja ehitamisega.
Plaane
Sel aastal kavatseme minna kohalikku arendusse. Tahame jĂ”uda selleni, et nagu varem Vagrantis â kirjutasime âvagrant upâ ja meil olid virtuaalid ĂŒles tĂ”usnud. Tahame jĂ”uda sellisse staadiumisse, kus projekt on Gitis, kirjutame sinna âwerf upâ, ja see tĂ”stab kohaliku koopia sellest projektist, mis on paigaldatud kohalikku mini-Kubisse, koos kĂ”igi arenduseks vajalike kaustadega. SĂ”ltuvalt arenduskeelest toimub see erinevalt, kuid ikkagi, et saaks mugavalt teha kohalikku arendust monteeritud failide puhul.
Meie jĂ€rgmine samm on tugevalt investeerida arendajate mugavusse. Et ĂŒhe tööriistaga kiiresti kohalikult ĂŒles tĂ”sta projekt, arendada seda, pushida Gitisse, ning see kĂ€ivitub samuti stage'ile vĂ”i testidele, sĂ”ltuvalt wiret', ja siis sama tööriistaga minna tootmisse. See ĂŒhtsus, ĂŒhtsustamine, infrastruktuuri reprodutseeritavus kohalikust keskkonnast tootmiseni on meie jaoks vĂ€ga oluline punkt. Kuid seda hetkel werf'is pole â alles plaanime teha.
Aga tee dapp/werf'ini on alati olnud sama, nagu Kubernetesega alguses. Me kohtusime probleemidega, lahendasime need ĂŒmbersuunamistega â vĂ€lja mĂ”tleme endale lahendusi shellis, milles iganes. Siis pĂŒĂŒdsime neid ĂŒmbersuunamisi kuidagi sirgendada, ĂŒldistada ja koondada binaridega, mis me lihtsalt jagame.
On veel teine vaade kogu sellele loole, analoogiate kaudu.
Kubernetes on nagu auto raam koos mootoriga. Pole uksi, klaase, raadiovastuvĂ”tjat, lĂ”hnastajat â absoluutselt mitte midagi. Ainult raam ja mootor. Ja on Helm â see on rool. Lahe, et rool on olemas, aga vaja on ka roolisĂ€tet, rooliretke, kĂ€igukasti ja rattaid, ilma nendeta ei saa midagi.
Werf'i puhul on see veel ĂŒks komponent Kubernetesega. Ainult praegu on meil werf'i alfa-versioonis nĂ€iteks Helm sisestatud tĂ€ielikult werf'i sisse, sest me oleme vĂ€sinud seda ise tegema. Palju pĂ”hjuseid seda teha, detailselt selle kohta, miks me kompileerisime helm'i koos tilleriga tĂ€ielikult werf'i sisse, rÀÀgin ma just .
Praegu on werf palju integreeritud komponent. Meil on valmis rool, rooli ĆĄtift â ma ei ole autodes vĂ€ga pĂ€dev, aga see on suur plokk, mis lahendab juba piisavalt laia spektri ĂŒlesandeid. Me ei pea ise kataloogis tuhnima, valima ĂŒhte detaili teise juurde, mĂ”tlema, kuidas neid omavahel kokku sobitada. Saame valmis kombaini, mis lahendab korraga palju ĂŒlesandeid. Kuid sees on kĂ”ik endiselt avatud lĂ€htekoodiga koostisosad, kasutatakse Dockerit ehitamiseks, Helmi osa funktsionaalsuse jaoks ja veel mitu muud teeki. See on integreeritud tööriist, et saada kiiresti ja mugavalt kvaliteetne CI/CD kohe vĂ€lja kastist.
Kas on raske toetada Kuberneteset?
â Sa rÀÀgid kogemusest, et hakkasite kasutama Kuberneteset, see on teie raam, mootor, ja sellele saab palju erinevaid asju kĂŒlge ehitada: kere, rool, kinnitada pedaalid, istmed. Kerkib kĂŒsimus â kui keeruline on teil Kuberneteset toetada? Teie kogemus on rikas, kui palju aega ja ressursse kulub just Kuberneteset toetamisele vĂ”rreldes kĂ”igega muuga?
Dmitri: See on vĂ€ga keeruline kĂŒsimus ja et vastata, tuleb mĂ”ista, mis on toetamine ja mida me Kuberneteselt tahame. VĂ”ib-olla sa avad selle?
â Nii palju kui ma tean ja kuidas ma nĂ€en, tahab praegu palju meeskondi proovida Kuberneteset. KĂ”ik sukeldavad end sellesse, installivad selle kĂ”iki. Mul on tunne, et inimesed ei mĂ”ista alati selle sĂŒsteemi keerukust.
Dmitri: Just niimoodi.
â Kui keeruline on vĂ”tta ja installida Kubernetes tĂ€iesti nullist nii, et see oleks tootmisvalmis?
Dmitri: Kuidas sa arvad, kui keeruline on sĂŒdant vahetada? Ma mĂ”istan, et kĂŒsimus on komplitseeriv. KĂ€epide nuga ja mitte eksida â see ei ole nii keeruline. Kui sulle öeldakse, kus lĂ”igata ja kus Ă”mmelda, siis on protseduur iseenesest lihtne. Raskeks muutub garanteerida, et iga kord kĂ”ik Ă”nnestub.
Kuberneteset installimine ja tööle panemine on lihtne: tĆĄik! â see on installitud, on palju installimise viise. Aga mis juhtub, kui tekivad probleemid?
Alati tekivad kĂŒsimused â mida me veel ei arvestanud? Mida me veel ei teinud? Millised Linuxi tuuma parameetrid me valesti mĂ€rkisime? Jumal, kas me ĂŒldse mĂ€rkisime?! Millised Kubernetes komponentid me installisime, aga millised mitte? Tekivad tuhanded kĂŒsimused ja neile vastamiseks on vaja 15-20 aastat selle valdkonna kogemust.
Mul on vÀrske nÀide selle teema kohta, mis vÔib avada probleemi, kas "Kas Kubernetes'e toetamine on keeruline?" MÔni aeg tagasi mÔtlesime tÔsiselt, kas proovida Ciliumit rakendada Kubernetes'e vÔrguna.
Selgitan, mis on Cilium. Kubernetes'es on palju erinevaid vĂ”rgusubside rakendusi, ja ĂŒks neist on lausa fantastiline - see on Cilium. Mis on selle mĂ”te? Tuuma sees ilmus mĂ”ni aeg tagasi vĂ”imalus kirjutada tuuma hook'e, mis mingil moel sekkuvad vĂ”rgusubside ja erinevate teiste sĂŒsteemide toimimisse ning vĂ”imaldavad mööda minna suurtest osadest tuumas.
Linuxi tuumas on ajalooliselt olemas ip rout, net-filter, sildade ja palju erinevaid vanu komponente, mille igaĂŒhel on 15, 20, 30 aastat. Ăldiselt nad töötavad, kĂ”ik on suurepĂ€rane, aga praegu on konteinerite liialdamise tĂ”ttu see nagu 15 tellise torn, mille peal seisad ĂŒhel jalal - kummaline tunne. See sĂŒsteem on ajalooliselt arenenud paljude nĂŒanssidega, nagu appendiksi areng organismis. Teatud olukordades on esinenud sooritusvĂ”ime probleeme, nĂ€iteks.
On suurepĂ€rane BPF ja vĂ”imalus kirjutada tuuma hook'e - kutid kirjutasid oma hook'id tuumale. Pakett siseneva Linuxi tuuma, nad vĂ”tavad selle kohe sisse, töötlevad selle ise vajalikul viisil, ilma sildadeta, ilma TCP-ta, ilma IP-stekita - lĂŒhidalt, mööda kĂ”ige, mis on kirjutatud Linuxi tuumas, ja kohe oksendavad konteinerisse.
Mis sai? VĂ€ga lahe jĂ”udlus, Ă€gedad funktsioonid - lihtsalt fantastiline! Kuid me vaatame seda ja nĂ€eme, et igal masinal on programm, mis ĂŒhendub Kubernetes'e API-ga ja saadud andmete pĂ”hjal genereerib C-koodi ning kompileerib binaarfailid, mis laaditakse tuuma, et need hook'id töötaksid kernel space'is.
Mis juhtub, kui midagi lÀheb valesti? Me ei tea. Selle mÔistmiseks tuleb lugeda kogu see kood lÀbi, mÔista kogu loogikat, ja see on uskumatult keeruline. Aga teisalt, on need sillad, net-filter'id, ip rout - ma ei ole nende lÀhtekoodiga tutvunud, ja meie ettevÔttes töötavad 40 inseneri samuti. VÔib-olla mÔistavad mÔned osad vÀhesed.
Ja mis vahet seal on? Tundub, et on olemas ip rout, Linuxi tuum ja uus tööriist - mis vahet seal on, me ei mĂ”ista kumbagi. Kuid me kardame uut kasutada - miks? Sest kui tööriist on 30 aastat vana, siis 30 aastaga on kĂ”ik vead leitud, kĂ”ikidele takistustele astutud ja pole vaja kĂ”igest teada - töötab nagu must kast ja töötab alati. KĂ”ik teavad, kuhu panna diagnostiline kruvikeeraja, millal kĂ€ivitada tcpdump. KĂ”ik tunnevad diagnostilisi tööriistu ja mĂ”istavad, kuidas see komponentide kogum Linuxi tuumas töötab - mitte kuidas see on ĂŒles ehitatud, vaid kuidas seda kasutada.
Aga ĂŒliĂ€ge Cilium ei ole 30 aastat vana, see ei ole veel valminud. Kubernetesel on sama probleem, koopia. Nii Cilium installitakse suurepĂ€raselt kui ka Kubernetes, aga kui midagi lĂ€heb tootmisjĂ€rgus valesti, kas te suudate kriitilises olukorras kiiresti aru saada, mis valesti lĂ€ks?
Kui me kĂŒsime, kas Kuberneteset on keeruline hallata - ei, see on vĂ€ga lihtne, ja jah, uskumatult keeruline. Kubernetes töötab imeliselt iseenesest, aga miljardite nĂŒanssidega.
MÔte "Mul vedas"
- Kas on olemas ettevĂ”tteid, kus need nĂŒansid peaaegu garanteeritult ilmuvad? Oletame, et Yandex ĂŒleeestiliselt viib kĂ”ik teenused Kubernetesesse, seal on tohutu koormus.
Dmitri: Ei, see ei ole ju jutt koormusest, vaid kĂ”ige lihtsamatest asjadest. NĂ€iteks, meil on Kubernetes, me oleme sinna rakenduse paigaldanud. Kuidas mĂ”ista, et see töötab? Valmiskujul tööriista, et teada saada, et rakendus ei kokku kuku, lihtsalt pole. Valmiskujul sĂŒsteemi, mis saadab hĂ€ireid - ei ole, tuleb need hĂ€ired ja iga graafik seadistada. Ja me uuendame Kuberneteset.
Ubuntu 16.04 on enduru. See on vana versioon, kuid me oleme endiselt sellel, kuna seal on LTS. Seal on systemd, mille nĂŒanss on see, et ta ei puhasta C-gruppe. Kubernetes kĂ€ivitab podid, loob C-gruppe, seejĂ€rel kustutab podid ja kuidagi jÀÀb nii, et ma ei mĂ€leta detaile, vabandust, et systemd sildid jÀÀvad alles. See toob kaasa selle, et aja jooksul hakkab iga masin tugevalt tarduma. See pole isegi kĂŒsimus highloadi kohta. Kui kĂ€ivitatakse pidevaid pode, nĂ€iteks kui on Cron Job, mis pidevalt genereerib pode, siis masin Ubuntu 16.04 hakkab nĂ€dala pĂ€rast tarduma. Seal on pidevalt kĂ”rge laadimise keskmine, kuna on loodud hulk C-gruppe. See on probleem, millega silmitsi seisab igaĂŒks, kes lihtsalt installib Ubuntu 16 ja selle peale Kubernetes.
Oletame, et ta kuidagi uuendab systemd vĂ”i midagi muud, kuid Linuxi tuumas on kuni 4.16 veel naljakam â C-gruppide kustutamisel lekkivad nad tuumas ja tegelikult ei eemaldu. SeetĂ”ttu on pĂ€rast kuu aega selle masinaga peaaegu vĂ”imatu vaadata statistikat mĂ€lu osas podide kohta. Me vĂ”tame faili, veereme programmis ja ĂŒks fail veereb 15 sekundit, kuna tuum vajab vĂ€ga kaua aega, et arvutada endas miljonit C-gruppi, mis nĂ€iliselt on kustutatud, kuid ei ole â nad lekkivad.
Selliseid pisiasju on endiselt vĂ€ga palju seal ja siin. See ei ole kĂŒsimus, millega suurfirmad vĂ”ivad aeg-ajalt silmitsi seista vĂ€ga suurte koormuste korral â ei, see on igapĂ€evaste asjade kĂŒsimus. Inimesed vĂ”ivad niimoodi kuude viisi elada â installisid Kubernetes'i, juurutati rakendus â tundub, et töötab. Paljude jaoks on see normaalne. Nad isegi ei saa teada, et rakendus kukub kunagi mingil pĂ”hjusel, hĂ€ire ei jĂ”ua, kuid see on nende normaalsus. Varem elasime virtuaalmasinatel ilma jĂ€lgimiseta, nĂŒĂŒd kolisime Kubernetes'esse samuti ilma jĂ€lgimiseta â mis see muudab?
KĂŒsimus on selles, et kui me kĂ€ime jÀÀ peal, ei tea me kunagi tema paksust, kui me ei ole seda eelnevalt mÔÔtnud. Paljud kĂ€ivad ja ei vaeva end, sest nad on varem kĂ€inud.
Minu vaatenurgast on nĂŒanss ja keerukus mis tahes sĂŒsteemi kasutamisel selles, et tagada, et jÀÀ paksus on kindlasti piisav, et meie ĂŒlesandeid lahendada. Just sellest on jutt.
IT-sektoris paistab, et liiga palju on lĂ€henemist "VĂ”ib-olla Ă”nnestub". Palju inimesi installib tarkvara ja kasutab teeke lootuses, et neil vedada. Ăldiselt vedab paljusid. TĂ”enĂ€oliselt seetĂ”ttu see toimib.
- Minu pessimistlikul hinnangul nÀeb see vÀlja nii: kui riskid on suured ja rakendus peab töötama, siis on vajalik toetus "Flantilt", vÔib-olla Red Hatilt, vÔi vajame oma sisemist meeskonda, mis on spetsiaalselt Kubernetes'ega tegelemiseks, kes on valmis seda juhtima.
Dmitri: Objektiivselt on see tÔsi. VÀikesel meeskonnal on riske ise Kubernetes'esse siseneda.
Kas me vajame konteinerite kasutust?
- Kas sa saad rÀÀkida, kui laialdaselt Kubernetes Venemaal ĂŒldiselt levinud on?
Dmitri: Mul ei ole neid andmeid ja ma ei ole kindel, kas kellelgi need ĂŒldse olemas on. Me rÀÀgime: "Kubernetes, Kubernetes", kuid on ka teine vaatenurk sellele kĂŒsimusele. Kui laialdaselt konteinerid levivad, ma ei tea, kuid tean ĂŒhte numbrit internetis olevatest raportitest, et 70% konteineritest orkestreeritakse Kubernetes'ega. See oli usaldusvÀÀrne allikas piisavalt suure valimi kohta globaalses mastaabis.
JĂ€rgmiseks kĂŒsimus - kas me vajame konteinerite kasutust? Minu isiklik tunne ja ĂŒldine seisukoht ettevĂ”tte "Flant" osas on see, et Kubernetes on de facto standard.
Mitte midagi peale Kubernetes'e ei tule.
See on absoluutne mĂ€ngumuutus infrastruktuuri haldamise valdkonnas. Lihtsalt absoluutne - enam ei ole Ansible'i, Chefi, virtuaalmachinesid, Terraform'i. Ma ei hakka rÀÀkima vanadest kĂ€sitöömeetoditest. Kubernetes on absoluutne muutja, ja nĂŒĂŒd jÀÀb ainult nii.
Selge, et mĂ”nedel kulub paar aastat, teistel paar aastakĂŒmmet, et seda mĂ”ista. Mul ei ole kahtlusi, et ei tule midagi muud peale Kubernetes'e ja selle uue vaate: me ei hĂ€iri enam operatsioonisĂŒsteemi, vaid kasutame infrastructure as code, ainult et mitte koodiga, vaid yml-ga - deklareeritud infrastruktuuri. Mul on tunne, et nii jÀÀb alati.
- Ehk siis ettevĂ”tted, kes ei ole veel Kubernetes'ele ĂŒle lĂ€inud, peavad kindlasti sellele ĂŒle minema, vĂ”i jÀÀvad unustusse. Kas ma sain sind Ă”igesti aru?
Dmitri: See, that's not entirely correct. For instance, if we need to launch a DNS server, it can run on FreeBSD 4.10 and work perfectly for 20 years. Just operate and that's it. Perhaps after 20 years, we might need to upgrade something once. If we're talking about software in the format that we launched and it actually works for many years without any updates, without any changes, then, of course, Kubernetes won't be there. It's simply not needed.
Everything related to CI/CDâanywhere Continuous Delivery is required, where version updates are needed, where active changes are necessary, anywhere where resilience must be establishedâonly Kubernetes fits here.
About microservices
â Here I have a slight dissonance. To work with Kubernetes, both external and internal support are neededâthat's the first point. The second is that when we're just starting development, we're a small startup, we have nothing yet, developing for Kubernetes or even for a microservice architecture can be challenging, and it's not always justified economically. I'm curious about your opinionâshould startups right from the start begin writing for Kubernetes or should they first create a monolith and then transition to Kubernetes?
Dmitri: Great question. I have a presentation about microservices. I've encountered many times that people try to hammer nails with a microscope. The approach itself is correct; we design our internal software projects precisely this way. But when doing so, one must clearly understand what they are doing. Most of all in microservices, I dislike the term âmicro.â It historically emerged, and for some reason, people think that micro means very small, smaller than a millimeter, like a micrometer. That's not the case.
For example, there's a monolith that 300 people write, and everyone involved in the development understands that there are issues, and it needs to be broken down into micro-piecesâabout 10, with each being written by at least 30 people. This is important, necessary, and cool. However, when a startup approaches us with 3 very cool and talented guys having written 60 microservices on a whim, I invariably look for some calming medicine.
Minu arvates on sellest juba rÀÀgitud tuhanded kordi â oleme saanud hajutatud monoliidi ĂŒhes vĂ”i teises vormis. See pole majanduslikult mĂ”ttekas, see on ĂŒldiselt vĂ€ga keeruline. Lihtsalt olen seda nii palju kordi nĂ€inud, et mul on tĂ”eliselt valus, seetĂ”ttu jĂ€tkan sellest rÀÀkimist.
Algsesse kĂŒsimusse, et konflikt eksisteerib selle vahel, et Kubernetes on hirmutav kasutada, sest pole selge, mis seal vĂ”ib puruneda vĂ”i mitte töötada, ja teisest kĂŒljest on selge, et kĂ”ik liigub sinna ja midagi muud ei saa olema. Vastus on kaaluda kasu, mis tuleb, ja ĂŒlesannete mahtu, mille te suudate lahendada. See on ĂŒhe kaalu poole. Teiselt poolt on riskid, mis on seotud seiskamise vĂ”i reageerimisaega, kĂ€ttesaadavuse taset â töö nĂ€itajate vĂ€henemisega.
Siin on asi nii â kas me liigume kiiresti edasi ja Kubernetes vĂ”imaldab paljusid asju teha palju kiiremini ja paremini, vĂ”i kasutame usaldusvÀÀrseid, ajaga tĂ”estatud lahendusi, kuid liigume palju aeglasemalt. Selle valiku teeb iga ettevĂ”te. Seda vĂ”ib vaadelda nagu radade hulgas â kui lĂ€hed esmakordselt, vĂ”id kohata madu, tiigrit vĂ”i raevu tĂ€is mĂ€gra, ja kui oled kĂ€inud 10 korda â oled raja lĂ€bi jalutanud, oksad eemal viinud ning on lihtsam kĂ€ia. Iga korraga muutub rada laiemaks. Hiljem on see asfalttee, ja veel hiljem ilus bulvar.
Kubernetes ei seisa paigal. JĂ€lle kĂŒsimus: Kubernetes, ĂŒhelt poolt, on 4-5 binaarfaili, teiselt poolt â see on kogu ökosĂŒsteem. See on opsĂŒsteem, mis meil masinates töötab. Mis see on? Ubuntu vĂ”i Curios? See on Linuxi kernel, hunnik lisakomponente. KĂ”ik need asjad on siin ĂŒhe mĂŒrkmaoga tee pealt eemaldatud, seal on aed pandud. Kubernetes areneb vĂ€ga kiiresti ja dĂŒnaamiliselt ning riskide maht, avastamata ala iga kuuga vĂ€heneb ja seega need kaalud saavad tasakaalu.
Vastates kĂŒsimusele, mida teha idufirmaga, ĂŒtleksin, et tulge Flantele, makske 150 000 rubla ja saage vĂ”tmed kĂ€tte DevOps teenus. Kui olete vĂ€ike idufirma, kus tegutseb paar arendajat, siis see toimib. Selle asemel, et palgata oma DevOps, kellele tuleb Ă”petada, kuidas teie probleeme lahendada ja maksta selle aja eest palka, saate vĂ”tmed kĂ€tte lahenduse kĂ”ikidele kĂŒsimustele. Jah, on mĂ”ned miinused. Meie, kui vĂ€line teenusepakkuja, ei saa olla nii kaasatud ja kiiresti reageerida muudatuste tegemisele. Kuid meil on tohutult kogemusi, valmis praktikaid. Me garanteerime, et igas olukorras mĂ”istame me kiirelt ja lahendame iga Kubernetes'e kĂŒsimuse.
Ma soovitan kategooriliselt idufirmadele ja juba vÀlja kujunenud Àridele vÀlistada seni, kuni suudate eraldada vÀhemalt 10-mehelise tegevusmeeskonna, sest muidu pole sellel mÔtet. See on kategooriliselt mÔistlik Àri vÀljastada.
Amazonist ja Google'ist
â Kas saab Amazonilt vĂ”i Googlest pakutavat lahendust vĂ€listeenuse osutajana kĂ€sitleda?
Dmitri: Jah, loomulikult, see lahendab teatavad kĂŒsimused. Kuid on nĂŒansse. Sa pead ikkagi aru saama, kuidas seda kasutada. NĂ€iteks on Amazon AWS töökorralduses tuhandeid pisiasju: Load Balancer tuleb eelnevalt ette valmistada vĂ”i paluda, et âmeie juurde tuleb liiklust, palun valmistage Load Balancer ette!â Need nĂŒansid tuleb teada.
Kui pöördute inimeste poole, kes sellega tegelevad, saate kohe nĂ€iliselt kĂ”ik tĂŒĂŒpilised asjad kaetud. Praegu on meil 40 inseneri, aastaks lĂ”pus on neid tĂ”enĂ€oliselt 60 â me oleme kĂ”igi nende asjadega juba kokku puutunud. Isegi kui mĂ”nel projektil seisame silmitsi uue probleemiga, kĂŒsime me juba kiirelt ĂŒksteiselt, et teada, kuidas lahendada.
TĂ”enĂ€oliselt on vastus selline â jah, hosted-ajalugu lihtsustab mingi osa. KĂŒsimus on selles, kas olete valmis nende hostide usaldama ja kas nad lahendavad teie probleemid. Amazon ja Google on hĂ€sti tĂ”estanud oma vĂ”imeid. KĂ”ikide meie juhtumite puhul â kindlasti. Meil pole rohkem positiivseid kogemusi. KĂ”ik teised pilved, millega me oleme proovinud töötada, loovad vĂ€ga palju probleeme â ja Ager, ja kĂ”ik, mis on Venemaal, ja kĂ”ikvĂ”imalikud OpenStack erinevates elluviimistes: Headster, Overage â kĂ”ik, mida soovite. Need kĂ”ik loovad probleeme, mida ei taha lahendada.
Seega, vastus on jah, kuid tegelikult ei ole kĂŒpsed hosted-lahendused kuigi palju.
Kelle on Kubernetes vajalik?
â Aga kellele on Kubernetes vajalik? Kes peaks juba Kubernetesile ĂŒle minema, kes on tĂŒĂŒpiline klient, kes tuleb just Kubernetes'i pĂ€rast?
Dmitri: KĂŒsimus on huvitav, sest praegu just Kubernetes'e lainel tulevad meile paljud: "Me teame, et teil on Kubernetes, tehke meile!". Vastame neile: "HĂ€rrad, me ei tegele Kubernetes'ega, me tegeleme tootmise ja kĂ”ikide sellega seotud asjadega". Sest tootmise tegemine ilma kogu CI/CD ja selle looga on praegu lihtsalt vĂ”imatu. KĂ”ik on loobunud eristamisest, et meil on arendamine arendamine ja seejĂ€rel opereerimine opereerimine.
Meie kliendid ootavad erinevaid asju, kuid kĂ”ik ootavad mingit head imet, et neil on mingid probleemid ja praegu â hop! â Kubernetes lahendab need. Inimesed usuvad imedesse. Nad mĂ”istavad mĂ”istusega, et imet ei toimu, kuid hingega loodavad â Ă€kki see Kubernetes lahendab kĂ”ik, temast rÀÀgitakse nii palju! Ăkki ta nĂŒĂŒd â tĆĄah! â ja hĂ”bedane kuul, tĆĄah! â ja meil on 100% tööaeg, kĂ”ik arendajad saavad 50 korda vĂ€lja lasta, mis iganes tootmisse ja see ei kuku. KokkuvĂ”ttes, ime!
Kui sellised inimesed meile tulevad, ĂŒtlemme: "Vabandage, kuid imet ei juhtu". Terve olema, tuleb hĂ€sti toituda ja spordiga tegeleda. UsaldusvÀÀrse tootmise jaoks tuleb see usaldusvÀÀrselt Ă€ra teha. Mugava CI/CD jaoks tuleb see selliseks teha. See on palju tööd, mida tuleb teha.
Vastates kĂŒsimusele, kellele on Kubernetes vajalik â Kubernetes ei ole kellelegi vajalik.
MĂ”nedel inimestel on vale arusaam, et neil on Kubernetes vajalik. Inimestel on vaja, neil on sĂŒgavalt juurdunud vajadus lĂ”petada mĂ”tlemine, tegelemine ja huvitamine kĂ”ikide infrastruktuuri probleemidega ja nende rakenduste kĂ€itamise probleemidega. Nad tahavad, et rakendused lihtsalt töötaksid ja lihtsalt deploy'itakse. Nende jaoks on Kubernetes lootus, et nad lĂ”petavad kuulmast lugusid, et "me olime seal lagunemas", vĂ”i "me ei saa vĂ€lja minna", vĂ”i midagi muud.
Meile tuleb tavaliselt tehniline direktor. Temalt kĂŒsitakse kahte asja: ĂŒhelt poolt, andke meile funktsioonid, teiselt poolt â stabiilsus. Me pakume seda enda peale vĂ”tta ja teha. HĂ”bedane kuul, tĂ€psemalt hĂ”betatud, on see, et sa lĂ”petad nende probleemide ĂŒle mĂ”tlemise ja aja raiskamise. Sul on spetsiaalsed inimesed, kes selle kĂŒsimuse lahendavad.
Vormulatsioon, et meil vÔi kellelgi on vaja Kubernetes't - on vale.
Kubernetes on adminnidele vĂ€ga vajalik, sest see on tĂ”eliselt huvitav mĂ€nguasi, millega saab mĂ€ngida, nokitseda. Olgem ausad - kĂ”ik armastavad mĂ€nguasju. Me kĂ”ik oleme kuskil lapsed, ja kui me nĂ€eme uut, tahame sellega mĂ€ngida. MĂ”nel on see juba vĂ€lja lĂŒlitatud, nĂ€iteks adminni töös, sest on juba mĂ€nginud ja on nii tĂŒdinud, et ei taha enam. Kuid see ei ole kellelgi tĂ€ielikult vĂ€lja lĂŒlitatud. NĂ€iteks, kui mulle mĂ€nguasjad sĂŒsteemiadministreerimise ja DevOpsi valdkonnas juba ammu ei meeldi, siis armastan ma ikkagi mĂ€nguasju, ostan ikka uusi. KĂ”ik inimesed tahavad mingil viisil ikka mingeid mĂ€nguasju.
Ărge mĂ€ngige tootmisprotsessiga. Midagi, mida ma kategooriliselt ei soovita teha ja mida ma praegu massiliselt nĂ€en: 'Ah, uus mĂ€nguasi!' - kiirustame seda ostma, ostsime ja: 'VĂ”tame selle nĂŒĂŒd kooli, nĂ€itame kĂ”ikidele sĂ”pradele'. Ărge tehke nii. Vabandan, mul on lihtsalt lapsed, nad kasvavad, ma mĂ€rkasin pidevalt midagi lastest, tajun seda enda juures ja ĂŒldistan seejĂ€rel ka teistel.
LÔplik vastus: Kubernetes't ei ole teil vaja. Teil tuleb lahendada oma probleemid.
Saame saavutada seda, et:
- toode ei kuku;
- isegi kui ta pĂŒĂŒab kukkuda, teame me sellest eelnevalt ja saame midagi alusele panna;
- saame seda muuta nii kiiresti, kui me vajame vastavalt Àri vajadustele, ja teha seda mugavalt, see ei tekita meile probleeme.
Reaalseid vajadusi on kaks: usaldusvÀÀrsus ja dĂŒnaamilisus/paindlikkus rakenduste juurutamisel. KĂ”ik, kes praegu teevad mingisuguseid IT-projekte, olenemata ettevĂ”tte tĂŒĂŒbist - tarkvara maailma lihtsustamiseks, ja kes seda mĂ”istavad, peavad lahendama need vajadused. Kubernetes Ă”igesti lĂ€henedes, Ă”ige arusaamise ja piisava kogemusega vĂ”imaldab neid lahendada.
Serverless'i kohta
- Kui vaadata tulevikku, siis pĂŒĂŒdes lahendada probleem infrastruktuuri peavaludest, juurutamise kiirusest ja rakenduse muutmise kiirusest, ilmuvad uued lahendused, nĂ€iteks serverless. Kas tunned sa mingit potentsiaali selle suuna osas ja ĂŒtleme, et ohtu Kubernetes'ele ja sarnastele lahendustele?
Dmitri: Siin tuleb jĂ€lle mĂ€rkida, et ma ei ole ennustaja, kes vaatab ette ja ĂŒtleb â nii lĂ€heb! Kuigi ma just tegin sama. Vaatan jalge ette ja nĂ€en seal hulgaliselt probleeme, nĂ€iteks kuidas transistore arvutites kasutatakse. Naljakas, eks? Me kohtame mingeid vigu CPU-s.
Serverless'i tegemine peab olema piisavalt usaldusvÀÀrne, odav, efektiivne ja mugav, lahendades kĂ”ik ökosĂŒsteemiga seotud kĂŒsimused. Siin olen nĂ”us Elon Muskiga, et inimkonna jaoks on vajalik teine planeet, et tagada töökindlus. Kuigi ma ei tea, mida ta ĂŒtleb, saan aru, et ma ei ole valmis Marsile reisima ja see ei juhtu homme.
Serverless on ideoloogiliselt Ă”ige asi, nagu inimkonna jaoks töökindlus â kaks planeeti on parem kui ĂŒks. Aga kuidas seda praegu teha? Ăhe ekspeditsiooni saatmine ei ole probleem, kui sellele keskenduda. Saata mitu ekspeditsiooni ja asustada sinna mitu tuhat inimest tundub ka reaalne. Ent tĂ€ieliku töökindluse saavutamine, et pool inimkonnast seal elaks, tundub praegu vĂ”imatu ja arutlemise alt vĂ€ljas.
Serverless on sama asi: see on Ă€ge, kuid kaugel 2019. aasta probleemidest. Ligikaudu 2030 â elame selle ajani. Ma ei kahtle, et elame, kindlasti elame (korrake seda enne magamaminekut), aga praegu tuleb lahendada teisi probleeme. See on nagu usk muinasjutu poni Rainbow'sse. Jah, paar protsenti juhtumitest lahendatakse ja lahendatakse suurepĂ€raselt, kuid subjektiivselt on serverless nagu vikerkaar⊠Minu jaoks on see teema liiga kaugel ja liiga arusaamatu. Ma ei ole valmis rÀÀkima. 2019. aastal ei saa ĂŒhegi rakenduse serverless'iga kirjutada.
Kuidas arendatakse Kubernetes't
â Seni kui me liikume selle potentsiaalselt suurepĂ€rase tuleviku suunas, kuidas sa arvad, kuidas Kubernetes ja selle ĂŒmber olev ökosĂŒsteem arenevad?
Dmitri: Ma olen sellele palju mĂ”elnud ja mul on selge vastus. Esiteks â statefull â statelessâit on kergem teha. Kubernetes investeeris alguses rohkem sellesse, sealt kĂ”ik algas. Stateless töötab Kubernetes'is praktiliselt ideaalselt, lihtsalt pole millegi kallal norida. Statefulliga on veel palju probleeme, tegelikult peensusi. Meil töötab seal juba kĂ”ik ideaalselt, aga see oleme meie. Selleks, et see toimiks kĂ”igil, on vaja veel vĂ€hemalt paar aastat. See ei ole arvutatud nĂ€itaja, vaid minu tunne peast.
LĂŒhidalt, statefull peab vĂ€ga tugevasti â ja tuleb â arenema, sest kĂ”ik meie rakendused sĂ€ilitavad staatust, stateless-rakendusi ei eksisteeri. See on illusioon, alati on vajalik mingi andmebaas ja midagi veel. Statefull on kĂ”ikvĂ”imalike asjade sirgendamine, kĂ”ikide bugide parandamine, kĂ”ikide probleemide lahendamine, millega praegu silmitsi seisame â nimetame seda vastuvĂ”tmiseks.
Uurimata taseme, lahendamata probleemide taseme, tĂ”enĂ€osuse taseme millegagi kokku puutuda, hakkab oluliselt vĂ€henema. See on oluline lugu. Ja operaatorid â kĂ”ik, mis on seotud haldustoimekuse, juhtimisloogika kodeerimisega, et saavutada lihtne teenus: MySQL lihtne teenus, RabbitMQ lihtne teenus, Memcache lihtne teenus, â kĂ”ik need komponendid, mis meil on vajalikud, et saada kĂ”ike karbist garanteeritult toimima. See lahendab just neid muresid, et me tahame andmebaasi, aga ei taha seda hallata, vĂ”i tahame Kubernetes't, aga ei taha seda hallata.
See lugu operaatorite arengust mingis vormis on lÀhiaastatel oluline.
Ma arvan, et töö lihtsus peaks oluliselt tĂ”usma â kast hakkab muutuma ĂŒha mustemaks, ĂŒha usaldusvÀÀrsemaks, koos ĂŒha lihtsamate reguleerimisvĂ”imalustega.
Ma kuulasin kunagi YouTube'is 80ndate vana intervjuud Isaac Asimoviga showâs Saturday Night Live â saade, mis on nagu Urgant, aga huvitavam. Teda kĂŒsiti arvutite tuleviku kohta. Ta ĂŒtles, et tulevik on lihtsuses, nagu see oli raadioaparaadi puhul. Raadioaparaat oli alguses keeruline asi. Et signaali kinni pĂŒĂŒda, pidi 15 minutit nuppude keeramist tegema, keerama nuppusid ja tegelikult teadma, kuidas kĂ”ik töötab, mĂ”istma raadiolainete edastamise fĂŒĂŒsikat. LĂ”puks jĂ€i raadiole vaid ĂŒks nupp.
Praegu, 2019. aastal, milline raadio on? Autotasku raadio leiab kĂ”ik sagedused, jaamade nimed. Protsessi fĂŒĂŒsika pole 100 aasta jooksul muutunud, kuid kasutusmugavus on muutunud. Praegu, ja mitte ainult praegu, juba 1980. aastal, kui toimus intervjuu Asimoviga, kasutasid kĂ”ik raadiot ja keegi ei mĂ”elnud sellele, kuidas see töötab. See lihtsalt töötas â see on fakt.
Asimov ĂŒtles siis, et arvutitega on sama â kasutusmugavus tĂ”useb. Kui 1980. aastal pidi arvuti nuppude vajamiseks omama erilist haridust, siis tulevikus see nii ei ole.
Mul on tunne, et Kubernetesega ja infrastruktuuriga juhtub samuti, et kasutusmugavus tĂ”useb oluliselt. See on, minu arvates, ilmne â see on silmnĂ€htav.
Mis saab inseneridest?
â Aga mis saab inseneridest, sĂŒsteemiadministraatoritest, kes toetavad Kubernetesâi?
Dmitri: Mis juhtus raamatupidajaga pĂ€rast 1C ilmumist? Umbes sama asi. Enne arvutati paberil â nĂŒĂŒd programmis. Tootlikkus on tĂ”usnud kordades, kuigi töö ei ole kadunud. Kui varem oli pirni vahetamiseks vaja 10 inseneri, siis nĂŒĂŒd piisab ĂŒhest.
Tarkvara ja ĂŒlesannete hulk kasvab praegu kiiresti, rohkem kui uusi DevOpsâe ilmub ja efektiivsus tĂ”useb. Praegu on turul konkreetne puudus ja see kestab kaua. Hiljem jĂ”uab kĂ”ik teatud normaalsusesse, kus töö efektiivsus tĂ”useb, tuleb jĂ€rjest rohkem serveriteta lahendusi, Kubernetesâesse ĂŒhendatakse neuronvĂ”rk, mis valib kĂ”ik ressursid just nagu vaja, ja teeb kĂ”ik ise, just nagu peab â inimene seisma ja mitte segada.
Kuid lahendusi peab keegi ikka tegema. On selge, et selle isiku kvalifikatsioon on kĂ”rgem. Praegu ei vaja raamatupidamisosakonnas enam 10 töötajat, kes raamatupidamisraamatuid peavad, et nende kĂ€si ei vĂ€siks. See on lihtsalt ĂŒleliigne. Paljusid dokumente skaneeritakse automaatselt, need tuvastatakse elektroonilise dokumendihalduse sĂŒsteemi poolt. Piisab ĂŒhest nutikast pea raamatupidajast, kellel on palju suuremad oskused ja hea arusaamine.
Ăldiselt on selline teekond kĂ”igis valdkondades. Autode puhul on see sama: varem kuulus autoga alati kaasa autojuht ja kolm juhti. NĂŒĂŒd on auto juhtimine kĂ”ige lihtsam protsess, milles me kĂ”ik osaleme iga pĂ€ev. Keegi ei mĂ”tle, et auto on midagi keerulist.
DevOps vĂ”i sĂŒsteemi inseneria ei kao kuskile â töö kĂ”rgtase ja efektiivsus tĂ”useb.
â Olen kuulnud huvitavat ideed, et tegelikult tööd arv liitub.
Dmitri: Muidugi, sada protsenti! Sest tarkvara, mida me kirjutame, kasvab pidevalt. KĂŒsimuste arv, mida me tarkvaraga lahendame, kasvab pidevalt. Töö hulk suureneb. Praegu on DevOps turg kohutavalt ĂŒlekuumenenud. See on nĂ€htav palgakeerukuse jĂ€rgi. Tegelikult, detailidesse minemata, peaks olema noori, kes tahavad X, keskmisi, kes tahavad 1,5X, ja vanemaid, kes tahavad 2X. Aga praegu, kui vaadata Moskva DevOps palkade turgu, siis noor tahab X-st kuni 3X ja vanem tahab X-st kuni 3X.
Keegi ei tea, kui palju see maksab. Palga tase mÔÔdetakse sinu enesekindlusega â tĂ€ielik kaos, kui aus olla, turgu on kohutavalt ĂŒle kuumenenud.
Muidugi, see olukord muutub vĂ€ga varsti â teatud kĂŒllastumine peab saabuma. Tarkvara arendamine ei ole aga selline â hoolimata sellest, et arendajaid vajatakse kĂ”igil ja kĂ”igile hĂ€id arendajaid, turul mĂ”istetakse, kui palju keegi maksab â tööstus on stabiliseerunud. DevOps ei ole praegu nii.
â Selles, mida ma olen kuulnud, jĂ€reldasin, et praegusel sĂŒsteemi administreerijal ei tasu liiga palju muretseda, aga on aeg oskusi arendada ja valmistuda sellele, et homme tööd on rohkem, aga see on kĂ”rgema kvalifikatsiooniga.
Dmitri: Sadaprotsendiliselt. Ăldiselt elame 2019. aastal ja elu reegel on selline: elukestev Ă”ppimine â me Ă”pime kogu elu. Minu arvates teavad ja tunnevad seda kĂ”ik juba, aga vĂ€he Đ·ĐœĐ°ŃŃ â tuleb teha. Igal pĂ€eval peame muutuma. Kui me seda ei tee, siis varem vĂ”i hiljem visatakse meid ametidest kĂ”rvale.
Olge valmis jĂ€rskudeks 180-kraadisteks pöördeks. Ma ei vĂ€lista olukordi, kus midagi kardinaalselt muutub, mĂ”eldakse vĂ€lja midagi uut - selliseid asju juhtub. HĂŒppa! - ja nĂŒĂŒd tegutseme me teisiti. Oluline on sellele valmis olla ja mitte muretseda. VĂ”ib juhtuda, et homme osutub kĂ”ik, mida ma teen, tarbetuks - pole hullu, ma olen terve elu Ă”ppinud ja olen valmis Ă”ppima midagi uut. See ei ole probleem. Töökoha turvalisuse pĂ€rast ei tasu muretseda, aga tuleb olla valmis pidevalt uute asjade Ă”ppimiseks.
Soovid ja minut reklaami
- Kas sul on mingi soov?
Dmitri: Jah, mul on mitu soovi.
Esimene ja materiaalsem - tulge ja subsribeerige . Kallid lugejad, minge YouTube'i ja subscribeerige meie kanalile. Umbes kuu aja pĂ€rast alustame aktiivset ekspansiooni videoteenuses, meil on tulemas hulk hariduslikku sisu Kubernetesest, avatud ja erinevat: pĂ”hilistest praktilistest asjadest laborite juurde, sĂŒgavate teoreetiliste asjadeni ning kuidas rakendada Kuberneteset pĂ”himĂ”tete ja mustrite tasandil.
Teine materiaalsem soov - minge ja pange meile tĂ€hti, sest me toitume neist. Kui te ei pane meile tĂ€hti, siis me ei saa sĂŒĂŒa. See on nagu mana arvutimĂ€ngus. Me teeme midagi, teeme, pingutame, keegi ĂŒtleb, et need on kohutavad jalgrattad, keegi, et kĂ”ik on ĂŒldse vale, aga me jĂ€tkame ja tegutseme tĂ€iesti ausalt. Me nĂ€eme probleemi, lahendame selle ja jagame kogemusi. SeetĂ”ttu palun pange meile tĂ€ht, teilt ei kulu midagi, aga me saame juurde, sest me toitume neist.
Kolmas, oluline ja mitte enam materiaalsem soov - lopetage uskumine muinasjuttudesse. Te olete spetsialistid. DevOps on vĂ€ga tĂ”sine ja vastutustundlik amet. LĂ”petage mĂ€ngimine töökohal. Kujutage ette, et astute haiglasse ja seal arst eksperimentib teie peal. Ma saan aru, et see vĂ”ib kellelegi haiget teha, aga tĂ”enĂ€oliselt ei kĂ€i see teie kohta, vaid kellegi teise. Ătlege teistele, et nad ka lĂ”petaksid. See tĂ”esti rikub elu meile kĂ”igile - paljud hakkavad suhtuma infrastruktuuri haldusesse, adminnidesse ja DevOps'i, kui vendadesse, kes jĂ€lle midagi rikkusid. See 'rikkujad' juhtub enamasti seetĂ”ttu, et me hakkasime mĂ€ngima, mitte ei vaadanud kĂŒlma meele jaoks, et siin on nii ja seal on naa.
See ei tĂ€henda, et eksperimenteerimine pole vajalik. Eksperimenteerimine on vajalik, me teeme seda ise. Ausalt öeldes, me mĂ”nikord mĂ€ngime ka â see on muidugi vĂ€ga halb, aga miski inimsuhetes ei ole meile vÔÔras. kuulutame 2019. aasta tĂ”siste lĂ€bimĂ”eldud katsete aastaks, mitte mĂ€ngudeks tootmises. TĂ”enĂ€oliselt nii.
â Suur tĂ€nu!
Dmitri: AitÀh sulle, Vitali, nii aja kui ka intervjuu eest. Kallid lugejad, suur aitÀh teile, kui te juhuslikult selle hetkeni jÔudsite. Loodan, et vÀhemalt paar mÔtet oleme teile edastanud.
Intervjuus puudutas Dmitri werfi kĂŒsimust. Praegu on see universaalne Ć veitsi arm, mis lahendab peaaegu kĂ”ik probleemid. Kuid nii ei olnud alati. F  estivalil Dmitri Stolyarov rÀÀgib sellest tööriistast ĂŒksikasjalikult. Ettekandes on kĂ”ik: probleemid ja varjatud nĂŒansid Kuberneteses, nende raskuste lahendamise vĂ”imalused ja werfi praegune rakendamine ĂŒksikasjalikult. Liituge 27. ja 28. mail, loome ideaalseid tööriistu.
Allikas: habr.com
