Kubernetes vil erobre verden. HvornÄr og hvordan?

I takt med DevOpsConf Vitaliy Khabarov har interviewet Dmitry Stolyarov (distol), teknisk direktÞr og medstifter af firmaet «Flant». Vitaliy spurgte Dmitry om, hvad «Flant» arbejder med, om Kubernetes, udvikling af Þkosystemet, stÞtte. De diskuterede, hvorfor Kubernetes er nÞdvendigt, og om det overhovedet er nÞdvendigt. Og ogsÄ om mikrotjenester, Amazon AWS, tilgang til «Jeg er heldig» i DevOps, fremtiden for Kubernetes, hvorfor, hvornÄr og hvordan det vil overtage verden, perspektiverne for DevOps og hvad ingeniÞrer skal forberede sig pÄ i en lys og nÊr fremtid med forenkling og neurale netvÊrk.

Originalen af interviewet i form af et podcast kan du lytte til pĂ„ DevOps Deflope — en russisk podcast om DevOps, og nedenfor er den tekstlige version.

Kubernetes vil erobre verden. HvornÄr og hvordan?

Her stiller Vitaliy Khabarov ingeniĂžren fra Express42.

Om «Flant»

— Dima, hej. Du er teknisk direktĂžr for «Flant» og ogsĂ„ dens grundlĂŠgger. FortĂŠl venligst, hvad firmaet laver, og hvad du laver i det?

Kubernetes vil erobre verden. HvornĂ„r og hvordan?Dmitry: Udefra ser det ud til, at vi er sĂ„dan nogle fyre, der gĂ„r rundt, sĂŠtter Kubernetes op og laver noget med det. Men sĂ„dan er det ikke. Vi startede som et firma, der arbejder med Linux, men allerede for lĂŠnge siden blev vores hovedaktivitet at servicere produktions- og highload-projekter fra bunden. Normalt bygger vi hele infrastrukturen fra bunden og tager derefter ansvar for den i lang tid. Derfor er det primĂŠre arbejde, som «Flant» udfĂžrer, hvad de fĂ„r penge for — det er at pĂ„tage sig ansvar og implementere produktion fra bunden.




Som teknisk direktÞr og en af medstifterne af firmaet bruger jeg hele dagen pÄ at finde ud af, hvordan jeg kan Þge tilgÊngeligheden af produktionen, forenkle driften, gÞre livet lettere for administratorerne, og gÞre livet mere behageligt for udviklerne.

Om Kubernetes

— PĂ„ det seneste har jeg set mange foredrag fra «Flant» og artikler om Kubernetes. Hvordan kom I til det?

Dmitry: Jeg har allerede fortalt om dette mange gange, men jeg har slet ikke noget imod at gentage det. Jeg mener, det er korrekt at gentage dette emne, fordi der opstÄr forvirring mellem Ärsag og virkning.

Vi havde virkelig brug for et vĂŠrktĂžj. Vi stod over for en masse problemer, kĂŠmpede, overvandt dem med forskellige hacks og ledte efter et vĂŠrktĂžj. Vi gennemgik mange forskellige muligheder, byggede vores egne lĂžsninger og akkumulerede erfaring. Gradvist nĂ„ede vi til det punkt, hvor vi begyndte at bruge Docker nĂŠsten lige efter, det blev lanceret – omkring 2013. PĂ„ tidspunktet for dets introduktion havde vi allerede meget erfaring med containere, og vi havde allerede skrevet vores egen version af 'Docker' – nogle hacks i Python. Med introduktionen af Docker fik vi muligheden for at kaste vores lĂžsninger vĂŠk og bruge en pĂ„lidelig og fĂŠllesskabsunderstĂžttet lĂžsning.

Historien med Kubernetes er tilsvarende. PĂ„ det tidspunkt, hvor det begyndte at tage fart – for os var det version 1.2 – havde vi allerede en masse hacks bĂ„de i Shell og i Chef, som vi forsĂžgte at orkestrere Docker med. Vi kiggede seriĂžst pĂ„ Rancher og forskellige andre lĂžsninger, men sĂ„ kom Kubernetes, som er designet prĂŠcist som vi ville have gjort det – eller endda bedre. Der er ingen kritik her.

Ja, der er nogle ufuldkommenheder her og der – mange ufuldkommenheder, og 1.2 var helt forfĂŠrdelig, men
. Kubernetes er som en bygning under opfĂžrelse – man ser pĂ„ projektet og forstĂ„r, at det bliver fantastisk. Hvis bygningen har et fundament og to etager nu, forstĂ„r man, at det er bedre ikke at flytte ind endnu, men med softwaren er der ingen sĂ„danne problemer – den kan allerede bruges.

Vi havde ikke et Þjeblik, hvor vi overvejede, om vi skulle bruge Kubernetes eller ej. Vi ventede pÄ det lÊnge fÞr det blev lanceret og forsÞgte selv at bygge analoger.

Om Kubernetes

— Deltager I direkte i udviklingen af Kubernetes?

Dmitry: Midt imellem. Vi deltager snarere i udviklingen af Ăžkosystemet. Vi sender et vist antal pull requests: i Prometheus, i forskellige operatĂžrer, i Helm – ind i Ăžkosystemet. DesvĂŠrre kan jeg ikke holde styr pĂ„ alt, hvad vi gĂžr, og jeg kan tage fejl, men der er ikke Ă©n eneste pull request fra os til kernen.

— Samtidig udvikler I ogsĂ„ mange egne vĂŠrktĂžjer omkring Kubernetes?

Dmitry: Strategien er sÄdan: Vi gÄr og laver pull requests til alt, hvad der allerede findes. Hvis der ikke accepteres pull requests der, sÄ fork'er vi dem bare til os selv og lever, indtil de bliver accepteret med vores builds. Derefter, nÄr det nÄr upstream, vender vi tilbage til den upstream-version.

For eksempel har vi Prometheus-operatoren, som vi har skiftet frem og tilbage mellem i vores upstream-implementering allerede omkring fem gange, tror jeg. Vi har brug for en funktion, vi har sendt en pull request, vi skal have den implementeret i morgen, og vi Þnsker ikke at vente pÄ, at den bliver udgivet i upstream. SÄledes samler vi vores egen version og ruller vores opbygning med den funktion, vi har brug for, ud til alle vores klynger. SÄ omdanner de det for os i upstream og siger: "Hey, lad os gÞre det for en mere generel anvendelse", sÄ fÊrdiggÞr vi det, eller nogen andre, og pÄ et tidspunkt bliver det igen flettet tilbage.

Alt, hvad der eksisterer, forsĂžger vi at udvikle.. Mange elementer, som endnu ikke findes, enten ikke er blevet opfundet, eller som er blevet opfundet, men ikke implementeret – det skaber vi. Og ikke fordi vi elsker selve processen eller at konstruere cykler som en branche, men simpelthen fordi vi har brug for dette vĂŠrktĂžj. Ofte bliver spĂžrgsmĂ„let stillet, hvorfor vi har lavet den eller den funktion? Svaret er enkelt – fordi vi mĂ„tte komme videre, lĂžse et praktisk problem, som vi har lĂžst med dette vĂŠrktĂžj.

Vejen er altid sÄdan: vi sÞger meget grundigt, og hvis vi ikke finder nogen lÞsning pÄ, hvordan man laver en trolleybus ud af et brÞd, sÄ laver vi vores egen brÞd og vores egen trolleybus.

Flanta-vĂŠrktĂžjer

— Jeg er klar over, at Flanta i Ăžjeblikket har addon-operatĂžrer, shell-operatĂžrer, dapp/werf vĂŠrktĂžjer. Som jeg forstĂ„r det, er dette det samme vĂŠrktĂžj i forskellige inkarnationer. Jeg forstĂ„r ogsĂ„, at der inden for Flanta er mange forskellige vĂŠrktĂžjer. Er det korrekt?

