Kubernetes kommer att ta över vÀrlden. NÀr och hur?

I förvĂ€ntan DevOpsConf Vitaly Khabarov intervjuades Dmitry Stolyarov (distol), teknisk direktör och medgrundare av företaget Flant. Vitaly frĂ„gade Dmitry om vad Flant gör, om Kubernetes, ekosystemutveckling, support. Vi diskuterade varför Kubernetes behövs och om det behövs överhuvudtaget. Och Ă€ven om mikrotjĂ€nster, Amazon AWS, "I'll be lucky"-instĂ€llningen till DevOps, framtiden för Kubernetes sjĂ€lv, varför, nĂ€r och hur det kommer att ta över vĂ€rlden, utsikterna för DevOps och vad ingenjörer bör förbereda sig för i ljus och nĂ€ra framtid med förenkling och neurala nĂ€tverk.

Originalintervju lyssna som podcast pĂ„ DevOps Deflop – en rysksprĂ„kig podcast om DevOps, och nedan finns textversionen.

Kubernetes kommer att ta över vÀrlden. NÀr och hur?

HÀr och nedan stÀller han frÄgor Vitaly Khabarov ingenjör frÄn Express42.

Om "Flant"

- Hej Dima. Du Àr teknisk chef"Flant" och Àven dess grundare. BerÀtta för oss vad företaget gör och vad du Àr i det?

Kubernetes kommer att ta över vÀrlden. NÀr och hur?Dmitry: FrÄn utsidan verkar det som att vi Àr killarna som gÄr runt och installerar Kubernetes för alla och gör nÄgot med det. Men det Àr inte sant. Vi började som ett företag som sysslar med Linux, men under en mycket lÄng tid har vÄr huvudsakliga verksamhet varit att betjÀna produktion och höglastade nyckelfÀrdiga projekt. Vanligtvis bygger vi hela infrastrukturen frÄn grunden och ansvarar sedan för den under lÄng, lÄng tid. DÀrför Àr det huvudsakliga arbetet som "Flant" gör, för vilket den fÄr pengar ta ansvar och genomföra nyckelfÀrdig produktion.




Jag, som teknisk direktör och en av företagets grundare, tillbringar hela dagen och natten med att försöka ta reda pÄ hur man kan öka tillgÀngligheten för produktionen, förenkla dess drift, göra livet för administratörer lÀttare och livet för utvecklarna trevligare .

Om Kubernetes

— Den senaste tiden har jag sett mĂ„nga rapporter frĂ„n Flant och artiklar om Kubernetes. Hur kom du fram till det?

Dmitry: Jag har redan pratat om det hÀr mÄnga gÄnger, men jag har inget emot att upprepa det alls. Jag tycker att det Àr rÀtt att upprepa detta Àmne eftersom det finns förvirring mellan orsak och verkan.

Vi behövde verkligen ett verktyg. Vi mötte mÄnga problem, kÀmpade, övervann dem med olika kryckor och kÀnde ett behov av ett verktyg. Vi gick igenom mÄnga olika alternativ, byggde vÄra egna cyklar och fick erfarenhet. Gradvis kom vi till den punkt dÀr vi började anvÀnda Docker nÀstan sÄ fort det dök upp - runt 2013. Vid tiden för dess utseende hade vi redan mycket erfarenhet av behÄllare, vi hade redan skrivit en analog av "Docker" - nÄgra av vÄra egna kryckor i Python. Med tillkomsten av Docker blev det möjligt att kasta ut kryckorna och anvÀnda en pÄlitlig och community-stödd lösning.

Med Kubernetes Àr historien liknande. NÀr det började ta fart - för oss Àr detta version 1.2 - hade vi redan ett gÀng kryckor pÄ bÄde Shell och Chef, som vi pÄ nÄgot sÀtt försökte orkestrera med Docker. Vi tittade pÄ allvar mot Rancher och olika andra lösningar, men sedan dök det upp Kubernetes, dÀr allt Àr implementerat precis som vi skulle ha gjort det eller Ànnu bÀttre. Det finns inget att klaga pÄ.

Ja, det finns nÄgon form av ofullkomlighet hÀr, det finns nÄgon form av ofullkomlighet dÀr - det finns mÄnga ofullkomligheter, och 1.2 Àr generellt sett hemskt, men... Kubernetes Àr som en byggnad under uppbyggnad - du tittar pÄ projektet och förstÄr att det blir coolt. Om byggnaden nu har en grund och tvÄ vÄningar, dÄ förstÄr du att det Àr bÀttre att inte flytta in Ànnu, men det finns inga sÄdana problem med programvaran - du kan redan anvÀnda den.

Vi hade inte ett ögonblick dÀr vi tÀnkte pÄ att anvÀnda Kubernetes eller inte. Vi vÀntade pÄ det lÀnge innan det dök upp och försökte skapa analoger sjÀlva.

Om Kubernetes

— Är du direkt involverad i utvecklingen av sjĂ€lva Kubernetes?

Dmitry: MedelmÄttig. Snarare deltar vi i utvecklingen av ekosystemet. Vi skickar ett visst antal pull-förfrÄgningar: till Prometheus, till olika operatörer, till Helm - till ekosystemet. TyvÀrr kan jag inte hÄlla reda pÄ allt vi gör och jag kan ha fel, men det finns inte en enda pool frÄn oss in i kÀrnan.

— Utvecklar du samtidigt mĂ„nga av dina verktyg kring Kubernetes?

Dmitry: Strategin Àr denna: vi gÄr och drar förfrÄgningar till allt som redan finns. Om pull-förfrÄgningar inte accepteras dÀr, delar vi dem helt enkelt sjÀlva och lever tills de accepteras med vÄra byggen. Sedan, nÀr den nÄr uppströms, gÄr vi tillbaka till uppströmsversionen.

Till exempel har vi en Prometheus-operatör, med vilken vi vÀxlade fram och tillbaka till uppströms vÄr montering förmodligen 5 gÄnger redan. Vi behöver nÄgon form av funktion, vi skickade en pull-begÀran, vi mÄste rulla ut den i morgon, men vi vill inte vÀnta pÄ att den ska slÀppas uppströms. Följaktligen monterar vi för oss sjÀlva, rullar ut vÄr montering med vÄr funktion, som vi behöver av nÄgon anledning, till alla vÄra kluster. Sedan lÀmnar de till exempel över det till oss i uppströms med orden: "Gubbar, lÄt oss göra det för ett mer allmÀnt fall", vi, eller nÄgon annan, avslutar det, och med tiden smÀlter det samman igen.

Vi försöker utveckla allt som finns. MĂ„nga element som Ă€nnu inte finns, Ă€nnu inte uppfunnits, eller som har uppfunnits, men som inte har hunnit implementera – vi gör det. Och inte för att vi gillar processen eller cykelbyggandet som industri, utan helt enkelt för att vi behöver det hĂ€r verktyget. FrĂ„gan stĂ€lls ofta, varför gjorde vi det eller det? Svaret Ă€r enkelt - ja, eftersom vi var tvungna att gĂ„ lĂ€ngre, lösa nĂ„got praktiskt problem, och vi löste det med denna tula.

VÀgen Àr alltid sÄ hÀr: vi letar mycket noggrant och om vi inte hittar nÄgon lösning pÄ hur man gör en trolleybuss av en brödlimpa, sÄ gör vi vÄr egen limpa och vÄr egen trolleybuss.

Flanta verktyg

— Jag vet att Flant nu har tillĂ€ggsoperatorer, skaloperatorer och dapp/werf-verktyg. Som jag förstĂ„r det Ă€r detta samma instrument i olika inkarnationer. Jag förstĂ„r ocksĂ„ att det finns mĂ„nga fler olika verktyg inom Flaunt. Detta Ă€r sant?

Dmitry: Vi har mycket mer pĂ„ GitHub. Vad jag minns nu har vi en statuskarta – en panel för Grafana som alla har gillat. Det nĂ€mns i nĂ€stan varannan artikel om Kubernetes-övervakning pĂ„ Medium. Det Ă€r omöjligt att kortfattat förklara vad en statuskarta Ă€r - den behöver en separat artikel, men det Ă€r en mycket anvĂ€ndbar sak för att övervaka status över tid, eftersom vi i Kubernetes ofta behöver visa status över tid. Vi har ocksĂ„ LogHouse - det hĂ€r Ă€r en sak som bygger pĂ„ ClickHouse och svart magi för att samla stockar i Kubernetes.

MÄnga verktyg! Och det kommer att bli Ànnu fler, eftersom ett antal interna lösningar kommer att slÀppas i Är. Av de mycket stora baserade pÄ tillÀggsoperatören finns det ett gÀng tillÀgg för Kubernetes, ala hur man korrekt installerar sert manager - ett verktyg för att hantera certifikat, hur man korrekt installerar Prometheus med en massa tillbehör - dessa Àr ett tjugotal olika binÀrer som exporterar data och samlar in nÄgot, till detta har Prometheus den mest fantastiska grafiken och varningarna. Allt detta Àr bara ett gÀng tillÀgg till Kubernetes, som Àr installerade i ett kluster, och det blir frÄn enkelt till coolt, sofistikerat, automatiskt, dÀr mÄnga problem redan har lösts. Ja, vi gör mycket.

Ekosystemutveckling

"Det verkar för mig att detta Àr ett mycket stort bidrag till utvecklingen av detta instrument och dess anvÀndningsmetoder." Kan du grovt uppskatta vem mer som skulle ge samma bidrag till ekosystemets utveckling?

Dmitry: I Ryssland, av de företag som verkar pÄ vÄr marknad, Àr ingen ens i nÀrheten. Naturligtvis Àr detta ett högljutt uttalande, eftersom det finns stora aktörer som Mail och Yandex - de gör ocksÄ nÄgot med Kubernetes, men Àven de kommer inte i nÀrheten av bidraget frÄn företag i hela vÀrlden som gör mycket mer Àn oss. Det Àr svÄrt att jÀmföra Flant, som har en personal pÄ 80 personer, och Red Hat, som har 300 ingenjörer enbart per Kubernetes, om jag inte har fel. Det Àr svÄrt att jÀmföra. Vi har 6 personer pÄ RnD-avdelningen, inklusive jag, som skÀr alla vÄra verktyg. 6 personer mot 300 Red Hat-ingenjörer - det Àr pÄ nÄgot sÀtt svÄrt att jÀmföra.

- Men nÀr Àven dessa 6 personer kan göra nÄgot riktigt anvÀndbart och alienerande, nÀr de stÀlls inför ett praktiskt problem och ger lösningen till samhÀllet - ett intressant fall. Jag förstÄr att i stora teknikföretag, dÀr de har ett eget utvecklings- och supportteam för Kubernetes, kan i princip samma verktyg utvecklas. Detta Àr ett exempel för dem pÄ vad som kan utvecklas och ges till samhÀllet, vilket ger impulser till hela samhÀllet som anvÀnder Kubernetes.

Dmitry: Detta Àr förmodligen en egenskap hos integratorn, dess egenhet. Vi har mÄnga projekt och vi ser mÄnga olika situationer. För oss Àr det frÀmsta sÀttet att skapa mervÀrde att analysera dessa fall, hitta gemensamhet och göra dem sÄ billiga som möjligt för oss. Vi arbetar aktivt med detta. Det Àr svÄrt för mig att prata om Ryssland och vÀrlden, men vi har ett 40-tal DevOps-ingenjörer i företaget som arbetar pÄ Kubernetes. Jag tror inte att det finns mÄnga företag i Ryssland med ett jÀmförbart antal specialister som förstÄr Kubernetes, om nÄgra alls.

Jag förstĂ„r allt om jobbtiteln DevOps-ingenjörer, alla förstĂ„r allt och Ă€r vana vid att kalla DevOps-ingenjörer för DevOps-ingenjörer, vi kommer inte att diskutera detta. Alla dessa 40 fantastiska DevOps-ingenjörer möter och löser problem varje dag, vi analyserar bara den hĂ€r upplevelsen och försöker generalisera. Vi förstĂ„r att om det finns kvar inom oss, kommer verktyget om ett eller tvĂ„ Ă„r att vara oanvĂ€ndbart, för nĂ„gonstans i samhĂ€llet kommer en fĂ€rdig Tula att dyka upp. Det Ă€r ingen idĂ© att samla denna erfarenhet internt - det Ă€r helt enkelt att drĂ€nera energi och tid till dev/null. Och vi tycker inte alls synd om det. Vi publicerar allt med stor glĂ€dje och förstĂ„r att det behöver publiceras, utvecklas, frĂ€mjas, frĂ€mjas, sĂ„ att folk anvĂ€nder det och lĂ€gger till sin erfarenhet – dĂ„ vĂ€xer allt och lever. Sedan efter tvĂ„ Ă„r hamnar inte instrumentet i papperskorgen. Det Ă€r inte synd att fortsĂ€tta ösa in styrka, för det Ă€r tydligt att nĂ„gon anvĂ€nder ditt verktyg, och efter tvĂ„ Ă„r anvĂ€nder alla det.

Detta Ă€r en del av vĂ„r stora strategi med dapp/werf. Jag kommer inte ihĂ„g nĂ€r vi började göra den, det verkar som 3 Ă„r sedan. Inledningsvis var det i allmĂ€nhet pĂ„ skalet. Det var ett super proof of concept, vi löste nĂ„gra av vĂ„ra speciella problem – det fungerade! Men det finns problem med skalet, det Ă€r omöjligt att utöka det ytterligare, programmering pĂ„ skalet Ă€r en annan uppgift. Vi hade en vana att skriva i Ruby, dĂ€rför gjorde vi om nĂ„got i Ruby, utvecklade, utvecklade, utvecklade och stötte pĂ„ det faktum att samhĂ€llet, folkmassan som inte sĂ€ger "vi vill ha det eller vi vill inte ha det, ” vĂ€nder upp nĂ€san mot Ruby, hur roligt Ă€r det? Vi insĂ„g att vi borde skriva allt det hĂ€r i Go bara för att möta den första punkten pĂ„ checklistan: DevOps-verktyget ska vara ett statiskt binĂ€rt. Att vara Go eller inte Ă€r inte sĂ„ viktigt, men en statisk binĂ€r skriven i Go Ă€r bĂ€ttre.

Vi spenderade vÄr energi, skrev om dappen i Go och kallade den werf. Dapp stöds inte lÀngre, inte utvecklad, körs i nÄgon senaste version, men det finns en absolut uppgraderingsvÀg till toppen, och du kan följa den.

Varför skapades dappen?

— Kan du kort berĂ€tta varför dappen skapades, vilka problem den löser?

Dmitry: Den första anledningen Àr i monteringen. Till en början hade vi allvarliga problem med konstruktionen nÀr Docker inte hade flerstegsfunktioner, sÄ vi gjorde flersteg pÄ egen hand. Sedan hade vi en massa fler problem med att rengöra bilden. Alla som gör CI/CD, förr snarare Àn senare, stÀlls inför problemet att det finns ett gÀng samlade bilder, man mÄste pÄ nÄgot sÀtt rensa bort det som inte behövs och lÀmna det som behövs.

Det andra skÀlet Àr utplacering. Ja, det finns Helm, men det löser bara nÄgra av problemen. Lustigt nog skrivs det att "Helm Àr pakethanteraren för Kubernetes." Exakt vad "den". Det finns ocksÄ orden "Package Manager" - vad Àr de vanliga förvÀntningarna frÄn en Package Manager? Vi sÀger: "Package Manager - installera paketet!" och vi förvÀntar oss att han sÀger till oss: "Paketet har levererats."

Det Àr intressant att vi sÀger: "HjÀlp, installera paketet," och nÀr han svarar att han installerade det, visar det sig att han precis startade installationen - han indikerade Kubernetes: "Starta den hÀr saken!", och om den startade eller inte , oavsett om det fungerar eller inte löser Helm inte det hÀr problemet alls.