Dmitry: Vi har meget mere pĂ„ GitHub. Af det jeg kan huske nu, har vi statusmap – et panel til Grafana, som alle kan lide. Det nĂŠvnes nĂŠsten i hver anden artikel om overvĂ„gning af Kubernetes pĂ„ Medium. Det er umuligt at forklare kort, hvad statusmap er – det krĂŠver en separat artikel, men det er et meget nyttigt vĂŠrktĂžj til overvĂ„gning af status over tid, da vi ofte har brug for at vise status over tid i Kubernetes. Vi har ogsĂ„ LogHouse – det er en lĂžsning baseret pĂ„ ClickHouse og lidt magi til indsamling af logs i Kubernetes.

Mange nyttige vĂŠrktĂžjer! Og der vil komme endnu flere, da en rĂŠkke interne lĂžsninger vil blive udgivet i Ă„r. Blandt de store pĂ„ addon-operationsniveauet er der en masse addons til Kubernetes, sĂ„som hvordan man korrekt installerer sert manager – et vĂŠrktĂžj til hĂ„ndtering af certifikater, hvordan man sĂŠtter Prometheus op med en masse tilknyttede vĂŠrktĂžjer – der er omkring tyve forskellige binĂŠre filer, der eksporterer data og samler information; til dette er der en fantastisk grafik og alarmer i Prometheus. Alt dette er blot en mĂŠngde addons til Kubernetes, der installeres i klyngen, og som forvandler den fra simpel til en avanceret, automatiseret lĂžsning, hvor mange problemer allerede er blevet lĂžst. Ja, vi laver meget.

Udviklingen af Ăžkosystemet

— Jeg mener, at dette er et stort bidrag til udviklingen af dette vĂŠrktĂžj og dets anvendelsesmetoder. Kan du anslĂ„, hvem der ellers ville kunne bidrage pĂ„ samme mĂ„de til udviklingen af Ăžkosystemet?

Dmitry: IngeniĂžrerne i Rusland, blandt de virksomheder, der opererer pĂ„ vores marked – ingen er i nĂŠrheden.. SelvfĂžlgelig er dette en dristig pĂ„stand, fordi der er store spillere som Mail og Yandex – de laver ogsĂ„ noget med Kubernetes, men selv de er ikke i nĂŠrheden af det bidrag, som virksomheder gĂžr globalt, der laver meget mere end os. Det er svĂŠrt at sammenligne «Flant» med en stab pĂ„ 80 personer og Red Hat, hvor der kun til Ă©n Kubernetes er 300 ingeniĂžrer, hvis jeg ikke tager fejl. Det er svĂŠrt at sammenligne. I vores RnD-afdeling er der 6 personer, inklusive mig, der arbejder pĂ„ alle vores vĂŠrktĂžjer. 6 personer mod 300 ingeniĂžrer i Red Hat – det er lidt svĂŠrt at sammenligne.

— Ikke desto mindre, nĂ„r selv disse 6 personer kan skabe noget virkelig nyttigt og delbart, nĂ„r de stĂ„r over for en praktisk opgave og giver lĂžsningen til fĂŠllesskabet – det er en interessant sag. Jeg forstĂ„r, at i store teknologiselskaber, hvor der er egen udvikling og et team, der stĂžtter Kubernetes, kan der i princippet ogsĂ„ udvikles tilsvarende vĂŠrktĂžjer. Dette er et eksempel for dem pĂ„, at det er muligt at udvikle og give det videre til fĂŠllesskabet og give et skub til hele fĂŠllesskabet, der bruger Kubernetes.

Dmitry: Det er sikkert en integratorfunktion, en sÊrlig egenskab ved ham. Vi har mange projekter, og vi ser mange forskellige situationer. Den primÊre mÄde, vi skaber mervÊrdi pÄ, er ved at analysere disse cases, finde fÊlles trÊk og maksimalt reducere omkostningerne for os. Det arbejder vi aktivt med. Det er svÊrt for mig at sige noget om Rusland og verden, men vi har cirka 40 DevOps-ingeniÞrer i firmaet, der arbejder med Kubernetes. Jeg tror ikke, der er mange virksomheder i Rusland med et sammenligneligt antal specialister, der kender til Kubernetes, hvis de overhovedet findes.

Jeg forstĂ„r alt om titlen DevOps-ingeniĂžr, alle forstĂ„r det, og det er blevet en vane at kalde DevOps-ingeniĂžrer for DevOps-ingeniĂžrer, sĂ„ det behĂžver vi ikke at diskutere. Alle de 40 fantastiske DevOps-ingeniĂžrer stĂ„r hver dag over for problemer og lĂžser dem. Vi analyserer blot denne erfaring og prĂžver at generalisere den. Vi ved, at hvis vi holder denne viden indad, vil vĂŠrktĂžjet vĂŠre vĂŠrdilĂžst om et Ă„r eller to, fordi et fĂŠrdigt vĂŠrktĂžj vil dukke op et eller andet sted i communityen. Der er ikke nogen mening i at akkumulere denne erfaring internt – det er kun spild af krĂŠfter og tid i dev/null. Men sĂ„ er vi slet ikke kede af at dele. Vi publicerer med stor glĂŠde alt dette og forstĂ„r, at det skal publiceres, udvikles, promoveres, sĂ„ folk kan bruge det og tilfĂžje deres erfaring – sĂ„ vokser og lever alt. SĂ„ om to Ă„r ender vĂŠrktĂžjet ikke i skraldespanden. Det er ikke kedeligt at fortsĂŠtte med at investere krĂŠfter, fordi det er tydeligt, at nogen bruger dit vĂŠrktĂžj, og om to Ă„r bruger alle det.

Dette er en del af vores store strategi med dapp/werf. Jeg kan ikke huske, hvornĂ„r vi begyndte at udvikle det, men det virker som om, det var for tre Ă„r siden. Oprindeligt var det helt pĂ„ shell. Det var en super proof of concept, vi lĂžste nogle af vores specifikke opgaver – det lykkedes! Men der er problemer med shell, det er umuligt at skalere det op, at programmere pĂ„ shell er en svĂŠr opgave. Vi havde en vane med at skrive i Ruby, sĂ„ vi ĂŠndrede og udviklede noget i Ruby, men sĂ„ stĂždte vi ind i, at communityen, den gruppe, der ikke siger “vi Ăžnsker eller ikke Ăžnsker”, vender nĂŠsen vĂŠk fra Ruby, som det er mĂŠrkeligt. Vi indsĂ„, at vi skulle skrive alt dette i Go for simpelthen at opfylde det fĂžrste punkt pĂ„ tjeklisten: DevOps-vĂŠrktĂžjet skal vĂŠre en statisk binĂŠrfil. Uanset om det er Go eller ej, er det ikke sĂ„ vigtigt, men det er bedre med en statisk binĂŠrfil skrevet i Go.

Vi har brugt krÊfter pÄ at omskrive dapp'en til Go og kaldt den werf. Dapp'en er ikke lÊngere vedligeholdt, den udvikles ikke, den fungerer i en eller anden sidste version, men der er en absolut opgraderingsvej opad, som kan fÞlges.

Hvorfor blev dapp'en oprettet

— Kan du kort fortélle, hvorfor dapp'en blev oprettet, hvilke problemer den lþser?

Dmitry: Den fÞrste grund er bygning. Oprindeligt havde vi store problemer med bygning, da Docker ikke kunne multi-stage, og vi lavede multi-stage selv. SÄ havde vi en masse andre spÞrgsmÄl om oprydning af billeder. Alle, der laver CI/CD, stÞder fÞr eller senere pÄ problemet med en masse opbyggede billeder, der krÊver oprydning af det, der ikke er nÞdvendigt, og at bevare det, der er nÞdvendigt.

Den anden grund er deployment. Ja, der er Helm, men det lÞser kun en del af problemerne. Uden at skulle joke, stÄr der, at "Helm er Package Manager for Kubernetes". PrÊcis, "the". Der er ogsÄ ordene "Package Manager" - hvad forventes der typisk af en Package Manager? Vi siger: "Package Manager - installer pakken!" og forventer, at den siger: "Pakken er installeret."

Det er interessant, at vi siger: "Helm, installer pakken", men nÄr den svarer, at den har installeret, viser det sig, at den kun har startet installationen - den sagde til Kubernetes: "Start denne ting!", og om den er startet eller fungerer, lÞser Helm slet ikke det spÞrgsmÄl.

Det viser sig, at Helm blot er en tekstbehandler, der indlĂŠser data i Kubernetes.

Men inden for enhver deployment Þnsker vi at vide - er applikationen rullet ud til produktion eller ej? At vÊre rullet ud til produktion betyder, at applikationen er sendt derud, den nye version er udrullet, og den faller ikke og svarer korrekt. Helm lÞser slet ikke denne opgave. For at lÞse den skal der bruges meget kraft, for det krÊver, at du giver Kubernetes en kommando om at rulle ud og overvÄge, hvad der sker - om det er blevet udrullet, om det er rullet ud. Der er ogsÄ mange opgaver relateret til deployment, oprydning, bygning.

Planer

Allerede i Ă„r vil vi gĂ„ over til lokal udvikling. Vi Ăžnsker at nĂ„ det niveau, som tidligere blev gjort i Vagrant — vi skriver "vagrant up", og vores virtuelle maskiner bliver oprettet. Vi vil til det punkt, hvor der er et projekt i Git, og vi skriver "werf up", som starter en lokal kopi af dette projekt, der kĂžrer i et lokalt mini-Kub, med alle mapper tilsluttet, sĂ„ det er nemt at udvikle. AfhĂŠngig af programmeringssproget udfĂžres dette pĂ„ forskellige mĂ„der, men vi Ăžnsker, at det skal vĂŠre nemt at drive lokal udvikling med monterede filer.

NĂŠste skridt for os er at investere kraftigt i udviklerens bekvemmelighed.. For hurtigt at kunne starte et projekt lokalt med Ă©t vĂŠrktĂžj, udvikle, pushe til Git, og det skal derefter ogsĂ„ kunne deployes til staging eller tests afhĂŠngigt af pipelines, og sĂ„ til produktion med det samme vĂŠrktĂžj. Dette sammenhĂŠng, ensartethed, reproducerbarhed af infrastrukturen fra lokal miljĂž til produktion er meget vigtig for os. Men det findes endnu ikke i werf — vi planlĂŠgger stadig at gĂžre det.

Men vejen til dapp/werf har altid vĂŠret den samme som med Kubernetes i begyndelsen. Vi stĂždte pĂ„ problemer, lĂžste dem med omveje — fandt pĂ„ nogle lĂžsninger i shell eller hvad som helst. Derefter forsĂžgte vi at gĂžre disse omveje mere lige, generalisere og konsolidere dem i binĂŠre filer, som vi blot deler.

Der er ogsÄ et andet syn pÄ hele denne historie, med analogier.

Kubernetes er som en bilramme med motor. Der er ingen dĂžre, vinduer, radio, luftfrisker — slet ikke noget. Kun rammen og motoren. Og der er Helm — det er rettet. Det er dejligt at have et rat, men vi har ogsĂ„ brug for styrestift, styretĂžj, gearkasse og hjul; ellers fungerer det ikke.

I tilfÊldet med werf er det endnu en komponent til Kubernetes. Men lige nu har vi i alfa-versionen af werf for eksempel, at Helm er kompileret inden i werf, fordi vi blev trÊtte af at gÞre det selv. Der er mange grunde til at gÞre det sÄdan, jeg vil grundigt forklare, hvorfor vi har kompilere helm helt sammen med tiller ind i werf pÄ foredraget ved RIT++..

Nu er werf et mere integreret komponent. Vi fÄr et fÊrdigt styr, styrstang - jeg er ikke sÊrlig god til biler, men det er en stor blok, der lÞser et ret stort spektrum af opgaver. Vi behÞver ikke selv at lede i kataloget, finde en del til en anden, og tÊnke over, hvordan de skal skrues sammen. Vi fÄr en fÊrdig kombination, der straks lÞser mange opgaver. Men indeni er den lavet af de samme open source-komponenter, bruger stadig Docker til bygning, Helm til dele af funktionaliteten, og der er ogsÄ et par andre biblioteker. Det er et integreret vÊrktÞj til hurtigt og nemt at fÄ en fantastisk CI/CD ud af boksen.

Er det svĂŠrt at vedligeholde Kubernetes?

— Du taler om erfaringen med at begynde at bruge Kubernetes, det fungerer som ramme, motor, og at du kan tilfĂžje meget forskelligt: karrosseri, styretĂžj, sĂŠtte pedaler og sĂŠder pĂ„. SpĂžrgsmĂ„let opstĂ„r - hvor svĂŠrt er det for dig at vedligeholde Kubernetes? I har stor erfaring, hvor meget tid og ressourcer bruger I specifikt pĂ„ at vedligeholde Kubernetes adskilt fra resten?

Dmitry: Det er et meget komplekst spÞrgsmÄl, og for at svare pÄ det, skal vi forstÄ, hvad vedligeholdelse er, og hvad vi Þnsker fra Kubernetes. MÄske kan du uddybe?

— Efter hvad jeg ved, og som jeg ser det, Ăžnsker mange teams nu at prĂžve Kubernetes. Alle hopper ind i det, sĂŠtter det op pĂ„ egen hĂ„nd. Jeg har en fornemmelse af, at folk ikke altid forstĂ„r kompleksiteten af dette system.

Dmitry: Det er korrekt.

— Hvor svĂŠrt er det at tage og installere Kubernetes fra bunden, sĂ„ det er produktionsklar?

Dmitry: Hvad tror du, hvor svĂŠrt er det at transplantere et hjerte? Jeg forstĂ„r, det er et kompromitterende spĂžrgsmĂ„l. At hĂ„ndtere en skalpel og ikke lave fejl – det er ikke sĂ„ svĂŠrt. Hvis de fortĂŠller dig, hvor du skal skĂŠre og hvor du skal sy, sĂ„ selve proceduren er ikke kompliceret. Det er svĂŠrt at garantere, at det lykkes hver gang.

At installere Kubernetes og fĂ„ det til at fungere er let: klik! – det er installeret, der er mange installationsmetoder. Men hvad sker der, nĂ„r problemer opstĂ„r?

Der opstÄr altid spÞrgsmÄl - hvad har vi ikke taget hÞjde for? Hvad har vi ikke gjort? Hvilke Linux-kernparametre angav vi forkert? Herregud, angav vi dem overhovedet?! Hvilke Kubernetes-komponenter installerede vi, og hvilke gjorde vi ikke? Tusind spÞrgsmÄl opstÄr, og for at besvare dem krÊver det 15-20 Ärs erfaring i denne branche.

Jeg har et friskt eksempel pÄ dette emne, som kan belyse spÞrgsmÄlet "Er det svÊrt at vedligeholde Kubernetes?" For nogle tid siden overvejede vi seriÞst, om vi skulle forsÞge at implementere Cilium som netvÊrket i Kubernetes.