Det visar sig att Helm bara Àr en textförbehandlare som laddar data till Kubernetes.

Men som en del av all distribution vill vi veta om applikationen har slÀppts för produktion eller inte? Utrullad till prod betyder att applikationen har flyttat dit, den nya versionen har distribuerats, och den kraschar Ätminstone inte dÀr och svarar korrekt. Helm löser inte detta problem pÄ nÄgot sÀtt. För att lösa det mÄste du lÀgga ner mycket anstrÀngning, eftersom du mÄste ge Kubernetes kommandot att rulla ut och övervaka vad som hÀnder dÀr - oavsett om det distribueras eller rullas ut. Och det finns ocksÄ mÄnga uppgifter relaterade till driftsÀttning, rengöring och montering.

planer

I Är startar vi lokal utveckling. Vi vill uppnÄ det som tidigare fanns i Vagrant - vi skrev "vagrant up" och vi distribuerade virtuella maskiner. Vi vill komma till den punkt dÀr det finns ett projekt i Git, vi skriver "werf" dÀr, och det tar upp en lokal kopia av det hÀr projektet, utplacerat i en lokal mini-Kub, med alla kataloger som Àr bekvÀma för utveckling anslutna . Beroende pÄ utvecklingssprÄket görs detta pÄ olika sÀtt, men ÀndÄ sÄ att lokal utveckling bekvÀmt kan utföras under monterade filer.

NÀsta steg för oss Àr investera i bekvÀmlighet för utvecklare. För att snabbt distribuera ett projekt lokalt med ett verktyg, utveckla det, tryck in det i Git, och det kommer ocksÄ att rulla ut till scenen eller tester, beroende pÄ pipelines, och sedan anvÀnda samma verktyg för att gÄ till produktion. Denna enhet, enande, reproducerbarhet av infrastruktur frÄn den lokala miljön till försÀljning Àr en mycket viktig punkt för oss. Men det hÀr Àr inte i werf Àn - vi planerar bara att göra det.

Men vÀgen till dapp/werf har alltid varit densamma som med Kubernetes i början. Vi stötte pÄ problem, löste dem med lösningar - vi kom pÄ nÄgra lösningar för oss sjÀlva pÄ skalet, pÄ vad som helst. Sedan försökte de pÄ nÄgot sÀtt rÀta ut dessa lösningar, generalisera och konsolidera dem till binÀrer i det hÀr fallet, som vi helt enkelt delar.

Det finns ett annat sÀtt att se pÄ hela den hÀr historien, med analogier.

Kubernetes Àr en bilram med motor. Det finns inga dörrar, glas, radio, julgran - ingenting alls. Bara ram och motor. Och det finns Helm - det hÀr Àr ratten. Coolt - det finns en ratt, men du behöver ocksÄ en rattstÄng, rattstÄng, vÀxellÄda och hjul, och du kan inte klara dig utan dem.

NÀr det gÀller werf Àr detta ytterligare en komponent till Kubernetes. Först nu i alfaversionen av werf, till exempel, kompileras Helm inuti werf, eftersom vi Àr trötta pÄ att göra det sjÀlva. Det finns mÄnga anledningar till att göra detta, jag ska berÀtta i detalj om varför vi kompilerade hela rodret tillsammans med rorkulten inuti werf vid en rapport pÄ RIT++.

Nu Àr werf en mer integrerad komponent. Vi fÄr en fÀrdig ratt, en rattpinne - jag Àr inte sÄ bra pÄ bilar, men det hÀr Àr ett stort block som redan löser ett ganska brett spektrum av problem. Vi behöver inte gÄ igenom katalogen sjÀlva, vÀlja en del för en annan, fundera pÄ hur man skruvar ihop dem. Vi fÄr en fÀrdig tröska som löser ett stort antal problem pÄ en gÄng. Men inuti Àr den byggd av samma öppen kÀllkodskomponenter, den anvÀnder fortfarande Docker för montering, Helm för en del av funktionaliteten och det finns flera andra bibliotek. Detta Àr ett integrerat verktyg för att fÄ cool CI/CD ur lÄdan snabbt och bekvÀmt.

Är Kubernetes svĂ„r att underhĂ„lla?

— Du berĂ€ttar om upplevelsen av att du började anvĂ€nda Kubernetes, det hĂ€r Ă€r en ram för dig, en motor, och att du kan hĂ€nga mĂ„nga olika saker pĂ„ den: en kaross, en ratt, skruva pĂ„ pedaler, sĂ€ten. FrĂ„gan uppstĂ„r - hur svĂ„rt Ă€r Kubernetes-stödet för dig? Du har mycket erfarenhet, hur mycket tid och resurser lĂ€gger du pĂ„ att stödja Kubernetes isolerat frĂ„n allt annat?

Dmitry: Det hÀr Àr en mycket svÄr frÄga och för att svara pÄ mÄste vi förstÄ vad stöd Àr och vad vi vill ha frÄn Kubernetes. Kanske kan du avslöja?

— SĂ„ vitt jag vet och som jag ser vill nu mĂ„nga lag prova Kubernetes. Alla spĂ€nner sig till det, lĂ€gger det pĂ„ sina knĂ€n. Jag har en kĂ€nsla av att folk inte alltid förstĂ„r komplexiteten i det hĂ€r systemet.

Dmitry: Det Àr sÄ.

— Hur svĂ„rt Ă€r det att ta och installera Kubernetes frĂ„n grunden sĂ„ att den Ă€r produktionsklar?

Dmitry: Hur svÄrt tror du att det Àr att transplantera ett hjÀrta? Jag förstÄr att detta Àr en kompromissfrÄga. Att anvÀnda en skalpell och inte göra fel Àr inte sÄ svÄrt. Om de berÀttar var du ska klippa och var du ska sy, Àr sjÀlva proceduren inte komplicerad. Det Àr svÄrt att garantera gÄng pÄ gÄng att allt löser sig.

Att installera Kubernetes och fĂ„ det att fungera Ă€r enkelt: chick! — installerat, det finns mĂ„nga installationsmetoder. Men vad hĂ€nder nĂ€r problem uppstĂ„r?

FrĂ„gor dyker alltid upp – vad har vi inte tagit hĂ€nsyn till Ă€nnu? Vad har vi inte gjort Ă€n? Vilka Linux-kĂ€rnparametrar angavs felaktigt? Herre, nĂ€mnde vi ens dem?! Vilka Kubernetes-komponenter har vi levererat och vilka har vi inte? Tusentals frĂ„gor dyker upp, och för att besvara dem mĂ„ste du spendera 15-20 Ă„r i den hĂ€r branschen.

Jag har ett fĂ€rskt exempel pĂ„ detta Ă€mne som kan avslöja innebörden av problemet "Är Kubernetes svĂ„rt att underhĂ„lla?" För en tid sedan funderade vi allvarligt pĂ„ om vi skulle försöka implementera Cilium som ett nĂ€tverk i Kubernetes.

LÄt mig förklara vad Cilium Àr. Kubernetes har mÄnga olika implementeringar av nÀtverksundersystemet, och en av dem Àr vÀldigt cool - Cilium. Vad Àr dess betydelse? I kÀrnan blev det för en tid sedan möjligt att skriva krokar för kÀrnan, som pÄ ett eller annat sÀtt invaderar nÀtverksundersystemet och olika andra delsystem, och lÄter dig kringgÄ stora bitar i kÀrnan.

LinuxkÀrnan har historiskt sett en ip-rout, ett överfilter, bryggor och mÄnga olika gamla komponenter som Àr 15, 20, 30 Är gamla. I allmÀnhet fungerar de, allt Àr toppen, men nu har de staplat upp containrar, och det ser ut som ett torn av 15 tegelstenar ovanpÄ varandra, och man stÄr pÄ det pÄ ett ben - en konstig kÀnsla. Detta system har historiskt utvecklats med mÄnga nyanser, som blindtarmen i kroppen. I vissa situationer finns det till exempel prestationsproblem.