Lad mig forklare, hvad Cilium er. I Kubernetes er der mange forskellige implementeringer af netvÊrkssystemet, og en af dem er virkelig fed - det er Cilium. Hvad gÄr det ud pÄ? For nogle tid siden blev der i kernen introduceret muligheden for at skrive hooks til kernen, der pÄ en eller anden mÄde blander sig i netvÊrkssystemet og forskellige andre systemer, og som tillader at omgÄ store dele af kernen.

I Linux-kernen er der historisk ip rout, netfilter, broere og mange forskellige gamle komponenter, som har eksisteret i 15, 20, 30 Är. Generelt fungerer de, det er alt godt, men nu har vi fyldt med containere, og det ligner et tÄrn af 15 mursten oven pÄ hinanden, mens du stÄr pÄ det pÄ ét ben - en underlig fÞlelse. Dette system er historisk udviklet med mange nuancer, ligesom et appendix i kroppen. I nogle situationer er der problemer med performance, for eksempel.

Der er fremragende BPF og muligheden for at skrive hooks til kernen - folkene har skrevet deres egne hooks til kernen. Pakken kommer ind i Linux-kernen, de tager den lige ved indgangen, behandler den, som de vil uden broer, uden TCP, uden IP-stak - kort sagt, forbi alt, hvad der er skrevet i Linux-kernen, og spytter den lige ud i containeren.

Hvad har vi opnÄet? Meget flot performance, fantastiske features - simpelthen klasse! Men vi ser pÄ det og ser, at der pÄ hver maskine kÞrer et program, der tilslutter sig Kubernetes API'et, og baseret pÄ de data, det fÄr fra denne API, genererer det C-kode og kompilerer binÊre filer, som det loader ind i kernen, sÄ disse hooks fungerer i kernelspace.

Hvad sker der, hvis noget gÄr galt? Vi ved det ikke. For at finde ud af det skal man lÊse hele denne kode, forstÄ hele logikken, og det er virkelig svÊrt. Men pÄ den anden side er der disse broer, netfiltre, ip rout - jeg har ikke lÊst deres kildekoder, og 40 ingeniÞrer, der arbejder i vores virksomhed, har det heller ikke. MÄske er der nogle stykker, der forstÄr visse dele.

Og hvad gÞr det? Det viser sig, at der er en ip-rout, Linux-kernen, og der er et nyt vÊrktÞj - hvad gÞr det, vi forstÄr hverken den ene eller den anden. Men vi er bange for at bruge det nye - hvorfor? Fordi hvis vÊrktÞjet har 30 Är pÄ bagen, sÄ har man fundet alle fejlene, og man er kommet til at stÞde pÄ alle faldgruberne, sÄ man behÞver ikke at vide om alt - det fungerer som en sort boks, og det gÞr det altid. Alle ved, hvilken diagnostisk skrue der skal bruges, og hvilket tcpdump der skal kÞres pÄ hvilket tidspunkt. Alle kender godt diagnostiske vÊrktÞjer og forstÄr, hvordan dette sÊt komponenter fungerer i Linux-kernen - ikke hvordan det er bygget op, men hvordan man bruger det.

Men den fantastiske Cilium er ikke 30 Är gammel, den er ikke engang modnet. Der er det samme problem med Kubernetes, det er en kopi. BÄde Cilium og Kubernetes kan installeres uden problemer, men hvis noget gÄr galt i produktionen, vil I sÄ vÊre i stand til hurtigt at forstÄ, hvad der gik galt i en kritisk situation?

NÄr vi taler om, hvor svÊrt det er at vedligeholde Kubernetes - nej, det er meget enkelt, og ja, det er utroligt svÊrt. Kubernetes fungerer fint for sig selv, men med milliarder af nuancer.

Om tilgangen "Jeg er heldig"

— Er der virksomheder, hvor disse nuancer nĂŠsten garanteret vil dukke op? Lad os antage, at Yandex pludselig flytter alle deres tjenester til Kubernetes, sĂ„ vil der vĂŠre en betydelig belastning.

Dmitry: Nej, det handler ikke om belastningen, men om de mest simple ting. For eksempel, vi har Kubernetes, og vi har deployet en applikation der. Hvordan forstÄr vi, at den fungerer? Der er simpelthen ikke et klar vÊrktÞj til at forstÄ, at applikationen ikke falder. Der er ikke et fÊrdigt system, der sender alarmer - man skal opsÊtte disse alarmer og hver graf. Og vi opdaterer Kubernetes.

Der er Ubuntu 16.04. Man kan sige, at det er en gammel version, men vi bruger stadig den, fordi der er LTS. Den har systemd, hvis detalje er, at den ikke renser C-grupperne. Kubernetes starter pods, opretter C-grupper, fjerner derefter pods, og pÄ en eller anden mÄde sker det - jeg kan ikke huske detaljerne, undskyld - at der forbliver systemd-slices. Dette fÞrer til, at enhver maskine over tid begynder at bremse betydeligt. Det handler ikke engang om highload. Hvis der kÞres vedvarende pods, f.eks. hvis der er et Cron Job, der konstant genererer pods, sÄ vil en maskine med Ubuntu 16.04 begynde at bremse efter en uge. Der vil hele tiden vÊre et hÞjt load average pÄ grund af det store antal C-grupper, der er oprettet. Dette er et problem, som enhver person, der bare installerer Ubuntu 16 og derpÄ Kubernetes, stÄr over for.

Lad os sige, at han pÄ en eller anden mÄde opdaterer systemd eller noget andet, men i Linux-kernen op til 4.16 er det endnu sjovere - nÄr C-grupperne bliver fjernet, lÊkker de i kernen og bliver faktiske ikke slettet. Derfor vil det efter en mÄneds arbejde pÄ denne maskine vÊre umuligt at se statistikkerne om hukommelsen for pods. Vi henter en fil, kÞrer den i programmet, og den ene fil tager 15 sekunder at kÞre, fordi kernen bruger lang tid pÄ at gennemgÄ millioner af C-grupper, som tilsyneladende er fjernet, men nej - de lÊkker.

Der er stadig mange sÄdanne smÄ detaljer her og der. Det er ikke noget, som gigantiske virksomheder kun nogle gange kan stÞde pÄ under meget store belastninger - nej, det er et spÞrgsmÄl om daglige ting. Folk kan leve sÄdan i flere mÄneder - installerede Kubernetes, deployede applikationen - det ser ud til at fungere. Mange har det fint med det. De aner ikke, at applikationen pÄ et tidspunkt vil falde ud af en eller anden grund, alarmerne kommer ikke, men for dem er det normalt. Tidligere levede de pÄ virtuelle maskiner uden overvÄgning, nu er de gÄet over til Kubernetes ogsÄ uden overvÄgning - hvad er forskellen?

SpÞrgsmÄlet er, at nÄr vi gÄr pÄ isen, ved vi aldrig dens tykkelse, medmindre vi har mÄlt den pÄ forhÄnd. Mange gÄr rundt og bekymrer sig ikke, fordi de ogsÄ gik fÞr.

Fra mit synspunkt er detaljen og kompleksiteten ved at drifte ethvert system i at garantere, at isens tykkelse helt sikkert er tilstrĂŠkkelig til at lĂžse vores opgaver. Det handler om det.

I IT-branchen synes jeg, der er for mange tilgange til "Jeg er heldig." Mange installerer software og bruger biblioteker i hÄbet om, at de vil have held. Generelt har mange held. MÄske er det derfor, det fungerer.

— I min pessimistiske vurdering ser det sĂ„ledes ud: NĂ„r risikoen er hĂžj, og applikationen skal fungere, er der brug for stĂžtte fra "Flant", muligvis fra Red Hat, eller der krĂŠves et internt team, der er dedikeret til Kubernetes og klar til at hĂ„ndtere det.