Det finns en underbar BPF och förmÄgan att skriva krokar för kÀrnan - killarna skrev sina egna krokar för kÀrnan. Paketet kommer in i Linux-kÀrnan, de tar ut det direkt vid ingÄngen, bearbetar det sjÀlva som det ska utan bryggor, utan TCP, utan en IP-stack - kort sagt, kringgÄr allt som skrivs i Linux-kÀrnan och spottar sedan den ut i behÄllaren.

Vad hÀnde? Mycket cool prestanda, coola funktioner - bara cool! Men vi tittar pÄ detta och ser att det pÄ varje maskin finns ett program som ansluter till Kubernetes API och, baserat pÄ data som det tar emot frÄn detta API, genererar C-kod och kompilerar binÀrer som det laddar in i kÀrnan sÄ att dessa krokar fungerar i kÀrnutrymmet.

Vad hÀnder om nÄgot gÄr fel? Vi vet inte. För att förstÄ detta mÄste du lÀsa all denna kod, förstÄ all logik, och det Àr fantastiskt hur svÄrt det Àr. Men Ä andra sidan finns det dessa bryggor, nÀtfilter, ip-rout - jag har inte lÀst deras kÀllkod, och inte heller de 40 ingenjörerna som arbetar i vÄrt företag. Kanske bara ett fÄtal förstÄr vissa delar.

Och vad Ă€r skillnaden? Det visar sig att det finns ip-rout, Linux-kĂ€rnan och det finns ett nytt verktyg - vilken skillnad gör det, vi förstĂ„r inte det ena eller det andra. Men vi Ă€r rĂ€dda för att anvĂ€nda nĂ„got nytt – varför? För om verktyget Ă€r 30 Ă„r gammalt sĂ„ har alla buggar hittats pĂ„ 30 Ă„r, alla misstag har trampats pĂ„ och du behöver inte veta om allt - det fungerar som en svart lĂ„da och fungerar alltid. Alla vet vilken diagnosskruvmejsel som ska stickas pĂ„ vilken plats, vilken tcpdump som ska köras i vilket ögonblick. Alla kĂ€nner till diagnostiska verktyg vĂ€l och förstĂ„r hur denna uppsĂ€ttning komponenter fungerar i Linux-kĂ€rnan - inte hur det fungerar, utan hur man anvĂ€nder det.

Och den fantastiskt coola Cilium Àr inte 30 Är gammal, den har inte Äldrats Àn. Kubernetes har samma problem, kopiera. Att Cilium Àr perfekt installerat, att Kubernetes Àr perfekt installerat, men nÀr nÄgot gÄr fel i produktionen, kan du snabbt förstÄ i en kritisk situation vad som gick fel?

NÀr vi sÀger Àr det svÄrt att underhÄlla Kubernetes - nej, det Àr vÀldigt enkelt, och ja, det Àr otroligt svÄrt. Kubernetes fungerar utmÀrkt pÄ egen hand, men med en miljard nyanser.

Om tillvÀgagÄngssÀttet "I'll be lucky".

— Finns det företag dĂ€r dessa nyanser nĂ€stan garanterat dyker upp? Anta att Yandex plötsligt överför alla tjĂ€nster till Kubernetes, det kommer att bli en enorm belastning dĂ€r.

Dmitry: Nej, det hÀr Àr inte ett samtal om belastningen, utan om de enklaste sakerna. Till exempel har vi Kubernetes, vi distribuerade applikationen dÀr. Hur vet du att det fungerar? Det finns helt enkelt inget fÀrdigt verktyg för att förstÄ att applikationen inte kraschar. Det finns inget fÀrdigt system som skickar varningar, du mÄste konfigurera dessa varningar och varje schema. Och vi uppdaterar Kubernetes.

Jag har Ubuntu 16.04. Man kan sÀga att det hÀr Àr en gammal version, men vi Àr fortfarande pÄ den eftersom det Àr LTS. Det finns systemd, vars nyans Àr att det inte rensar upp C-grupper. Kubernetes lanserar pods, skapar C-grupper, tar sedan bort pods, och pÄ nÄgot sÀtt visar det sig - jag kommer inte ihÄg detaljerna, förlÄt - att systemd skivor finns kvar. Detta leder till det faktum att varje bil med tiden börjar sakta ner kraftigt. Det hÀr Àr inte ens en frÄga om högbelastning. Om permanenta poddar lanseras, till exempel, om det finns ett Cron Job som stÀndigt genererar pods, sÄ kommer maskinen med Ubuntu 16.04 att börja sakta ner efter en vecka. Det blir ett konstant högt belastningsmedel pÄ grund av att ett gÀng C-grupper har skapats. Detta Àr problemet som varje person som helt enkelt installerar Ubuntu 16 och Kubernetes ovanpÄ kommer att möta.

LÄt oss sÀga att han pÄ nÄgot sÀtt uppdaterar systemd eller nÄgot annat, men i Linux-kÀrnan upp till 4.16 Àr det Ànnu roligare - nÀr du tar bort C-grupper lÀcker de in i kÀrnan och raderas faktiskt inte. DÀrför, efter en mÄnads arbete pÄ den hÀr maskinen, kommer det att vara omöjligt att titta pÄ minnesstatistiken för hÀrdarna. Vi tar ut en fil, rullar in den i programmet, och en fil rullar i 15 sekunder, eftersom kÀrnan tar vÀldigt lÄng tid att rÀkna en miljon C-grupper inom sig, som verkar vara raderade, men nej - de lÀcker .

Det finns fortfarande mĂ„nga sĂ„dana smĂ„saker hĂ€r och dĂ€r. Det hĂ€r Ă€r inte en frĂ„ga som jĂ€tteföretag ibland kan möta under mycket tung belastning – nej, det Ă€r en frĂ„ga om vardagliga saker. MĂ€nniskor kan leva sĂ„ hĂ€r i mĂ„nader - de installerade Kubernetes, distribuerade applikationen - det verkar fungera. För mĂ„nga mĂ€nniskor Ă€r detta normalt. De kommer inte ens veta att den hĂ€r applikationen kommer att krascha av nĂ„gon anledning, de kommer inte att fĂ„ en varning, men för dem Ă€r detta normen. Tidigare levde vi pĂ„ virtuella maskiner utan övervakning, nu flyttade vi till Kubernetes, ocksĂ„ utan övervakning – vad Ă€r skillnaden?

FrÄgan Àr att nÀr vi gÄr pÄ is vet vi aldrig dess tjocklek om vi inte mÀter den i förvÀg. MÄnga mÀnniskor gÄr och oroar sig inte, för de har gÄtt förut.

Ur min synvinkel Àr nyansen och komplexiteten i att driva vilket system som helst att sÀkerstÀlla att isens tjocklek Àr exakt tillrÀckligt för att lösa vÄra problem. Det hÀr Àr vad vi pratar om.

Inom IT, förefaller det mig, finns det för mÄnga "I'll be lucky"-metoder. MÄnga installerar programvara och anvÀnder programbibliotek i hopp om att de ska ha tur. I allmÀnhet har mÄnga mÀnniskor tur. Det Àr nog dÀrför det fungerar.

— UtifrĂ„n min pessimistiska bedömning ser det ut sĂ„ hĂ€r: nĂ€r riskerna Ă€r höga, och applikationen mĂ„ste fungera, dĂ„ behövs support frĂ„n Flaunt, kanske frĂ„n Red Hat, eller sĂ„ behöver du ditt eget interna team dedikerat specifikt till Kubernetes, som Ă€r redo att dra av den.

Dmitry: Objektivt sett Àr det sÄ. Att komma in i Kubernetes-berÀttelsen för ett litet team pÄ egen hand innebÀr ett antal risker.

Behöver vi containrar?

— Kan du berĂ€tta hur utbrett Kubernetes Ă€r i Ryssland?

Dmitry: Jag har inte den hÀr informationen och jag Àr inte sÀker pÄ att nÄgon annan har den. Vi sÀger: "Kubernetes, Kubernetes", men det finns ett annat sÀtt att se pÄ den hÀr frÄgan. Jag vet inte heller hur utbredda containrar Àr, men jag vet en siffra frÄn rapporter pÄ Internet att 70 % av containrarna Àr orkestrerade av Kubernetes. Det var en pÄlitlig kÀlla för ett ganska stort urval runt om i vÀrlden.

Sedan en annan frÄga - behöver vi containrar? Min personliga kÀnsla och Flant-företagets övergripande stÀllning Àr att Kubernetes Àr en de facto standard.

Det blir inget annat Àn Kubernetes.

Detta Àr en absolut spelförÀndring inom omrÄdet för infrastrukturhantering. Bara absolut - det Àr det, inte mer Ansible, Chef, virtuella maskiner, Terraform. Jag pratar inte om de gamla kollektivbruksmetoderna. Kubernetes Àr en absolut förÀndring, och nu blir det bara sÄ hÀr.

Det Àr klart att det för vissa tar ett par Är, och för andra ett par decennier, att inse detta. Jag tvivlar inte pÄ att det inte kommer att finnas nÄgot annat Àn Kubernetes och detta nya utseende: vi skadar inte lÀngre operativsystemet, utan anvÀnder infrastruktur som kod, bara inte med kod, utan med yml - en deklarativt beskriven infrastruktur. Jag har en kÀnsla av att det alltid kommer att vara sÄ hÀr.

— Det vill sĂ€ga, de företag som Ă€nnu inte har bytt till Kubernetes kommer definitivt att byta till det eller förbli i glömska. Jag förstod dig rĂ€tt?

Dmitry: Detta Ă€r inte heller helt sant. Om vi ​​till exempel har till uppgift att köra en DNS-server sĂ„ kan den köras pĂ„ FreeBSD 4.10 och den kan fungera perfekt i 20 Ă„r. Bara jobba och det Ă€r det. Om 20 Ă„r kanske nĂ„got behöver uppdateras en gĂ„ng. Om vi ​​pratar om programvara i det format som vi lanserade och den faktiskt fungerar i mĂ„nga Ă„r utan nĂ„gra uppdateringar, utan att göra Ă€ndringar, sĂ„ kommer det naturligtvis inte att finnas nĂ„gra Kubernetes. Han behövs inte dĂ€r.

Allt relaterat till CI/CD - varhelst Continuous Delivery behövs, dÀr du behöver uppdatera versioner, göra aktiva Àndringar, var du Àn behöver bygga feltolerans - bara Kubernetes.

Om mikrotjÀnster

– HĂ€r har jag en liten dissonans. För att arbeta med Kubernetes behöver du extern eller intern support - det hĂ€r Ă€r den första punkten. För det andra, nĂ€r vi precis har börjat utveckla, Ă€r vi en liten startup, vi har inget Ă€nnu, utveckling för Kubernetes eller mikrotjĂ€nstarkitektur i allmĂ€nhet kan vara komplex och inte alltid ekonomiskt motiverad. Jag Ă€r intresserad av din Ă„sikt - mĂ„ste startups omedelbart börja skriva för Kubernetes frĂ„n början, eller kan de fortfarande skriva en monolit och sedan bara komma till Kubernetes?

Dmitry: Cool frÄga. Jag har ett snack om mikrotjÀnster "Microservices: Size Matters." MÄnga gÄnger har jag stött pÄ mÀnniskor som försöker slÄ spikar med ett mikroskop. SjÀlva tillvÀgagÄngssÀttet Àr korrekt, vi designar sjÀlva vÄr interna mjukvara pÄ detta sÀtt. Men nÀr du gör detta mÄste du tydligt förstÄ vad du gör. Ordet jag hatar mest med mikrotjÀnster Àr "mikro". Historiskt sett har detta ord sitt ursprung dÀr, och av nÄgon anledning tror folk att mikro Àr vÀldigt litet, mindre Àn en millimeter, som en mikrometer. Detta Àr fel.

Till exempel finns det en monolit som Àr skriven av 300 personer, och alla som deltagit i utvecklingen förstÄr att det finns problem dÀr, och den bör delas upp i mikrobitar - cirka 10 stycken, som var och en Àr skriven av 30 personer i en minimiversion. Detta Àr viktigt, nödvÀndigt och coolt. Men nÀr en startup kommer till oss, dÀr 3 vÀldigt coola och begÄvade killar skrev 60 mikrotjÀnster pÄ sina knÀn, varje gÄng jag letar efter Corvalol.

Det verkar för mig att det redan har pratats om detta tusentals gÄnger - vi fick en distribuerad monolit i en eller annan form. Detta Àr inte ekonomiskt motiverat, det Àr vÀldigt svÄrt i allmÀnhet i allt. Jag har precis sett det hÀr sÄ mÄnga gÄnger att det gör mig riktigt ont, sÄ jag fortsÀtter att prata om det.

Till den inledande frĂ„gan finns det en konflikt mellan det faktum att Kubernetes Ă„ ena sidan Ă€r lĂ€skigt att anvĂ€nda, eftersom det inte Ă€r klart vad som kan gĂ„ sönder dĂ€r eller inte fungerar, Ă„ andra sidan Ă€r det klart att allt gĂ„r dĂ€r och ingenting annat Ă€n Kubernetes kommer att existera. Svara - vĂ€ga mĂ€ngden nytta som kommer, mĂ€ngden uppgifter som du kan lösa. Detta Ă€r pĂ„ ena sidan av skalan. Å andra sidan finns det risker förknippade med driftstopp eller med en minskning av svarstid, tillgĂ€nglighetsnivĂ„ - med en minskning av prestationsindikatorer.

HĂ€r Ă€r det – antingen rör vi oss snabbt och Kubernetes lĂ„ter oss göra mĂ„nga saker mycket snabbare och bĂ€ttre, eller sĂ„ anvĂ€nder vi pĂ„litliga, beprövade lösningar, men gĂ„r mycket lĂ„ngsammare. Detta Ă€r ett val varje företag mĂ„ste göra. Du kan tĂ€nka pĂ„ det som en stig i djungeln - nĂ€r du gĂ„r för första gĂ„ngen kan du möta en orm, en tiger eller en galen grĂ€vling, och nĂ€r du har gĂ„tt 10 gĂ„nger har du trampat stigen, tagit bort grenarna och gĂ„ lĂ€ttare. För varje gĂ„ng blir vĂ€gen bredare. Sedan Ă€r det en asfalterad vĂ€g, och senare en vacker boulevard.

Kubernetes stÄr inte stilla. FrÄga igen: Kubernetes Àr Ä ena sidan 4-5 binÀrer, Ä andra sidan Àr det hela ekosystemet. Det hÀr Àr operativsystemet som vi har pÄ vÄra maskiner. Vad Àr detta? Ubuntu eller Curios? Detta Àr Linux-kÀrnan, ett gÀng ytterligare komponenter. Alla dessa saker hÀr, en giftig orm kastades ut frÄn vÀgen, ett staket restes dÀr. Kubernetes utvecklas mycket snabbt och dynamiskt, och volymen av risker, volymen av det okÀnda minskar varje mÄnad och följaktligen Äterbalanserar dessa skalor.

Som svar pÄ frÄgan om vad en startup ska göra, skulle jag sÀga - kom till Flaunt, betala 150 tusen rubel och fÄ en nyckelfÀrdig DevOps enkel tjÀnst. Om du Àr en liten startup med ett fÄtal utvecklare fungerar detta. IstÀllet för att anstÀlla egna DevOps, som kommer att behöva lÀra sig att lösa dina problem och betala en lön vid det hÀr laget, fÄr du en nyckelfÀrdig lösning pÄ alla frÄgor. Ja, det finns nÄgra nackdelar. Vi som uppdragsgivare kan inte vara sÄ involverade och reagera snabbt pÄ förÀndringar. Men vi har mycket expertis och fÀrdiga rutiner. Vi garanterar att vi i alla situationer definitivt snabbt kommer att ta reda pÄ det och uppvÀcka eventuella Kubernetes frÄn de döda.