Dmitry: Objektivt set er det sÄdan. At dykke selv ind i Kubernetes-historien for et lille team er en vis mÊngde risiko.

Har vi brug for containere?

— Kan du fortélle, hvor udbredt Kubernetes faktisk er i Rusland?

Dmitry: Jeg har ikke disse data, og jeg er ikke sikker pÄ, om nogen overhovedet har dem. Vi siger: "Kubernetes, Kubernetes", men der er ogsÄ et andet synspunkt pÄ dette spÞrgsmÄl. Hvor udbredte containere er, ved jeg heller ikke, men jeg kender et tal fra rapporter pÄ internettet, der siger, at 70% af containerne orkestreres af Kubernetes. Det var en pÄlidelig kilde baseret pÄ et ganske stort datasÊt globalt.

Et andet spĂžrgsmĂ„l er – har vi brug for containere? Min personlige fĂžlelse og generelt positionen for virksomheden "Flant" er sĂ„dan, at Kubernetes er de facto-standarden.

Ingenting andet end Kubernetes vil vĂŠre der.

Det er en absolut game-changer inden for infrastrukturadministration. Absolut – alt, ikke mere Ansible, Chef, virtuelle maskiner, Terraform. Jeg nĂŠvner endda ikke de gamle landsbymetoder. Kubernetes er en absolut changer, og nu vil det kun vĂŠre sĂ„dan.

Det er klart, at nogle har brug for et par Ă„r, mens andre har brug for et par Ă„rtier for at indse dette. Jeg har ingen tvivl om, at der ikke vil vĂŠre noget andet end Kubernetes og denne nye tilgang: vi gĂ„r ikke lĂŠngere ind i operativsystemet, men bruger infrastruktur som kode, bare ikke med kode, men med yml – en deklarativt beskreven infrastruktur. Jeg har en fĂžlelse af, at det altid vil vĂŠre sĂ„dan.

— SĂ„ de virksomheder, der endnu ikke er gĂ„et over til Kubernetes, vil uundgĂ„eligt komme til at gĂžre det eller forsvinde i glemsel. Forstod jeg dig korrekt?

Dmitry: Det er heller ikke helt rigtigt. For eksempel, hvis vi har til opgave at starte en dns-server, kan den startes pÄ FreeBSD 4.10 og kan fungere fint i 20 Är. Bare fungere og det er det. MÄske skal der opdateres noget én gang i lÞbet af de 20 Är. Hvis vi taler om software i formatet, hvor vi har startet det og det faktisk fungerer i mange Är uden opdateringer, uden Êndringer, sÄ vil der selvfÞlgelig ikke vÊre Kubernetes. Det er ikke nÞdvendigt der.

Alt der angÄr CI/CD - hvor som helst der er brug for Continuous Delivery, hvor versioner skal opdateres, hvor aktive Êndringer er nÞdvendige, hvor det er nÞdvendigt at opbygge fejltolerance - kun Kubernetes.

Om mikrotjenester

— Her har jeg en lille diskrepans. For at arbejde med Kubernetes krĂŠves der ekstern eller intern support - det er det fĂžrste punkt. Det andet - nĂ„r vi lige er begyndt at udvikle, er vi en lille startup, vi har stadig ikke noget, udvikling til Kubernetes eller overhovedet til mikrotjenestearkitektur kan vĂŠre besvĂŠrlig, og det er ikke altid Ăžkonomisk forsvarligt. Jeg er interesseret i din mening - skal startups helt fra bunden begynde at skrive til Kubernetes, eller kan de stadig skrive en monolit, og sĂ„ derefter komme til Kubernetes?

Dmitry: Godt spÞrgsmÄl. Jeg har en prÊsentation om mikrotjenester. «Mikrotjenester: stÞrrelse betyder noget». Jeg har mange gange stÞdt pÄ, at mennesker prÞver at slÄ sÞm i med en mikroskop. Selve tilgangen er rigtig, vi designer selv vores interne software pÄ denne mÄde. Men nÄr man gÞr det, skal man klart forstÄ, hvad man gÞr. Det jeg hader mest ved mikrotjenester er ordet «mikro». Historisk set er ordet opstÄet, og af en eller anden grund mener folk, at mikro er meget lille, mindre end en millimeter, som en mikrometer. Det er ikke sÄdan.

For eksempel er der en monolit, som 300 personer arbejder pÄ, og alle der deltager i udviklingen forstÄr, at der er problemer, og den skal deles op i mikro-stykker - omkring 10 stykker, som hver skrives af 30 personer i minimum. Det er vigtigt, nÞdvendigt og fantastisk. Men nÄr en startup kommer til os, hvor 3 helt fantastiske og talentfulde fyre har skrevet 60 mikrotjenester pÄ knÊet, sÞger jeg altid efter corvalol.

Jeg synes, dette er blevet sagt tusind gange fÞr - vi har fÄet en distribueret monolit i en eller anden form. Det er Þkonomisk uholdbart og meget svÊrt generelt. Jeg har set det sÄ mange gange, at det gÞr mig ondt, derfor fortsÊtter jeg med at tale om det.

Til det oprindelige spĂžrgsmĂ„l, at der er en konflikt mellem, at Kubernetes er skrĂŠmmende at bruge, fordi det er uklart, hvad der kan gĂ„ galt eller ikke fungerer, og pĂ„ den anden side, at det er klart, at alt gĂ„r den vej, og at der ikke vil vĂŠre noget andet end Kubernetes. Svaret er - at veje mĂŠngden af ​​nytte, der kommer, og mĂŠngden af ​​opgaver, du kan lĂžse.. Dette er den ene side af vĂŠgten. PĂ„ den anden side er der risici, der er forbundet med nedetid eller nedsĂŠttelse af svartid, tilgĂŠngelighedsniveau - nedsĂŠttelse af prĂŠstationsmetrikker.

Det er sÄdan - enten skal vi bevÊge os hurtigt, og Kubernetes gÞr mange ting meget hurtigere og bedre, eller bruge pÄlidelige, tidstestede lÞsninger, men bevÊge os meget langsommere. Dette valg skal hver virksomhed trÊffe. Man kan betragte det som en sti i junglen - fÞrste gang man gÄr, kan man mÞde en slange, en tiger eller en sindssyg surikat, men efter du har vÊret der 10 gange - har du slÄet en sti, ryddet grene, og det bliver lettere at gÄ. Hver gang bliver stien bredere. Senere bliver det en asfalteret vej, og senere en smuk boulevard.

Kubernetes stĂ„r ikke stille. Igen spĂžrgsmĂ„let: Kubernetes, pĂ„ den ene side, er det 4-5 binĂŠre filer, pĂ„ den anden side er det hele Ăžkosystemet. Dette er styresystemet, der kĂžrer pĂ„ vores maskiner. Hvad er det? Ubuntu eller Curios? Det er Linux-kernen, en masse ekstra komponenter. Alle disse ting her, en giftig slange er blevet fjernet fra vejen, der er blevet sat et hegn op der. Kubernetes udvikler sig meget hurtigt og dynamisk, og mĂŠngden af ​​risici, mĂŠngden af ​​det ukendte falder hver mĂ„ned, og dermed ombalanceres disse vĂŠgte.

NĂ„r det kommer til spĂžrgsmĂ„let om, hvad en startup skal gĂžre, ville jeg sige – kom til "Flant", betal 150.000 rubler og fĂ„ DevOps easy service leveret nĂžglefĂŠrdigt. Hvis du er en lille startup med et par udviklere – sĂ„ fungerer det. I stedet for at ansĂŠtte din egen DevOps, som skal lĂŠre at lĂžse dine problemer og fĂ„ lĂžn i mellemtiden, fĂ„r du lĂžsning pĂ„ alle spĂžrgsmĂ„l nĂžglefĂŠrdigt. Ja, der er nogle ulemper. Som en outsourcer kan vi ikke vĂŠre sĂ„ involverede og reagere hurtigt pĂ„ ĂŠndringer. Men til gengĂŠld har vi masser af ekspertise og klare praktiske lĂžsninger. Vi garanterer, at vi i enhver situation hurtigt vil finde ud af det og tage fat om enhver Kubernetes fra det dĂžde.