Jag rekommenderar starkt att outsourca till startups och etablerade företag upp till en storlek dÀr man kan Àgna ett team pÄ 10 personer till verksamheten, för annars Àr det ingen mening. Det Àr definitivt vettigt att lÀgga ut detta pÄ entreprenad.

Om Amazon och Google

— Kan en vĂ€rd frĂ„n en lösning frĂ„n Amazon eller Google betraktas som en outsourcing?

Dmitry: Ja, sjÀlvklart, det hÀr löser ett antal problem. Men Äterigen finns det nyanser. Du mÄste fortfarande förstÄ hur du anvÀnder den. Till exempel finns det tusen smÄ saker i Amazon AWS:s arbete: Load Balancer mÄste vÀrmas upp eller sÄ mÄste en begÀran skrivas i förvÀg om att "killar, vi kommer att ta emot trafik, vÀrm upp Load Balancer för oss!" Du mÄste kÀnna till dessa nyanser.

NĂ€r man vĂ€nder sig till personer som Ă€r specialiserade pĂ„ detta fĂ„r man nĂ€stan alla typiska saker stĂ€ngda. Vi har nu 40 ingenjörer, i slutet av Ă„ret kommer det förmodligen att vara 60 - vi har definitivt stött pĂ„ alla dessa saker. Även om vi stöter pĂ„ det hĂ€r problemet igen i nĂ„got projekt, frĂ„gar vi snabbt varandra och vet hur vi ska lösa det.

Förmodligen Ă€r svaret - naturligtvis gör en vĂ€rdberĂ€ttelse en del enklare. FrĂ„gan Ă€r om du Ă€r redo att lita pĂ„ dessa vĂ€rdar och om de kommer att lösa dina problem. Amazon och Google har gjort det bra. För alla vĂ„ra fall – exakt. Vi har inga fler positiva erfarenheter. Alla andra moln som vi försökte arbeta med skapar en massa problem - Ager, och allt som finns i Ryssland, och alla typer av OpenStack i olika implementeringar: Headster, Overage - vad du vill. De skapar alla problem som du inte vill lösa.

DÀrför Àr svaret ja, men i sjÀlva verket finns det inte sÀrskilt mÄnga mogna vÀrdbaserade lösningar.

Vem behöver Kubernetes?

— Och Ă€ndĂ„, vem behöver Kubernetes? Vem borde redan byta till Kubernetes, vem Ă€r den typiska Flaunt-klienten som kommer specifikt för Kubernetes?

Dmitry: Det hÀr Àr en intressant frÄga, för just nu, i kölvattnet av Kubernetes, kommer mÄnga mÀnniskor till oss: "Grabbar, vi vet att ni gör Kubernetes, gör det Ät oss!" Vi svarar dem: "Mine herrar, vi gör inte Kubernetes, vi gör prod och allt som Àr kopplat till det." För det Àr för nÀrvarande helt enkelt omöjligt att göra en produkt utan att göra alla CI/CD och hela denna historia. Alla har gÄtt bort frÄn uppdelningen att vi har utveckling genom utveckling, och sedan exploatering genom exploatering.

VĂ„ra kunder förvĂ€ntar sig olika saker, men alla vĂ€ntar pĂ„ nĂ„got bra mirakel att de har vissa problem, och nu - hopp! — Kubernetes kommer att lösa dem. MĂ€nniskor tror pĂ„ mirakel. I sina sinnen förstĂ„r de att det inte kommer att ske nĂ„got mirakel, men i sina sjĂ€lar hoppas de - tĂ€nk om denna Kubernetes nu kommer att lösa allt för oss, de pratar sĂ„ mycket om det! Plötsligt han nu - nys! - och en silverkula, nys! — och vi har 100 % drifttid, alla utvecklare kan slĂ€ppa allt som kommer i produktion 50 gĂ„nger, och det kraschar inte. I allmĂ€nhet ett mirakel!

NÀr sÄdana mÀnniskor kommer till oss sÀger vi: "FörlÄt, men det finns inget som heter ett mirakel." För att vara frisk mÄste du Àta bra och trÀna. För att ha en pÄlitlig produkt mÄste den tillverkas pÄlitligt. För att ha en bekvÀm CI/CD mÄste du göra den sÄ hÀr. Det Àr mycket arbete som mÄste göras.

Att svara pÄ frÄgan om vem som behöver Kubernetes - ingen behöver Kubernetes.

Vissa mÀnniskor har missuppfattningen att de behöver Kubernetes. MÀnniskor behöver, de har ett djupt behov av att sluta tÀnka, studera och vara intresserade av alla problem med infrastruktur och problemen med att köra sina applikationer. De vill att applikationer bara ska fungera och bara distribuera. För dem Àr Kubernetes förhoppningen att de ska sluta höra historien om att "vi lÄg dÀr" eller "vi kan inte rulla ut" eller nÄgot annat.

Den tekniska chefen brukar komma till oss. De frÄgar honom tvÄ saker: Ä ena sidan, ge oss egenskaper, Ä andra sidan, stabilitet. Vi föreslÄr att du tar pÄ dig det och gör det. Silverkulan, eller snarare silverplÀterad, Àr att du kommer att sluta tÀnka pÄ dessa problem och slösa tid. Du kommer att ha speciella personer som kommer att avsluta det hÀr problemet.

Formuleringen att vi eller nÄgon annan behöver Kubernetes Àr felaktig.

Administratörer behöver verkligen Kubernetes, för det Àr en vÀldigt intressant leksak som du kan leka med och mixtra med. LÄt oss vara Àrliga - alla Àlskar leksaker. Vi Àr alla barn nÄgonstans, och nÀr vi ser en ny vill vi leka den. För vissa har detta avskrÀckts, till exempel inom administrationen, eftersom de redan har spelat tillrÀckligt och redan Àr trötta till den grad att de helt enkelt inte vill. Men detta Àr inte helt förlorat för nÄgon. Om jag till exempel har tröttnat pÄ leksaker inom systemadministration och DevOps lÀnge, sÄ Àlskar jag fortfarande leksakerna, jag köper fortfarande nÄgra nya. Alla mÀnniskor, pÄ ett eller annat sÀtt, vill fortfarande ha nÄgon form av leksaker.

Du behöver inte leka med produktionen. Vad jag Ă€n kategoriskt rekommenderar att inte göra och vad jag ser nu i massor: "Åh, en ny leksak!" — de sprang för att köpa den, köpte den och: "LĂ„t oss ta den till skolan nu och visa den för alla vĂ„ra vĂ€nner." Gör inte det. Jag ber om ursĂ€kt, mina barn vĂ€xer bara upp, jag ser hela tiden nĂ„got hos barn, mĂ€rker det pĂ„ mig sjĂ€lv och generaliserar det sedan till andra.

Det slutliga svaret Àr: du behöver inte Kubernetes. Du mÄste lösa dina problem.

Det du kan uppnÄ Àr:

  • prod faller inte;
  • Ă€ven om han försöker falla, vet vi om det i förvĂ€g, och vi kan lĂ€gga nĂ„got i det;
  • vi kan Ă€ndra det i den hastighet med vilken vĂ„r verksamhet krĂ€ver det, och vi kan göra det bekvĂ€mt; det orsakar oss inga problem.

Det finns tvĂ„ verkliga behov: tillförlitlighet och dynamik/flexibilitet i utbyggnaden. Alla som just nu hĂ„ller pĂ„ med nĂ„gon form av IT-projekt, oavsett i vilken typ av verksamhet – mjuk för att underlĂ€tta vĂ€rlden, och som förstĂ„r detta, behöver lösa dessa behov. Kubernetes med rĂ€tt tillvĂ€gagĂ„ngssĂ€tt, med rĂ€tt förstĂ„else och med tillrĂ€cklig erfarenhet gör att du kan lösa dem.

Om serverlöst