Jeg anbefaler kategorisk outsourcing til startups og etablerede virksomheder, indtil du kan allokere et driftsteam pÄ 10 personer, for ellers giver det ikke mening. Det giver kategorisk mening at outsource.

Om Amazon og Google

— Kan outsourcing fra Amazon eller Google betragtes som en lþsning?

Dmitry: Ja, selvfÞlgelig lÞser det et antal spÞrgsmÄl. Men igen er der nuancer. Man skal stadig forstÄ, hvordan man bruger det. For eksempel er der tusind smÄting ved arbejdet med Amazon AWS: Load Balanceren skal opvarmes eller man skal pÄ forhÄnd skrive en forespÞrgsel om, at "drengene, vi fÄr trafik, opvarm vores Load Balancer!" Man skal kende til disse nuancer.

NĂ„r du henvender dig til folk, der specialiserer sig i dette, fĂ„r du nĂŠsten alle standardtingene dĂŠkket. Vi har nu 40 ingeniĂžrer, ved udgangen af Ă„ret vil der nok vĂŠre 60 – vi har helt sikkert stĂždt pĂ„ alle disse ting. Selv hvis vi igen stĂžder pĂ„ dette problem i et projekt, spĂžrger vi hurtigt hinanden og ved, hvordan vi lĂžser det.

Svaret er formentlig sĂ„dan – selvfĂžlgelig letter en hosted-lĂžsning en del. SpĂžrgsmĂ„let er, om du er klar til at stole pĂ„ disse hostingudbydere, og om de lĂžser dine problemer. Amazon og Google har bevist deres vĂŠrd. For alle vores sager – helt sikkert. Vi har ikke haft nogen positive erfaringer andre steder. Alle andre cloud-lĂžsninger, vi har prĂžvet at arbejde med, skaber mange problemer – bĂ„de Ager og alt, hvad der findes i Rusland, samt forskellige implementeringer af OpenStack: Headster, Overage – hvad som helst. De skaber alle problemer, som man ikke gider at lĂžse.

Derfor er svaret – ja, men i praksis er der ikke mange modne hosted-lþsninger.

Hvem har brug for Kubernetes?

— Og alligevel, hvem har brug for Kubernetes? Hvem skal allerede skifte til Kubernetes, hvem er den typiske kunde hos "Flant", som kommer netop for Kubernetes?

Dmitry: Det er et interessant spÞrgsmÄl, for lige nu, i bÞlgen af Kubernetes, kommer der mange til os: "Vi ved, at I laver Kubernetes, gÞr det for os!" Vi svarer: "Mine damer og herrer, vi laver ikke Kubernetes, vi laver produktion og alt hvad der har med det at gÞre." Fordi det er i Þjeblikket umuligt at lave produktion uden at lave hele CI/CD og hele den historie. Alle er gÄet vÊk fra at adskille udvikling fra drift.

Vores kunder forventer forskellige ting, men alle venter pĂ„ et eller andet godt mirakel, der siger, at de har nogle problemer, og nu — hop! — Kubernetes vil lĂžse dem. Folk tror pĂ„ mirakler. De forstĂ„r fornuftigt, at der ikke vil vĂŠre noget mirakel, men i deres hjerte hĂ„ber de — hvad nu hvis dette Kubernetes lige vil lĂžse alt for os, der tales sĂ„ meget om det! Hvad nu hvis det lige — nip! — er sĂžlvkuglen, nip! — og vi har 100% oppetid, alle udviklere kan udgive hvad som helst til produktion 50 gange, og det falder ikke. Generelt, et mirakel!

NÄr sÄdanne mennesker kommer til os, siger vi: "Undskyld, men der findes ikke noget mirakel." For at vÊre sund, skal man spise godt og dyrke sport. For at have en pÄlidelig produktion, skal den laves pÄlideligt. For at have en bekvem CI/CD, skal den laves sÄdan. Det er meget arbejde, der skal gÞres.

NĂ„r man svarer pĂ„ spĂžrgsmĂ„let om, hvem der har brug for Kubernetes — Kubernetes er ikke nĂždvendigt for nogen.

Nogle mennesker har den fejlagtige opfattelse, at de har brug for Kubernetes. Folk Þnsker at slippe for at tÊnke pÄ, besÊtte sig med, eller interessere sig for alle problemer med infrastruktur og problemer med at starte deres applikationer. De vil have, at applikationerne bare skal fungere og blive deployeret simpelthen. For dem er Kubernetes hÄbet om, at de ikke lÊngere vil hÞre historier som "vi lÄ der" eller "kan ikke udgive", eller noget andet.

Normalt kommer den tekniske direktĂžr til os. Der bliver spurgt to ting: pĂ„ den ene side, giv os funktioner, pĂ„ den anden side — stabilitet. Vi foreslĂ„r at tage dette pĂ„ os og gĂžre det. Den sĂžlvkugle, eller rettere sagt, den sĂžlvbelagte, er, at du vil stoppe med at tĂŠnke pĂ„ disse problemer og spilde tid. Du vil have specialiserede folk, der vil tage sig af dette.

Formuleringen om, at vi eller nogen har brug for Kubernetes, er forkert.

Kubernetes er meget nĂždvendigt for administratorer, fordi det er en meget interessant legeplads, man kan eksperimentere med. Lad os vĂŠre ĂŠrlige – alle elsker legesager. Vi er alle bĂžrn et eller andet sted, og nĂ„r vi ser noget nyt, vil vi lege med det. For nogle er det blevet kedeligt i administrationen, fordi de allerede har leget nok. Men ingen har fuldstĂŠndig mistet interessen. For eksempel, selvom jeg er blevet trĂŠt af legetĂžj inden for systemadministration og DevOps, elsker jeg stadig legetĂžj og kĂžber stadig noget nyt.

Man skal ikke lege med produktionen. Hvad jeg kategorisk ikke anbefaler at gĂžre, og hvad jeg ser sker massivt: "Åh, et nyt legetĂžj!" – sĂ„ lĂžber man for at kĂžbe det, man har kĂžbt det og: "Lad os tage det med i skolen og vise det til alle vennerne." GĂžr ikke sĂ„dan. Undskyld, men jeg har bare bĂžrn, der vokser op, og jeg ser hele tiden noget i dem, bemĂŠrker det i mig selv, og sĂ„ generaliserer jeg det til andre.

Det endelige svar er: du har ikke brug for Kubernetes. Du skal lĂžse dine problemer.

Det, man kan opnÄ, er:

  • at produktionen ikke falder;
  • selv hvis den forsĂžger at falde, ved vi det pĂ„ forhĂ„nd, og vi kan gĂžre noget ved det;
  • vi kan ĂŠndre det med den hastighed, vi har brug for i vores forretning, og gĂžre det nemt, det giver os ikke problemer.

De reelle behov er to: pĂ„lidelighed og dynamik/fleksibilitet i deployment. Alle, der i Ăžjeblikket laver IT-projekter, uanset hvilken branche de er i – software for at lette verden, og dem der forstĂ„r dette, skal opfylde disse behov. Kubernetes tillader, med den rigtige tilgang, den rette forstĂ„else og tilstrĂŠkkelig erfaring, at disse behov lĂžses.

Om serverless

– Hvis man ser lidt lĂŠngere frem i fremtiden, sĂ„ opstĂ„r der nye lĂžsninger, som f.eks. serverless, nĂ„r man forsĂžger at lĂžse problemet med hovedpiner ved infrastrukturen, hastigheden af deployment og hastigheden af ĂŠndringer i applikationen. FĂžler du noget potentiale i denne retning og, lad os sige, en trussel mod Kubernetes og lignende lĂžsninger?

Dmitry: Her skal jeg igen bemÊrke, at jeg ikke er en spÄmand, der ser fremad og siger - det bliver sÄdan her! Selvom jeg netop har gjort det samme. Jeg kigger ned og ser en bunke problemer, for eksempel hvordan transistorer fungerer i computeren. Komisk, ikke? Vi stÄr med nogle bugs i CPU'en.

At gÞre serverless pÄlideligt, billigt, effektivt og bekvemt, mens man lÞser alle ÞkosystemmÊssige udfordringer, er muligt. Her er jeg enig med Elon Musk i, at vi har brug for en anden planet for at sikre menneskehedens redundans. Selvom jeg ikke ved, hvad han siger, forstÄr jeg, at jeg ikke er klar til selv at flyve til Mars, og det er ikke noget, der sker i morgen.

Med serverless er det klart, at det ideologisk er den rigtige vej, da det er bedre at have to planeter end én for menneskehedens redundans. Men hvordan gÞr vi det nu? At sende en ekspedition ud - det er ikke et problem, hvis vi fokuserer krÊfterne. At sende flere ekspeditioner og kolonisere med flere tusinde mennesker virker for mig ogsÄ realistisk. Men at skabe fuld redundans, sÄ halvdelen af menneskeheden bor der, virker umuligt og ikke overkommeligt lige nu.

Med serverless er det det samme: det er en fantastisk ting, men det er langt fra problemerne i 2019. TÊttere pÄ 2030 - lad os leve til den tid. Jeg er ikke i tvivl om, at vi vil leve, vi vil helt sikkert leve (gentag det, fÞr du gÄr i seng), men lige nu skal vi tackle andre problemer. Det er som at tro pÄ den magiske pony Rainbow. Ja, et par procent af sagerne lÞses, og de lÞses fantastisk, men subjektivt set er serverless en regnbue
 For mig er dette emne for fjernet og for ukendt. Jeg er ikke klar til at tale om det. I 2019 kunne man ikke skrive en eneste applikation med serverless.

Hvordan vil Kubernetes udvikle sig?

— Mens vi bevĂŠger os mod denne potentielt strĂ„lende fjerne fremtid, hvad mener du om, hvordan Kubernetes og Ăžkosystemet omkring det vil udvikle sig?

Dmitry: Jeg har tÊnkt meget over dette, og jeg har et klart svar. Det fÞrste er, at stateful er lettere at gÞre stateless. Kubernetes har oprindeligt investeret mere i dette; det var her det hele begyndte. Stateless fungerer nÊrmest perfekt i Kubernetes, der er simpelthen ikke noget at pÄpege. Der er stadig en hel del problemer, eller rettere sagt, nuancer med stateful. Vi har det hele til at fungere fantastisk der, men det er os. For at det skal fungere for alle, krÊver det mindst et par Är mere. Det er ikke en mÄlelig indikator, men mit indtryk fra hovedet.

Kort sagt, stateful skal udvikles enormt meget – og vil ogsĂ„ gĂžre det – fordi alle vores applikationer gemmer status, der findes ikke stateless-applikationer. Det er en illusion, man har altid brug for en eller anden database og noget andet. Stateful handler om at strĂžmligne alt, hvad der er muligt, rette alle fejl og forbedre alle problemer, som vi i Ăžjeblikket stĂ„r overfor – lad os kalde det adoption.

Niveauet af det ukendte, niveauet af ulĂžste problemer, niveauet af sandsynlighed for at stĂžde pĂ„ noget vil falde markant. Det er en vigtig historie. Og operatĂžrer – alt hvad der har med kodificering af administrationslogik, styringslogik at gĂžre for at fĂ„ en nem service: MySQL nem service, RabbitMQ nem service, Memcache nem service – alle disse komponenter, som vi har brug for for at fĂ„ det til at fungere ud af boksen, er prĂŠcis det, der lĂžser de problemer, hvor vi Ăžnsker en database, men ikke vil administrere den, eller Ăžnsker Kubernetes, men ikke vil administrere det.

Denne udvikling af operatÞrer i en eller anden form vil vÊre vigtig i de kommende par Är.

Jeg tror, at enkelheden i drift skal stige kraftigt – kassen vil blive mere og mere sort, mere og mere pĂ„lidelig, med mere og mere enkle nitter.

Jeg hĂžrte engang et gammelt interview med Isaac Asimov fra 80'erne pĂ„ YouTube i showet Saturday Night Live – et program som Urgant, bare interessant. De spurgte ham om fremtiden for computere. Han sagde, at fremtiden ligger i enkelheden, ligesom det var med radiosendere. Radioen var oprindeligt en kompliceret ting. For at fange en bĂžlge skulle man dreje pĂ„ knapperne i 15 minutter, bĂžje og dreje og overhovedet vide, hvordan alt fungerede, forstĂ„ fysikken bag radiobĂžlger. I sidste ende blev der kun tilbage en knap pĂ„ radioen.

Hvad er radioen nu i 2019? Bilens radiomodtager finder alle bĂžlger og navne pĂ„ stationer. Den fysiske proces har ikke ĂŠndret sig i 100 Ă„r, men brugervenligheden er blevet lettere. I dag, og ikke kun i dag, allerede i 1980, da der blev lavet et interview med Asimov, brugte alle radio, og ingen tĂŠnkte over, hvordan det fungerar. Det har altid fungeret – det er en kendsgerning.

Asimov sagde dengang, at det ville vĂŠre pĂ„ samme mĂ„de med computere – brugerbetjeningen vil stige.Hvis man i 1980 skulle have en sĂŠrlig uddannelse for at kunne trykke pĂ„ knapperne pĂ„ en computer, vil dette ikke lĂŠngere vĂŠre nĂždvendigt i fremtiden.

Jeg har en fornemmelse af, at med Kubernetes og infrastrukturen ogsĂ„ vil brugervenligheden stige kraftigt. Det er, efter min mening, indlysende – det ligger lige foran os.

Hvad med ingeniĂžrerne?

— Men hvad vil der sĂ„ ske med ingeniĂžrerne og systemadministratorerne, der understĂžtter Kubernetes?

Dmitry: Hvad skete der med bogholderen efter fremkomsten af 1C? NĂžjagtig det samme. FĂžr blev der regnet pĂ„ papir – nu er det i programmet. Produktiviteten er steget mange gange, men arbejdet er ikke forsvundet af den grund. Hvis man fĂžr havde brug for 10 ingeniĂžrer til at skrue en pĂŠre i, sĂ„ vil Ă©n nu vĂŠre tilstrĂŠkkelig.

MĂŠngden af software og opgaver vokser, efter min mening, nu hurtigere, end nye DevOps'er dukker op og effektiviteten stiger. Der er konkret mangel pĂ„ markedet, og det vil vare lĂŠnge. Senere vil alt falde ind i en vis normalitet, hvor effektiviteten i arbejdet vil stige, der vil komme mere serverless, en neural netvĂŠrk vil blive tilkoblet Kubernetes, som selv finder de nĂždvendige ressourcer, og alt gĂžr sig selv, som det skal – mennesket skal trĂŠkke sig tilbage og ikke blande sig.