— Om man tittar lite lĂ€ngre in i framtiden, försöker lösa problemet med frĂ„nvaron av huvudvĂ€rk med infrastruktur, med hastigheten pĂ„ utrullningen och hastigheten pĂ„ applikationsförĂ€ndringar, nya lösningar dyker upp, till exempel serverlösa. KĂ€nner du nĂ„gon potential i denna riktning och, lĂ„t oss sĂ€ga, en fara för Kubernetes och liknande lösningar?

Dmitry: HĂ€r behöver vi göra en anmĂ€rkning igen om att jag inte Ă€r en seare som blickar framĂ„t och sĂ€ger – det blir sĂ„ hĂ€r! Fast jag gjorde precis samma sak. Jag tittar pĂ„ mina fötter och ser en massa problem dĂ€r, till exempel hur transistorer fungerar i en dator. Det Ă€r roligt, eller hur? Vi stöter pĂ„ nĂ„gra buggar i CPU:n.

Gör serverlös ganska tillförlitlig, billig, effektiv och bekvĂ€m och löser alla ekosystemproblem. HĂ€r hĂ„ller jag med Elon Musk om att det behövs en andra planet för att skapa feltolerans för mĂ€nskligheten. Även om jag inte vet vad han sĂ€ger, förstĂ„r jag att jag inte Ă€r redo att flyga till Mars sjĂ€lv och att det inte kommer att hĂ€nda i morgon.

Med serverless Àr det tydligt klart att detta Àr en ideologiskt korrekt sak, som feltolerans för mÀnskligheten - att ha tvÄ planeter Àr bÀttre Àn en. Men hur gör man nu? Att skicka en expedition Àr inte ett problem om du koncentrerar dina anstrÀngningar pÄ det. Att skicka flera expeditioner och bosÀtta flera tusen mÀnniskor dÀr tror jag ocksÄ Àr realistiskt. Men att göra det helt feltÄligt sÄ att hÀlften av mÀnskligheten bor dÀr, det förefaller mig nu omöjligt, om man inte beaktar det.

Med serverlös en mot en: saken Àr cool, men det Àr lÄngt ifrÄn problemen för 2019. NÀrmare 2030 - lÄt oss leva för att se det. Jag tvivlar inte pÄ att vi kommer att leva, vi kommer definitivt att leva (upprepa innan vi gÄr och lÀgger oss), men nu mÄste vi lösa andra problem. Det Àr som att tro pÄ sagoponnyn Rainbow. Ja, ett par procent av fallen Àr lösta, och de Àr lösta perfekt, men subjektivt sett Àr serverlöst en regnbÄge... För mig Àr det hÀr Àmnet för avlÀgset och för obegripligt. Jag Àr inte redo att prata. Under 2019 kan du inte skriva en enda applikation med serverlös.

Hur Kubernetes kommer att utvecklas

— NĂ€r vi gĂ„r mot denna potentiellt underbara avlĂ€gsna framtid, hur tror du att Kubernetes och ekosystemet runt det kommer att utvecklas?

Dmitry: Jag har funderat mycket pÄ det hÀr och jag har ett tydligt svar. Den första Àr statefull - trots allt Àr statslös lÀttare att göra. Kubernetes satsade initialt mer pÄ detta, allt började med det. Stateless fungerar nÀstan perfekt i Kubernetes, det finns bara inget att klaga pÄ. Det finns fortfarande mÄnga problem, eller snarare nyanser. Allt dÀr fungerar redan bra för oss, men det Àr vi. Det kommer att ta minst ett par Är till innan detta fungerar för alla. Detta Àr inte en berÀknad indikator, utan min kÀnsla frÄn mitt huvud.

Kort sagt, statefull bör - och kommer - att utvecklas mycket starkt, eftersom alla vĂ„ra applikationer lagrar status, det finns inga statslösa applikationer. Detta Ă€r en illusion, du behöver alltid nĂ„gon form av databas och nĂ„got annat. Statefull handlar om att rĂ€ta ut allt som Ă€r möjligt, fixa alla buggar, förbĂ€ttra alla problem som just nu stĂ„r inför – lĂ„t oss kalla det adoption.

NivÄn pÄ det okÀnda, nivÄn pÄ olösta problem, nivÄn pÄ sannolikheten att stöta pÄ nÄgot kommer att sjunka avsevÀrt. Det hÀr Àr en viktig historia. Och operatörer - allt relaterat till kodifiering av administrationslogik, kontrolllogik för att fÄ en enkel tjÀnst: MySQL enkel service, RabbitMQ enkel service, Memcache enkel service - i allmÀnhet alla dessa komponenter som vi mÄste garanteras fungera ur lÄdan. Detta löser bara smÀrtan att vi vill ha en databas, men vi vill inte administrera den, eller vi vill ha Kubernetes, men vi vill inte administrera den.

Den hÀr historien om operatörsutveckling i en eller annan form kommer att vara viktig under de kommande Ären.

Jag tror att anvĂ€ndarvĂ€nligheten borde öka rejĂ€lt – lĂ„dan blir mer och mer svart, mer och mer pĂ„litlig, med fler och fler enkla knoppar.

Jag lyssnade en gĂ„ng pĂ„ en gammal intervju med Isaac Asimov frĂ„n 80-talet pĂ„ YouTube pĂ„ Saturday Night Live – ett program som Urgant, bara intressant. De frĂ„gade honom om framtiden för datorer. Han sa att framtiden Ă€r i enkelhet, precis som radion. Radiomottagaren var ursprungligen en komplex sak. För att fĂ„nga en vĂ„g var man tvungen att vrida pĂ„ rattarna i 15 minuter, vrida pĂ„ spetten och allmĂ€nt veta hur allt fungerar, förstĂ„ fysiken för radiovĂ„gsöverföring. Det gjorde att det bara fanns en ratt kvar i radion.

Vilken radio nu 2019? I bilen hittar radiomottagaren alla vĂ„gor och namnen pĂ„ stationerna. Processens fysik har inte förĂ€ndrats pĂ„ 100 Ă„r, men anvĂ€ndarvĂ€nligheten har gjort det. Nu, och inte bara nu, redan 1980, nĂ€r det var en intervju med Azimov, anvĂ€nde alla radion och ingen tĂ€nkte pĂ„ hur det fungerade. Det har alltid fungerat – det Ă€r givet.

Azimov sa dÄ att det skulle vara samma sak med datorer - anvÀndarvÀnligheten kommer att öka. Medan man 1980 var tvungen att utbildas för att trycka pÄ knappar pÄ en dator, sÄ kommer det inte att vara fallet i framtiden.

Jag har en kÀnsla av att med Kubernetes och med infrastrukturen kommer det ocksÄ att bli en enorm ökning av anvÀndarvÀnligheten. Detta Àr enligt min mening uppenbart - det ligger pÄ ytan.

Vad ska man göra med ingenjörer?

— Vad hĂ€nder dĂ„ med ingenjörerna och systemadministratörerna som stödjer Kubernetes?

Dmitry: Vad hĂ€nde med revisorn efter tillkomsten av 1C? UngefĂ€r samma. Innan detta rĂ€knade man pĂ„ papper – nu i programmet. Arbetsproduktiviteten har ökat i storleksordningar, men sjĂ€lva arbetet har inte försvunnit. Om det tidigare krĂ€vdes 10 ingenjörer för att skruva i en glödlampa, nu rĂ€cker det med en.

MÀngden mjukvara och antalet uppgifter, verkar det för mig, vÀxer nu i snabbare takt Àn vad nya DevOps dyker upp och effektiviteten ökar. Det rÄder en specifik brist pÄ marknaden just nu och den kommer att pÄgÄ lÀnge. Senare kommer allt att ÄtergÄ till nÄgon form av normalitet, dÀr effektiviteten i arbetet kommer att öka, det kommer att bli mer och mer serverlöst, en neuron kommer att kopplas till Kubernetes, som kommer att vÀlja alla resurser exakt efter behov, och i allmÀnhet kommer att gör allt sjÀlv, som det ska - personen gÄr bara undan och stör inte.

Men nÄgon kommer fortfarande att behöva fatta beslut. Det Àr tydligt att denna persons kvalifikationsnivÄ och specialisering Àr högre. Numera pÄ redovisningsavdelningen behöver man inte 10 anstÀllda som bokför sÄ att hÀnderna inte blir trötta. Det Àr helt enkelt inte nödvÀndigt. MÄnga dokument skannas automatiskt och kÀnns igen av det elektroniska dokumenthanteringssystemet. Det rÀcker med en smart revisor, redan med mycket större kompetens, med god förstÄelse.

Generellt sett Àr det rÀtt vÀg att gÄ inom alla branscher. Det Àr samma sak med bilar: tidigare kom en bil med en mekaniker och tre förare. Nuförtiden Àr bilkörning en enkel process som vi alla deltar i varje dag. Ingen tycker att en bil Àr nÄgot komplicerat.

DevOps eller systemteknik kommer inte att försvinna - arbete pÄ hög nivÄ och effektivitet kommer att öka.

— Jag hörde ocksĂ„ en intressant idĂ© om att arbetet faktiskt kommer att öka.

Dmitry: SjÀlvklart, hundra procent! För mÀngden mjukvara vi skriver vÀxer hela tiden. Antalet problem som vi löser med mjukvara vÀxer stÀndigt. MÀngden arbete vÀxer. Nu Àr DevOps-marknaden fruktansvÀrt överhettad. Det syns i löneförvÀntningarna. PÄ ett bra sÀtt, utan att gÄ in pÄ detaljer, borde det finnas juniorer som vill ha X, mitten som vill ha 1,5X, och seniorer som vill ha 2X. Och nu, om du tittar pÄ Moscow DevOps lönemarknad, vill en junior ha frÄn X till 3X och en senior vill ha frÄn X till 3X.

Ingen vet hur mycket det kostar. LönenivĂ„n mĂ€ts av ditt sjĂ€lvförtroende – ett komplett dĂ„rhus, om jag ska vara Ă€rlig, en fruktansvĂ€rt överhettad marknad.

Naturligtvis kommer denna situation att förĂ€ndras mycket snart - en viss mĂ€ttnad bör intrĂ€ffa. SĂ„ Ă€r det inte med mjukvaruutveckling – trots att alla behöver utvecklare, och alla behöver bra utvecklare, förstĂ„r marknaden vem som Ă€r vĂ€rd vad – har branschen satt sig. SĂ„ Ă€r inte fallet med DevOps nuförtiden.

— Av vad jag hörde drog jag slutsatsen att den nuvarande systemadministratören inte borde oroa sig för mycket, men det Ă€r dags att uppgradera sina fĂ€rdigheter och förbereda sig pĂ„ att det imorgon kommer att bli mer arbete, men det kommer att vara mer kvalificerat.

Dmitry: Ett hundra procent. Generellt sett lever vi 2019 och levnadsregeln Ă€r denna: livstidsinlĂ€rning – vi lĂ€r oss hela livet. Det verkar för mig att nu alla redan vet och kĂ€nner detta, men det rĂ€cker inte att veta - du mĂ„ste göra det. Varje dag mĂ„ste vi förĂ€ndras. Om vi ​​inte gör detta kommer vi förr eller senare att slĂ€ppas vid yrkets sida.

Var beredd pĂ„ skarpa 180-graders svĂ€ngar. Jag utesluter inte en situation dĂ€r nĂ„got förĂ€ndras radikalt, nĂ„got nytt uppfinns - det hĂ€nder. Hopp! – och nu agerar vi annorlunda. Det Ă€r viktigt att vara förberedd pĂ„ detta och inte oroa sig. Det kan hĂ€nda att allt jag gör imorgon visar sig vara onödigt - ingenting, jag har pluggat hela mitt liv och Ă€r redo att lĂ€ra mig nĂ„got annat. Det Ă€r inte ett problem. Du behöver inte vara rĂ€dd för anstĂ€llningstryggheten, utan du mĂ„ste vara beredd pĂ„ att hela tiden lĂ€ra dig nĂ„got nytt.

Önskar och en minuts reklam

- Har du nÄgon önskan?

Dmitry: Ja, jag har flera önskemÄl.

Första och merkantilt - prenumerera pĂ„ Youtube. KĂ€ra lĂ€sare, gĂ„ till YouTube och prenumerera pĂ„ vĂ„r kanal. Om ungefĂ€r en mĂ„nad kommer vi att pĂ„börja en aktiv expansion av videotjĂ€nsten. Vi kommer att ha mycket pedagogiskt innehĂ„ll om Kubernetes, öppet och varierat: frĂ„n praktiska saker, Ă€nda ner till laboratorier, till djupa grundlĂ€ggande teoretiska saker och hur man anvĂ€nder Kubernetes pĂ„ nivĂ„ av principer och mönster.

Den andra merkantila önskan - gĂ„ till GitHub och sĂ€tta stjĂ€rnor eftersom vi livnĂ€r oss pĂ„ dem. Om du inte ger oss stjĂ€rnor har vi inget att Ă€ta. Det Ă€r som mana i ett datorspel. Vi gör nĂ„got, vi gör, vi försöker, nĂ„gon sĂ€ger att det hĂ€r Ă€r hemska cyklar, nĂ„gon att allt Ă€r helt fel, men vi fortsĂ€tter och agerar helt Ă€rligt. Vi ser ett problem, löser det och delar med oss ​​av vĂ„r erfarenhet. DĂ€rför, ge oss en stjĂ€rna, den kommer inte att försvinna frĂ„n dig, men den kommer till oss, eftersom vi livnĂ€r oss pĂ„ dem.

Tredje, viktig och inte lĂ€ngre merkantil önskan - sluta tro pĂ„ sagor. Ni Ă€r proffs. DevOps Ă€r ett mycket seriöst och ansvarsfullt yrke. Sluta leka pĂ„ arbetsplatsen. LĂ„t det klicka Ă„t dig sĂ„ förstĂ„r du det. FörestĂ€ll dig att du kommer till sjukhuset och dĂ€r experimenterar lĂ€karen med dig. Jag förstĂ„r att detta kan vara stötande för nĂ„gon, men troligen handlar det inte om dig utan om nĂ„gon annan. SĂ€g Ă„t andra att ocksĂ„ sluta. Detta förstör verkligen livet för oss alla – mĂ„nga börjar behandla operationer, administratörer och DevOps som snubbar som har brutit nĂ„got igen. Detta "bröts" oftast pĂ„ grund av att vi gick och lekte, och sĂ„g inte med kallt medvetande ut att det Ă€r sĂ„ hĂ€r det Ă€r, och sĂ„ Ă€r det.

Det betyder inte att du inte ska experimentera. Vi mÄste experimentera, vi gör det sjÀlva. För att vara Àrlig sÄ spelar vi sjÀlva ibland spel - det hÀr Àr naturligtvis vÀldigt dÄligt, men inget mÀnskligt Àr oss frÀmmande. LÄt oss förklara att 2019 Àr ett Är av seriösa, genomtÀnkta experiment, och inte spel i produktion. Förmodligen sÄ.

- Tack sÄ mycket!

Dmitry: Tack, Vitaly, bÄde för tiden och för intervjun. KÀra lÀsare, tack sÄ mycket om ni plötsligt har nÄtt denna punkt. Jag hoppas att vi tog med dig Ätminstone ett par tankar.

I intervjun berörde Dmitry frĂ„gan om werf. Nu Ă€r detta en universal schweizisk kniv som löser nĂ€stan alla problem. Men det var inte alltid sĂ„. PĂ„ DevOpsConf  pĂ„ festivalen RIT++ Dmitry Stolyarov kommer att berĂ€tta om detta verktyg i detalj. i rapporten "werf Ă€r vĂ„rt verktyg för CI/CD i Kubernetes" det kommer att finnas allt: problem och dolda nyanser av Kubernetes, alternativ för att lösa dessa svĂ„righeter och den nuvarande implementeringen av werf i detalj. Följ med oss ​​den 27 och 28 maj, vi skapar de perfekta verktygen.

KĂ€lla: will.com

LĂ€gg en kommentar