Men beslutningerne skal stadig tages af nogen. Det stÄr klart, at den kvalifikationsniveau og specialisering, denne person har, er hÞjere. I dag i regnskabsafdelingen har du ikke brug for 10 medarbejdere, der fÞrer regnskab, for at deres hÊnder ikke skal blive trÊtte. Det er simpelthen ikke nÞdvendigt. Mange dokumenter scannes automatisk, og genkendes af det elektroniske dokumenthÄndteringssystem. Det er tilstrÊkkeligt med én dygtig hovedbogholder, der allerede har langt stÞrre fÊrdigheder og en god forstÄelse.

Generelt er denne udvikling til stede i alle industrier. Med biler er det det samme: fĂžr var der en mekaniker og tre chauffĂžrer til hver bil. Nu er det at kĂžre bil en simpel proces, som vi alle deltager i hver dag. Ingen tĂŠnker over, at en bil er noget komplekst.

DevOps eller systemingeniþrarbejde vil ikke forsvinde – hþjere niveau og effektivitet vil stige.

— Jeg har ogsĂ„ hĂžrt en interessant idĂ© om, at arbejdet faktisk vil stige.

Dmitry: SelvfÞlgelig, hundrede procent! Fordi mÊngden af software, vi skriver, konstant vokser. Antallet af problemer, vi lÞser med software, vokser konstant. MÊngden af arbejde stiger. Lige nu er DevOps-markedet ekstremt overophedet. Det kan ses i lÞnforventningerne. Rent hypotetisk, uden at gÄ ind i detaljer, burde der vÊre juniorer, der Þnsker X, mid-level som Þnsker 1,5X, og seniorer der Þnsker 2X. Men nu, hvis vi ser pÄ lÞnmarkedet for DevOps i Moskva, Þnsker junioren fra X til 3X, og senioren Þnsker fra X til 3X.

Ingen ved, hvad det koster. LÞnnen mÄles ud fra din selvsikkerhed - det er ren galskab, hvis jeg skal vÊre Êrlig, et ekstremt overophedet marked.

SelvfÞlgelig vil denne situation Êndre sig meget snart - der skal komme en vis mÊtning. Med softwareudvikling er det ikke sÄdan - pÄ trods af at udviklere er eftertragtede, og gode udviklere er nÞdvendige, forstÄr markedet, hvad folk er vÊrd - branchen har stabiliseret sig. SÄdan er det ikke med DevOps lige nu.

— Ud fra hvad jeg har hĂžrt, har jeg konkluderet, at den nuvĂŠrende systemadministrator ikke skal bekymre sig, men at tiden er inde til at opgradere sine fĂŠrdigheder og forberede sig pĂ„, at der i morgen vil vĂŠre mere arbejde, og det vil vĂŠre mere kvalificeret.

Dmitry: Helt sikkert. Generelt lever vi i 2019, og livsreglen er sĂ„dan: livslang lĂŠring - vi lĂŠrer hele livet. Jeg tror, at folk nu allerede ved og fĂžler dette, men det er ikke nok bare at vide – vi skal handle. Hver dag skal vi ĂŠndre os. Hvis vi ikke gĂžr det, vil vi fĂžr eller senere blive sat af pĂ„ professionens kant.

VĂŠr forberedt pĂ„ pludselige drejninger pĂ„ 180 grader. Jeg udelukker ikke situationer, hvor noget radikalt ĂŠndrer sig, og der findes noget nyt – sĂ„dan sker det nogle gange. Hov! – og nu handler vi pĂ„ en anden mĂ„de. Det er vigtigt at vĂŠre klar til dette og ikke stresse over det. Det kan ske, at alt, hvad jeg gĂžr i morgen, viser sig at vĂŠre unĂždvendigt – det er fint, jeg har lĂŠrt hele mit liv og er klar til at lĂŠre noget andet. Det er ikke et problem. Det er ikke vĂŠrd at frygte jobusikkerhed, men man skal vĂŠre klar til konstant at lĂŠre noget nyt.

Ønsker og et Þjeblik med reklame

– Har du et þnske?

Dmitry: Ja, jeg har et par Ăžnsker.

Det fĂžrste og mere forretningsmĂŠssige – tilmeld dig YouTube. KĂŠre lĂŠsere, gĂ„ ind pĂ„ YouTube og tilmeld dig vores kanal. Om cirka en mĂ„ned vil vi starte en aktiv ekspansion pĂ„ video-platformen, vi vil have en masse undervisningsindhold om Kubernetes, bĂ„de Ă„bent og forskelligt: fra praktiske emner til laboratorier og dybe, principielle teoretiske emner og hvordan man anvender Kubernetes pĂ„ niveau med principper og mĂžnstre.

Det andet forretningsmĂŠssige Ăžnske – gĂ„ ind pÄ GitHub og giv os stjerner, for vi lever af dem. Hvis I ikke giver os stjerner, vil vi ikke have noget at spise. Det er som manna i et computerspil. Vi gĂžr noget, gĂžr noget, prĂžver, nogle siger, det er grimme cykler, andre siger, at alt overhovedet er forkert, men vi fortsĂŠtter og handler helt ĂŠrligt. Vi ser problemet, lĂžser det og deler erfaringen. Derfor bedes I give os en stjerne, det koster ikke noget for jer, men vi fĂ„r noget mere, for vi lever af dem.

Det tredje, vigtige, og allerede ikke-mercantile Ăžnske – stop med at tro pĂ„ eventyr. I er professionelle. DevOps er en meget seriĂžs og ansvarlig profession. Stop med at lege pĂ„ arbejdspladsen. Lad det ramme jer, og I vil forstĂ„ det. Forestil jer, at I kommer ind pĂ„ et hospital, og der eksperimenterer lĂŠgen med jer. Jeg forstĂ„r, at det kan sĂ„re nogen, men det er sandsynligvis ikke om jer, men om nogen andre. FortĂŠl de andre, at de ogsĂ„ skal stoppe. Det ĂždelĂŠgger virkelig livet for os alle – mange begynder at se pĂ„ driftsfolk, administratorer og DevOps’ere som fyre, der igen har noget gĂ„et galt. Det 'gĂ„et galt' sker oftest, fordi vi er gĂ„et i gang med at lege i stedet for at se klart og forstĂ„, hvordan tingene hĂŠnger sammen.

Det betyder ikke, at man ikke skal eksperimentere. Man skal eksperimentere, vi gĂžr det selv. Hvis vi skal vĂŠre ĂŠrlige, leger vi ogsĂ„ nogle gange — det er selvfĂžlgelig meget dĂ„rligt, men intet menneskeligt er os fremmed. Lad os erklĂŠre 2019 som Ă„ret for seriĂžse, gennemtĂŠnkte eksperimenter, ikke for lege i produktion. MĂ„ske er det sĂ„dan.

— Mange tak!

Dmitry: Tak til dig, Vitaly, bÄde for tiden og interviewet. KÊre lÊsere, mange tak til jer, hvis I er nÄet hertil. Jeg hÄber, vi har givet jer nogle tankevÊkkende indspark.

I interviewet berĂžrte Dmitry spĂžrgsmĂ„let om werf. Det er nu en universel schweizerkniv, der lĂžser nĂŠsten alle opgaver. Men det har ikke altid vĂŠret sĂ„dan. DevOpsConf  pĂ„ festivalen RIT++ Dmitry Stolyarov vil detaljeret fortĂŠlle om dette vĂŠrktĂžj. I foredraget «werf — vores vĂŠrktĂžj til CI/CD i Kubernetes» vil der vĂŠre alt: problemer og skjulte nuancer i Kubernetes, lĂžsninger pĂ„ disse udfordringer og den nuvĂŠrende implementering af werf i detaljer. Deltag den 27. og 28. maj, vi skal skabe ideelle vĂŠrktĂžjer.

Kilde: habr.com

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster