I förvÀg Vitalij Khabarov gjorde en intervju med Dmitrij Stolyarov (), teknisk direktör och medgrundare av företaget "Flant". Vitalij frÄgade Dmitrij om vad "Flant" gör, om Kubernetes, utvecklingen av ekosystemet och support. De diskuterade varför Kubernetes behövs och om det ens Àr nödvÀndigt. Dessutom pratade de om mikrotjÀnster, Amazon AWS, tillvÀgagÄngssÀttet "Jag har tur" i DevOps, framtiden för Kubernetes, varför, nÀr och hur det kommer att ta över vÀrlden, perspektiv pÄ DevOps och vad ingenjörer bör förbereda sig för i en ljus och nÀra framtid med förenklingar och neurala nÀtverk.
i form av en podcast kan du lyssna pĂ„ DevOps Deflope â en rysktalande podcast om DevOps, och nedan Ă€r den textbaserade versionen.

HÀr och framÄt stÀller frÄgor ingenjören frÄn Express42.
Om "Flant"
â Dima, hej. Du Ă€r den tekniska direktören för "" och ocksĂ„ dess grundare. BerĂ€tta gĂ€rna vad företaget sysslar med och vilken roll du har dĂ€r.
Dmitrij: UtifrÄn verkar det som om vi Àr sÄdana killar som gÄr runt och installerar Kubernetes pÄ alla och gör nÄgot med det. Men sÄ Àr det inte. Vi började som ett företag som arbetade med Linux, men sedan lÀnge har vÄr huvudsakliga verksamhet varit att hantera produktions- och högbelastningsprojekt pÄ nyckelfÀrdig basis. Vanligtvis bygger vi hela infrastrukturen frÄn grunden och ansvarar för den lÀnge. SÄ, det huvudsakliga arbete som "Flant" gör, och som de fÄr betalt för, Àr att ta ansvar och genomföra produktion pÄ nyckelfÀrdig basis.
Jag, som teknisk direktör och en av företagets grundare, sysslar dygnet runt med att komma pÄ hur vi kan öka tillgÀngligheten i produktionen, förenkla driften, göra livet lÀttare för administratörer och skapa en trevligare miljö för utvecklarna.
Om Kubernetes
â PĂ„ sistone har jag sett mĂ„nga förelĂ€sningar frĂ„n "Flant" och om Kubernetes. Hur kom ni in pĂ„ det?
Dmitrij: Jag har redan berÀttat om detta mÄnga gÄnger, men jag har inget emot att upprepa mig. Jag anser att det Àr viktigt att repetera detta Àmne, eftersom det uppstÄr förvirring mellan orsak och verkan.
Vi behövde verkligen ett verktyg. Vi stötte pÄ en massa problem, kÀmpade och övervann dem pÄ olika ad-hoc-sÀtt och kÀnde behovet av ett verktyg. Vi utforskade mÄnga olika alternativ, byggde vÄra egna lösningar och samlade erfarenhet. SÄ smÄningom kom vi till den punkt dÀr vi började anvÀnda Docker nÀstan sÄ fort det blev tillgÀngligt - runt 2013. Vid tidpunkten för dess ankomst hade vi redan mycket erfarenhet av containrar och hade skrivit en egen variant av "Docker" - en del egna lösningar i Python. Med ankomsten av Docker blev det möjligt att slÀnga vÄra ad-hoc-lösningar och anvÀnda en pÄlitlig och gemenskapsstödd lösning.
Historien med Kubernetes Àr liknande. Vid den tidpunkten dÄ det började ta fart - för oss var det version 1.2 - hade vi redan en massa ad-hoc-lösningar bÄde i Shell och Chef, som vi pÄ nÄgot sÀtt hade försökt orkestrera Docker med. Vi tittade seriöst pÄ Rancher och olika andra lösningar, men dÄ kom Kubernetes, dÀr allt var implementerat precis sÄ som vi skulle ha gjort det eller till och med bÀttre. Det var inget att klaga pÄ.
Ja, det finns nÄgon sorts ofÀrdighet hÀr, det finns nÄgot ofÀrdigt dÀr - mycket ofÀrdigt, och 1.2 Àr verkligen hemskt, men.... Kubernetes Àr som en byggnad under uppförande - man ser pÄ projektet och förstÄr att det kommer att bli fantastiskt. Om byggnaden nu har en grund och tvÄ vÄningar, dÄ förstÄr man att det Àr bÀttre att inte flytta in Àn, men med mjukvaran finns det inga sÄdana problem - den gÄr redan att anvÀnda.
Vi hade aldrig en stund dÀr vi funderade pÄ om vi skulle anvÀnda Kubernetes eller inte. Vi vÀntade pÄ det lÄngt innan det kom, och försökte sjÀlva bygga upp alternativ.
Om Kubernetes
â Deltar ni direkt i utvecklingen av sjĂ€lva Kubernetes?
Dmitrij: Delvis. Vi bidrar snarare till utvecklingen av ekosystemet. Vi skickar in ett visst antal pull requests: i Prometheus, till olika operators, i Helm â till ekosystemet. TyvĂ€rr kan jag inte hĂ„lla koll pĂ„ allt vi gör och kan göra misstag, men vi har inte skickat in nĂ„got till kĂ€rnan.
â Samtidigt utvecklar ni mĂ„nga egna verktyg omkring Kubernetes?
Dmitrij: Strategin Àr sÄdan: vi gÄr och gör pull requests till allt som redan finns. Om pull requests inte accepteras dÀr, forklar vi dem för oss sjÀlva och lever tills de accepteras med vÄra byggen. NÀr detta nÄr upstream, ÄtervÀnder vi till den upstream-versionen.
Till exempel har vi en Prometheus-operator som vi har vÀxlat mellan i vÄr uppströmsversion av byggnaden för femte gÄngen, antar jag. Vi behöver nÄgon funktion, vi skickade en pull request, vi mÄste rulla ut den imorgon och vill inte vÀnta pÄ att den ska slÀppas i uppströms. DÀrför bygger vi vÄr egen version med den funktion vi behöver pÄ alla vÄra kluster. Sedan i uppströms förpackar de det med orden: "Killarna, lÄt oss göra det för en mer generell situation", vi, eller nÄgon annan, fÀrdigstÀller det, och sÄsmÄningom slÄs det tillbaka.
Allt som existerar strĂ€var vi efter att utveckla.. MĂ„nga element som Ă€nnu inte finns, antingen Ă€r de fortfarande inte uppfunna eller sĂ„ har de uppfunnits men Ă€nnu inte implementerats â vi skapar dem. Och inte för att vi gillar sjĂ€lva processen eller att bygga cyklar som bransch, utan helt enkelt för att vi behöver detta verktyg. Ofta stĂ€lls frĂ„gan varför vi skapade den eller den saken? Svaret Ă€r enkelt â jo, för att vi behövde gĂ„ vidare, lösa nĂ„got praktiskt problem, och vi löste det med det hĂ€r verktyget.
VÀgen Àr alltid sÄdan: vi letar mycket noggrant och, om vi inte hittar nÄgon lösning pÄ hur man gör en trolleybus av ett bröd, sÄ gör vi vÄrt eget bröd och vÄr egen trolleybus.
Flanta-verktyg
â Jag vet att Flanta just nu har addon-operatörer, shell-operatörer, dapp/werf-verktyg. Som jag förstĂ„r det Ă€r det samma verktyg i olika inkarnationer. Jag förstĂ„r ocksĂ„ att det finns mĂ„nga olika verktyg inom Flanta. StĂ€mmer det?
Dmitrij: Vi har mycket mer pĂ„ GitHub. Bland det jag nu kommer ihĂ„g har vi statusmap â en panel för Grafana som alla gillade. Den nĂ€mns nĂ€stan i varje andra artikel om Kubernetes övervakning pĂ„ Medium. Det Ă€r omöjligt att kortfattat berĂ€tta vad statusmap Ă€r â en separat artikel krĂ€vs, men det Ă€r en mycket anvĂ€ndbar sak för att övervaka status över tid, eftersom vi ofta behöver visa status över tid i Kubernetes. Vi har ocksĂ„ LogHouse â detta Ă€r en skapelse baserad pĂ„ ClickHouse och svart magi för att samla loggar i Kubernetes.
MÄnga verktyg! Och det kommer att bli Ànnu fler, eftersom ett antal interna lösningar kommer att lanseras i Är. Bland de stora baserat pÄ addon-operatören finns det massor av addons för Kubernetes, som hur man korrekt installerar sert manager - ett verktyg för hantering av certifikat, som hur man installerar Prometheus med massor av tillÀgg - det handlar om tjugotal olika binÀrer som exporterar data och samlar in nÄgot, samt att Prometheus erbjuder fantastisk grafik och alerts. Allt detta Àr bara massor av addons till Kubernetes, som installeras i klustret, vilket förvandlar det frÄn enkelt till avancerat, automatiserat, dÀr mÄnga frÄgor redan Àr lösta. Ja, vi gör mycket.
Utveckling av ekosystemet
â Jag tycker att det Ă€r ett mycket stort bidrag till utvecklingen av detta verktyg och dess anvĂ€ndningsmetoder. Kan du ungefĂ€r förestĂ€lla dig vilka andra som skulle kunna bidra lika mycket till utvecklingen av ekosystemet?
Dmitrij: I Ryssland, av de företag som verkar pÄ vÄr marknad - ingen i nÀrheten.. SjÀlvklart, det Àr ett starkt uttalande, eftersom det finns stora aktörer som Mail och Yandex - de gör ocksÄ nÄgot med Kubernetes, men Àven de har inte kommit nÀra bidraget frÄn företag runt om i vÀrlden, som gör mycket mer Àn vi. Det Àr svÄrt att jÀmföra "Flant" med en personalstyrka pÄ 80 personer och Red Hat, dÀr bara inom Kubernetes har de 300 ingenjörer, om jag inte minns fel. Det Àr svÄrt att jÀmföra. Vi har 6 personer i vÄr RnD-avdelning inklusive mig, som arbetar med alla vÄra verktyg. 6 personer mot 300 ingenjörer pÄ Red Hat - det Àr pÄ nÄgot sÀtt svÄrt att jÀmföra.
â Trots detta kan Ă€ven dessa 6 personer göra nĂ„got verkligt anvĂ€ndbart och överlĂ„tande nĂ€r de stĂ€lls inför en praktisk uppgift och lĂ€mnar en lösning till gemenskapen - en intressant fallstudie. Jag förstĂ„r att stora teknikföretag, dĂ€r det finns egen utveckling och en supportteam för Kubernetes, i princip kan utveckla liknande verktyg. Det Ă€r ett exempel för dem att man kan utveckla och ge tillbaka till gemenskapen och ge ett lyft till hela gemenskapen som anvĂ€nder Kubernetes.
Dmitrij: Antagligen Àr detta en integratorspecialitet. Vi har mÄnga projekt och ser mÄnga olika situationer. VÄr huvudsakliga metod för att skapa mervÀrde Àr att analysera dessa fall, hitta gemensamma nÀmnare och maximera kostnadsminskningen för oss. Det Àr nÄgot vi arbetar aktivt med. Det Àr svÄrt för mig att uttala mig om Ryssland och vÀrlden, men vi har ungefÀr 40 DevOps-ingenjörer i företaget som arbetar med Kubernetes. Jag tror inte att det finns mÄnga företag i Ryssland med en jÀmförbar mÀngd specialister som faktiskt kÀnner till Kubernetes, om de ens finns.
Jag förstĂ„r allt om titeln DevOps-ingenjör, alla vet och Ă€r vana vid att kalla DevOps-ingenjörer just för DevOps-ingenjörer, vi kommer inte att diskutera det. Alla dessa 40 fantastiska DevOps-ingenjörer stĂ„r varje dag inför problem och löser dem; vi analyserar bara denna erfarenhet och försöker generalisera. Vi inser att om den stannar hos oss, sĂ„ inom ett Ă„r eller tvĂ„ kommer verktyget att bli vĂ€rdelöst, eftersom det kommer att dyka upp ett fĂ€rdigt verktyg nĂ„gonstans i communityn. Det Ă€r meningslöst att samla pĂ„ sig denna erfarenhet internt â det Ă€r bara en förspilld kraft och tid i dev/null. SĂ„ vi Ă€r verkligen glada över att publicera allt och förstĂ„r att vi mĂ„ste publicera, utveckla, marknadsföra för att folk ska anvĂ€nda det och bidra med sin erfarenhet â dĂ„ vĂ€xer allt och lever. PĂ„ sĂ„ sĂ€tt gĂ„r verktyget inte till soptippen om tvĂ„ Ă„r. Vi har inga problem med att fortsĂ€tta investera energi i det, eftersom vi ser att nĂ„gon faktiskt anvĂ€nder vĂ„rt verktyg, och efter tvĂ„ Ă„r anvĂ€nder alla det.
Detta Ă€r en del av vĂ„r stora strategi med dapp/werf.. Jag minns inte nĂ€r vi började med det, kanske för tre Ă„r sedan. Ursprungligen var det helt pĂ„ shell. Det var en super proof of concept, vi löste nĂ„gra av vĂ„ra specifika uppgifter â det fungerade! Men med shell finns det problem, det Ă€r omöjligt att bygga ut det lĂ€ngre, att programmera pĂ„ shell Ă€r verkligen en utmaning. Vi hade en vana att skriva i Ruby, och vi har dĂ€rför omskrivit nĂ„got i Ruby, utvecklat, utvecklat, utvecklat, och vi nĂ„dde den punkt dĂ€r communityn, massan som inte sĂ€ger "vi vill eller vi vill inte", vĂ€nder nĂ€san bort frĂ„n Ruby, hur osannolikt det Ă€n kan vara. Vi insĂ„g att vi mĂ„ste skriva allt detta i Go för att helt enkelt uppfylla det första villkoret i checklistan: DevOps-verktyget mĂ„ste vara en statisk binĂ€rfil.PĂ„ Go eller inte pĂ„ Go spelar inte sĂ„ stor roll, men en statisk binĂ€rfil skriven i Go Ă€r bĂ€ttre.
Vi lade ner tid pÄ att skriva om dapp:en i Go och kallade den werf. Dapp:en stöds inte lÀngre, utvecklas inte, fungerar pÄ nÄgon gammal version, men det finns en absolut uppgraderingsvÀg uppÄt, och den kan följas.
Varför skapades dapp:en
â Kan du kort berĂ€tta varför dapp:en skapades, vilka problem den löser?
Dmitrij: Den första anledningen handlar om byggprocessen. Vi hade frÄn början stora problem med bygget, nÀr Docker inte kunde hantera multi-stage, och vi gjorde multi-stage pÄ egen hand. Sedan hade vi flera frÄgor kring att rensa images. Alla som gör CI/CD stöter förr eller senare pÄ problemet att det finns massor av byggda images och man mÄste pÄ nÄgot sÀtt rensa bort det som inte behövs och behÄlla det som behövs.
Den andra anledningen handlar om deployment. Ja, det finns Helm, men det löser bara en del av problemen. Ironiskt nog stĂ„r det skrivet att "Helm Ă€r paketchefen för Kubernetes". Just det, "paketchefen". Dessutom Ă€r det ord som "Paketchef" â vilka förvĂ€ntningar har man vanligtvis pĂ„ en paketchef? Vi sĂ€ger: "Paketchef, installera paket!" och förvĂ€ntar oss att den svarar: "Paket installerat".
Intressant Ă€r att vi sĂ€ger: "Helm, installera paket", men nĂ€r den svarar att den har installerat, visar det sig att den bara har pĂ„börjat installationen â den sa till Kubernetes: "Starta den hĂ€r grejen!", men om det har startats eller inte, om det fungerar eller inte, sĂ„ löser Helm den frĂ„gan överhuvudtaget inte.
Det visar sig att Helm Àr en enkel textförprocessor som laddar data in i Kubernetes.
Men inom ramen för varje deployment vill vi veta â har applikationen rullats ut i produktion eller inte? Att rullas ut i produktion betyder att applikationen har blivit distribuerad, en ny version har rullats ut, och den ska Ă„tminstone inte krascha utan svara korrekt. Helm löser inte den uppgiften. För att lösa den mĂ„ste man lĂ€gga ner mycket arbete, eftersom det Ă€r nödvĂ€ndigt att ge Kubernetes kommandot att rulla ut och övervaka vad som hĂ€nder â om det har rullats ut eller inte. Dessutom finns det mĂ„nga andra uppgifter relaterade till deployment, rensning och byggen.
Planer
Ănnu i Ă„r ska vi gĂ„ mot lokal utveckling. Vi vill nĂ„ ett tillstĂ„nd dĂ€r vi tidigare hade i Vagrant â man skrev 'vagrant up' och vĂ„ra virtuella maskiner rullades ut. Vi strĂ€var efter att ha ett projekt i Git dĂ€r vi skriver 'werf up', och det lyfter en lokal kopia av det projektet, distribuerad i en lokal mini-Kub, med alla kataloger som Ă€r bekvĂ€ma för utveckling. Beroende pĂ„ programmeringssprĂ„k utförs detta pĂ„ olika sĂ€tt, men vi vill göra det bekvĂ€mt att hantera lokal utveckling med monterade filer.
NĂ€sta steg för oss Ă€r att kraftigt investera i bekvĂ€mlighet för utvecklare. För att snabbt lokalt kunna rulla ut ett projekt, utveckla det, pusha till Git, och det ska sedan rullas ut pĂ„ stage eller till tester beroende pĂ„ pipelines, och sedan kan vi med samma verktyg gĂ„ till produktion. Den hĂ€r enheten, standardiseringen, reproducerbarheten av infrastrukturen frĂ„n den lokala miljön till produktionen Ă€r en mycket viktig punkt för oss. Men detta finns fortfarande inte i werf â vi planerar 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 omvÀgar - hittade pÄ egna lösningar med shell eller vad som helst. Sedan försökte vi pÄ nÄgot sÀtt att strömlinjeforma, generalisera och konsolidera dessa omvÀgar till binÀrer som vi bara delar med oss av.
Det finns ocksÄ en annan syn pÄ hela denna historia, med analogier.
Kubernetes Ă€r bilens ram med motorn. Det finns inga dörrar, fönster, radio eller doftgran â ingenting finns. Bara ramen och motorn. Och det finns Helm â det Ă€r ratten. Kul â ratten finns, men vi behöver ocksĂ„ styrpinne, styrvĂ€xel, vĂ€xellĂ„da och hjul, utan dem fungerar det inte.
I fallet med werf â det Ă€r ytterligare en komponent till Kubernetes. Just nu, i vĂ„r alpha-version, Ă€r till exempel Helm helt kompilerat inuti werf, eftersom vi har tröttnat pĂ„ att göra det sjĂ€lva. MĂ„nga skĂ€l till att göra det sĂ„, detaljer om varför vi kompilerade helm helt tillsammans med tiller inuti werf, kommer jag precis att berĂ€tta .
Nu Ă€r werf en mer integrerad komponent. Vi fĂ„r en fĂ€rdig styrning, styrpinne â jag Ă€r inte sĂ„ bra pĂ„ bilar, men detta Ă€r en stor enhet som löser ett brett spektrum av uppgifter. Vi behöver inte sjĂ€lva blĂ€ddra i katalogen, plocka en del till en annan, tĂ€nka pĂ„ hur vi ska föra dem samman. Vi fĂ„r en fĂ€rdig kombination som direkt löser mĂ„nga problem. Men invĂ€ndigt Ă€r allt konstruerat av samma öppen kĂ€llkods-komponenter, allt anvĂ€nder Docker för bygg, Helm för vissa funktioner, och det finns nĂ„gra andra bibliotek ocksĂ„. Det Ă€r ett integrerat verktyg för att snabbt och enkelt fĂ„ en fantastisk CI/CD direkt ur lĂ„dan.
Ăr det svĂ„rt att underhĂ„lla Kubernetes?
â Du berĂ€ttar om erfarenheten av att ha börjat anvĂ€nda Kubernetes, det Ă€r er ram, motor, och att man kan sĂ€tta mycket olika saker pĂ„ det: kaross, ratt, montera pedaler, sĂ€ten. FrĂ„gan uppstĂ„r â hur svĂ„rt Ă€r det för er att underhĂ„lla Kubernetes? Ni har en rik erfarenhet, hur mycket tid och resurser gĂ„r Ă„t till att underhĂ„lla Kubernetes? I förhĂ„llande till allt annat?
Dmitrij: Det Àr en mycket komplex frÄga och för att svara behöver vi förstÄ vad som menas med underhÄll, och vad vi vill ha frÄn Kubernetes. Kanske du kan förklara?
â SĂ„vitt jag vet och som jag ser det, vill mĂ„nga team nu prova Kubernetes. Alla hoppar pĂ„ det, installerar det pĂ„ nolltid. Jag har en kĂ€nsla av att mĂ€nniskor inte alltid förstĂ„r komplexiteten i detta system.
Dmitrij: SÄ Àr det.
â Hur svĂ„rt Ă€r det att bara ta och installera Kubernetes frĂ„n grunden sĂ„ att det Ă€r produktionsklart?
Dmitrij: Hur tror du det Ă€r att transplantera ett hjĂ€rta? Jag förstĂ„r att frĂ„gan Ă€r besvĂ€rlig. Att anvĂ€nda en skalpell och inte göra fel â det Ă€r inte sĂ„ svĂ„rt. Om nĂ„gon visar var man ska skĂ€ra och var man ska sy, Ă€r sjĂ€lva proceduren inte komplicerad. Det Ă€r svĂ„rt att garantera varje gĂ„ng att allt lyckas.
Attinstallera Kubernetes och fĂ„ det att fungera Ă€r enkelt: plopp! â installerat, det finns massor av installationsmetoder. Men vad hĂ€nder nĂ€r problem uppstĂ„r?
FrĂ„gor dyker alltid upp â vad har vi missat? Vad har vi inte gjort? Vilka parametrar i Linux-kĂ€rnan angav vi fel? Herregud, angav vi dem överhuvudtaget?! Vilka Kubernetes-komponenter installerade vi, och vilka Ă€r vi utan? Tusentals frĂ„gor dyker upp, och för att svara pĂ„ dem behövs 15-20 Ă„rs erfarenhet inom denna industri.
Jag har ett aktuellt exempel pĂ„ detta Ă€mne som kan belysa frĂ„gan "Ăr det svĂ„rt att underhĂ„lla Kubernetes?". För en tid sedan övervĂ€gde vi allvarligt om vi skulle försöka implementera Cilium som nĂ€tverk i Kubernetes.
Jag ska förklara vad Cilium Ă€r. I Kubernetes finns det mĂ„nga olika implementeringar av nĂ€tverksunderstöd, och en av dem Ă€r riktigt bra â det Ă€r Cilium. Vad Ă€r meningen med detta? I kĂ€rnan har det för en tid sedan blivit möjligt att skriva hooks för kĂ€rnan, som pĂ„ olika sĂ€tt infiltrerar nĂ€tverksunderstödet och olika andra subsystem, vilket gör att man kan kringgĂ„ stora delar i kĂ€rnan.
I Linux-kĂ€rnan finns det historiskt sett ip rout, nĂ€tfilter, bryggor och mĂ„nga olika gamla komponenter som Ă€r 15, 20 eller 30 Ă„r gamla. Generellt fungerar de, allt Ă€r bra, men nu har vi skapat massor av containrar, och det ser ut som ett torn av 15 tegelstenar staplade pĂ„ varandra, och du stĂ„r pĂ„ dem pĂ„ ett ben â en konstig kĂ€nsla. Det hĂ€r systemet har historiskt utvecklats med mĂ„nga nyanser, som ett bilaga i kroppen. I vissa situationer finns det prestandaproblem, till exempel.
Det finns ett fantastiskt BPF och möjlighet att skriva hooks för kĂ€rnan â killarna har skrivit sina egna hooks för kĂ€rnan. Paketet kommer in i Linux-kĂ€rnan, de tar bort det direkt vid ingĂ„ngen, bearbetar det som det behövs utan bryggor, utan TCP, utan IP-stack â kort sagt, kringgĂ„r allt som Ă€r skrivet i Linux-kĂ€rnan, och spottar ut det i containern.
Vad blev resultatet? Riktigt bra prestanda, fantastiska funktioner â helt enkelt fantastiskt! Men vi ser att det pĂ„ varje maskin finns ett program som kopplar upp sig mot Kubernetes API och, baserat pĂ„ de data som det fĂ„r frĂ„n detta API, genererar C-kod och kompilera binĂ€rfiler som laddas in i kĂ€rnan, sĂ„ att dessa hooks fungerar i kernel space.
Vad hĂ€nder om nĂ„got gĂ„r fel? Vi vet inte. För att förstĂ„ detta behöver man lĂ€sa hela den koden, förstĂ„ hela logiken, och det Ă€r otroligt komplicerat. Men Ă„ andra sidan finns det dessa bryggor, nĂ€tfilter, ip rout â jag har inte lĂ€st deras kĂ€llkod, och 40 ingenjörer som arbetar pĂ„ vĂ„rt företag har inte heller gjort det. Kanske förstĂ„ nĂ„gra bitar, men det Ă€r det.
Och vad spelar det för roll? Det visar sig att det finns IP-rout, Linux-kĂ€rnan, och det finns ett nytt verktyg â vad spelar det för roll, vi förstĂ„r varken det ena eller det andra. Men vi Ă€r rĂ€dda för att anvĂ€nda det nya â varför? För att om ett verktyg har funnits i 30 Ă„r, sĂ„ har alla buggar hittats, alla fallgropar har trampats pĂ„ och man behöver inte veta allt â det fungerar som en svart lĂ„da och fungerar alltid. Alla vet vilken diagnostikskruvmejsel som ska sĂ€ttas i vilket stĂ€lle, vilken tcpdump som ska köras vid vilken tidpunkt. Alla kĂ€nner vĂ€l till diagnostiska verktyg och förstĂ„r hur detta komponentset fungerar i Linux-kĂ€rnan â inte hur det Ă€r uppbyggt, utan hur man anvĂ€nder det.
Och det fantastiska Cilium Àr inte 30 Är gammalt, det Àr fortfarande outvecklat. Med Kubernetes Àr det samma problem, det Àr en kopia. BÄde Cilium och Kubernetes installeras utmÀrkt, men nÀr nÄgot gÄr snett i produktion, hur snabbt kan ni förstÄ vad som har gÄtt fel i en kritisk situation?
NĂ€r vi pratar om hur svĂ„rt det Ă€r att underhĂ„lla Kubernetes â nej, det Ă€r vĂ€ldigt enkelt, och ja, det Ă€r otroligt svĂ„rt. Kubernetes fungerar utmĂ€rkt i sig sjĂ€lv, men med miljarder nyanser.
Om tillvÀgagÄngssÀttet "Jag har tur"
â Finns det företag dĂ€r dessa nyanser nĂ€stan garanterat kommer att dyka upp? Antag att Yandex plötsligt överför alla sina tjĂ€nster till Kubernetes, dĂ€r kommer det att bli en enorm belastning.
Dmitrij: Nej, det handlar inte om belastning, utan om de mest grundlĂ€ggande sakerna. Till exempel, vi har Kubernetes, vi har deployat en applikation dĂ€r. Hur kan vi förstĂ„ att den fungerar? Det finns inget fĂ€rdigt verktyg för att förstĂ„ att applikationen inte kraschar, helt enkelt. Det finns inget fĂ€rdigt system som skickar larm â nej, vi mĂ„ste konfigurera dessa larm och varje graf. Och vi hĂ„ller pĂ„ att uppdatera Kubernetes.
Det finns Ubuntu 16.04. Man kan sÀga att det hÀr Àr en gammal version, men vi anvÀnder den fortfarande eftersom den Àr LTS. Den har systemd, och en detalj Àr att den inte stÀdar C-grupper. Kubernetes startar pods, skapar C-grupper, och sen tar den bort pods, och pÄ nÄgot sÀtt sÄ blir det kvar nÄgot som jag inte minns detaljerna om, förlÄt, som Àr systemd-slices. Detta leder till att vilken maskin som helst börjar lagga kraftigt över tid. Det handlar inte ens om highload. Om lÀmnas kontinuerliga pods körande, till exempel om det finns en Cron Job som stÀndigt genererar pods, sÄ börjar en maskin med Ubuntu 16.04 lagga efter en vecka. Det kommer alltid att vara en hög load average eftersom det har skapats en massa C-grupper. Detta Àr ett problem som alla som bara installerar Ubuntu 16 och Kubernetes stöter pÄ.
LÄt oss sÀga att han pÄ nÄgot sÀtt uppdaterar systemd eller nÄgot annat, men i Linux-kÀrnan fram till 4.16 Àr det Ànnu roligare - nÀr C-grupper tas bort sÄ droppas de i kÀrnan och tas faktiskt aldrig bort. DÀrför Àr det efter en mÄnads arbete pÄ den hÀr maskinen omöjligt att se minnesstatistik för pods. Vi tar fram en fil, kör den i programmet, och en fil tar 15 sekunder att bearbeta eftersom kÀrnan tar vÀldigt lÄng tid pÄ sig att berÀkna inuti sig sjÀlv med en miljon C-grupper som verkar vara borttagna, men de droppar fortfarande.
Det finns fortfarande mÄnga sÄdana detaljer hÀr och dÀr. Det Àr inte en frÄga som jÀtteföretag ibland kan stöta pÄ vid vÀldigt höga belastningar - nej, det Àr en frÄga om dagliga saker. MÀnniskor kan leva med det i mÄnader - de installerade Kubernetes, distribuerade applikationen - det verkar fungera. MÄnga mÄr bra av det. De kommer inte ens att fÄ veta att applikationen nÄgon gÄng kommer att krascha, alerten kommer inte att komma, men för dem Àr det normalt. Tidigare levde de pÄ virtuella maskiner utan övervakning, nu har de flyttat till Kubernetes ocksÄ utan övervakning - vad spelar det för roll?
FrÄgan Àr att nÀr vi gÄr pÄ is, vet vi aldrig tjockleken om vi inte har mÀtt den i förvÀg. MÄnga gÄr omkring och bryr sig inte, för de har gÄtt tidigare.
FrÄn min synvinkel Àr detaljen och svÄrigheten med att underhÄlla vilket system som helst att garantera att tjockleken pÄ isen Àr tillrÀcklig för att hantera vÄra uppgifter. Det handlar om detta.
In IT, it seems to me that there are too many approaches based on "I'll get lucky." Many install software and use programming libraries hoping for good luck. Overall, many do get lucky. Perhaps thatâs why this works.
â In my pessimistic assessment, it looks like this: when the risks are high, and the application needs to work, support from Flant, possibly from Red Hat, is needed, or a dedicated internal team focused solely on Kubernetes is required to handle it.
Dmitrij: Objectively, this is true. For a small team, diving into Kubernetes independently involves a certain level of risk.
Do we need containers?
â Can you tell me how widespread Kubernetes is in Russia?
Dmitrij: I donât have that data, and Iâm not sure if anyone really does. We talk about âKubernetes, Kubernetes,â but thereâs another perspective on this issue. I also donât know how widespread containers are, but I know a figure from reports online stating that 70% of containers are orchestrated by Kubernetes. This information comes from a credible source based on a large sample worldwide.
Next question â do we need containers? I have a personal feeling and in general, the position of Flant is that Kubernetes is the de facto standard.
Nothing but Kubernetes will be left.
This is an absolute game changer in the field of infrastructure management. Absolutely â no more Ansible, Chef, virtual machines, or Terraform. I wonât even mention the old methods. Kubernetes is an absolute changer, and it will only be like this from now on.
Itâs clear that some people will need a couple of years, while others may need decades to realize this. I have no doubt that there will be nothing but Kubernetes and this new perspective: we no longer hurt the operating system, but use infrastructure as code, except not with code, but with YAML â a declaratively described infrastructure. I feel that this will always be the case.
â So the companies that have not yet transitioned to Kubernetes will either definitely transition or fade into obscurity. Did I understand you correctly?
Dmitrij: Det Àr inte helt korrekt. Om vi till exempel har uppgiften att starta en DNS-server, kan den köras pÄ FreeBSD 4.10 och fungera utmÀrkt i 20 Är. Den bara fungerar, och that's it. Kanske behöver vi uppdatera nÄgot en gÄng pÄ 20 Är. Om vi pratar om programvara som vi har startat och som faktiskt fungerar i mÄnga Är utan uppdateringar eller förÀndringar, dÄ behöver vi definitivt inte Kubernetes. Det Àr onödigt dÀr.
Allt som rör CI/CD â dĂ€r Continuous Delivery behövs, dĂ€r versioner mĂ„ste uppdateras, dĂ€r aktiva förĂ€ndringar krĂ€vs, dĂ€r redundans mĂ„ste byggas â Ă€r endast Kubernetes.
Om mikrotjÀnster
â HĂ€r uppstĂ„r en viss dissonans för mig. För att arbeta med Kubernetes behöver man extern eller intern support â det Ă€r den första punkten. Den andra Ă€r â nĂ€r vi precis börjar med utvecklingen, vi Ă€r en liten startup, vi har Ă€nnu inget, utveckling för Kubernetes eller ens för mikrotjĂ€nstarkitektur kan vara komplicerat och Ă€r inte alltid ekonomiskt motiverad. Jag Ă€r nyfiken pĂ„ din Ă„sikt â behöver startups direkt börja koda för Kubernetes, eller kan de Ă€ndĂ„ skriva en monolit och sedan gĂ„ över till Kubernetes?
Dmitrij: Bra frÄga. Jag har en presentation om mikrotjÀnster. Jag har mÄnga gÄnger stött pÄ att folk försöker slÄ i spikar med ett mikroskop. SjÀlva tillvÀgagÄngssÀttet Àr korrekt, vi designar Àven vÄr interna programvara pÄ detta sÀtt. Men nÀr man gör det Àr det viktigt att tydligt förstÄ vad man gör. Det jag hatar mest med mikrotjÀnster Àr ordet "mikro". Det har historiskt uppstÄtt, och av nÄgon anledning tror folk att mikro betyder vÀldigt liten, mindre Àn en millimeter, som en mikrometer. SÄ Àr det inte.
Till exempel finns det en monolit som skrivs av 300 personer, och alla som deltager i utvecklingen förstĂ„r att det finns problem, och den mĂ„ste brytas ner i mikro-bitar â cirka 10 stycken, varav varje skrivs av 30 personer i minimi-alternativet. Det Ă€r viktigt, nödvĂ€ndigt och fantastiskt. Men nĂ€r startups kommer till oss dĂ€r 3 riktigt duktiga och talangfulla killar har skrivit 60 mikrotjĂ€nster pĂ„ knĂ€, dĂ„ börjar jag alltid leta efter Corvalol.
Jag tror att detta har diskuterats tusentals gĂ„nger â vi har fĂ„tt en distribuerad monolit i nĂ„gon form. Detta Ă€r ekonomiskt ohĂ„llbart, mycket komplicerat överlag. Jag har sett detta sĂ„ mĂ„nga gĂ„nger att det faktiskt gör ont, och dĂ€rför fortsĂ€tter jag att prata om det.
Till den inledande frÄgan, att det finns en konflikt mellan att Kubernetes Àr skrÀmmande att anvÀnda, eftersom det Àr oklart vad som kan gÄ sönder eller inte fungera, och Ä andra sidan, att det Àr uppenbart att allt gÄr dit och ingenting annat Àn Kubernetes kommer att ÄterstÄ. Svaret Àr - att vÀga nyttan som kommer, volymen av uppgifter som ni kan lösa. Detta Àr pÄ en sida av vÄgskÄlen. à andra sidan finns riskerna som Àr kopplade till stillestÄnd eller lÄg svarstid, nivÄ av tillgÀnglighet - med sÀnkta prestanda.
SÄ hÀr ligger det till - antingen mÄste vi agera snabbt, och Kubernetes möjliggör att göra mÄnga saker mycket snabbare och bÀttre, eller anvÀnda pÄlitliga, beprövade lösningar, men agera mycket lÄngsammare. Detta val mÄste varje företag göra. Man kan se detta som en stig i djungeln - första gÄngen man gÄr, kan man möta en orm, en tiger eller en galen grÀvling, och efter att ha gÄtt tio gÄnger - skapa en stig, rensa bort grenar, och det blir lÀttare att gÄ. För varje gÄng blir stigen bredare. Sen blir det en asfalterad vÀg, och senare en vacker boulevard.
Kubernetes stÄr inte still. à terigen en frÄga: pÄ ena sidan Àr Kubernetes 4-5 binÀrer, pÄ andra sidan Àr det hela ekosystemet. Det Àr operativsystemet som vi har pÄ vÄra maskiner. Vad Àr det? Ubuntu eller Curios? Det Àr Linux-kÀrnan, massa ytterligare komponenter. Alla dessa saker hÀr har kastat ut en giftig orm frÄn stigen, dÀr har man satt upp staket. Kubernetes utvecklas mycket snabbt och dynamiskt, och volymen av risker, volymen av det outforskade minskar varje mÄnad, och dÀrmed ombalanseras dessa vÄgar.
NÀr man svarar pÄ frÄgan om vad ett startup ska göra, skulle jag sÀga - kom till "Flant", betala 150 000 rubel och fÄ en nyckelfÀrdig DevOps easy service. Om du Àr ett litet startup med nÄgra utvecklare - detta fungerar. IstÀllet för att anstÀlla din egen DevOps, som mÄste lÀra sig att lösa dina problem och fÄ lön under tiden, fÄr du en nyckelfÀrdig lösning för alla frÄgor. Ja, det finns nÄgra nackdelar. Som outsourcer kan vi inte vara sÄ involverade och snabbt reagera pÄ Àndringar. Men vi har massor av expertis och fÀrdiga metoder. Vi garanterar att vi i alla situationer kommer att snabbt lösa problemen och Äteruppliva vilken Kubernetes som helst.
Jag rekommenderar kategoriskt outsourcing för startups och etablerade företag tills ni kan avsÀtta ett team pÄ 10 personer för drift, för annars Àr det meningslöst. Det Àr kategoriskt vettigt att outsourca.
Om Amazon och Google
â Kan man övervĂ€ga att outsourca hosting-lösningar frĂ„n Amazon eller Google?
Dmitrij: Ja, absolut, det löser ett antal frÄgor. Men Äterigen, det finns nyanser. Man mÄste ÀndÄ förstÄ hur det ska anvÀndas. Till exempel finns det tusentals smÄ detaljer i arbetet med Amazon AWS: Load Balancer mÄste vÀrmas upp eller man mÄste i förvÀg skicka en begÀran om att "grabbar, vi kommer att fÄ trafik, vÀrm upp vÄr Load Balancer!" Dessa nyanser mÄste man kÀnna till.
NĂ€r du vĂ€nder dig till personer som specialiserar sig pĂ„ detta, fĂ„r du nĂ€stan alla standardĂ€renden lösta. Just nu har vi 40 ingenjörer, och vid Ă„rets slut kommer det troligen att vara 60 - vi har definitivt stött pĂ„ alla dessa frĂ„gor. Ăven om vi pĂ„ nĂ„got projekt stöter pĂ„ samma problem igen, frĂ„gar vi snabbt varandra och vet hur man löser det.
Sannolikt Àr svaret sÄ hÀr - sjÀlvklart gör hosted-lösningar en del enklare. FrÄgan Àr om ni Àr villiga att lita pÄ dessa vÀrdtjÀnster och om de verkligen löser era problem. Amazon och Google har gjort sig kÀnda pÄ ett bra sÀtt. För alla vÄra fall - definitivt. Vi har inte nÄgra positiva erfarenheter dÀrutöver. Alla andra moln som vi försökt arbeta med skapar vÀldigt mÄnga problem - bÄde Ager och allt som finns i Ryssland, samt olika implementationer av OpenStack: Headster, Overage - allt ni vill. De skapar alla problem som man helst inte vill hantera.
DÀrför, svaret Àr ja, men i praktiken finns det inte sÄ mÄnga mogna hosted-lösningar.
Vem behöver Kubernetes?
â Men vem behöver egentligen Kubernetes? Vem bör gĂ„ över till Kubernetes, vem Ă€r den typiska kunden hos "Flant" som kommer just för Kubernetes?
Dmitrij: Det Àr en intressant frÄga, för just nu kommer mÄnga till oss i kölvattnet av Kubernetes: "Grabbar, vi vet att ni gör Kubernetes, gör det Ät oss!". Vi svarar: "Mina damer och herrar, vi gör inte Kubernetes, vi gör produktion och allt som hör till det." För att göra produktion utan att ha hela CI/CD processen och allt det dÀr Àr just nu helt omöjligt. Alla har övergivit uppdelningen mellan utveckling och drift.
VĂ„ra kunder förvĂ€ntar sig olika saker, men alla hoppas pĂ„ nĂ„gon slags under som kommer att lösa deras problem, att nu â hux flux! â Kubernetes ska ta hand om det. MĂ€nniskor tror pĂ„ under. De förstĂ„r rationellt att det inte kommer att ske nĂ„got mirakel, men de hoppas innerligt â kanske kommer detta Kubernetes nu att lösa allt för oss, det pratas sĂ„ mycket om det! TĂ€nk om det nu â knĂ€pp! â Ă€r silverkulan som ger oss 100% uptime, och alla utvecklare kan slĂ€ppa vad som helst 50 gĂ„nger i produktion utan att det kraschar. Det Ă€r i stort sett ett mirakel!
NÀr sÄdana personer kommer till oss sÀger vi: "FörlÄt, men mirakel existerar inte". För att vara frisk behöver man Àta bra och trÀna. För att ha en pÄlitlig produktion mÄste man bygga den pÄ ett pÄlitligt sÀtt. För att ha en anvÀndarvÀnlig CI/CD mÄste man göra den sÄdan. Det Àr mycket arbete som behöver göras.
För att svara pĂ„ frĂ„gan om vem som behöver Kubernetes â ingen behöver Kubernetes.
Vissa mÀnniskor har en felaktig uppfattning om att de behöver Kubernetes. MÀnniskor vill, de har en djupdragen önskan att slippa tÀnka pÄ, engagera sig i och vara bekymrade över alla infrastrukturproblem och problem med att driftsÀtta sina applikationer. De vill att applikationerna bara ska fungera och enkelt kunna deployeras. För dem Àr Kubernetes ett hopp om att de ska sluta höra historier som "vi har legat efter" eller "vi kan inte deploya" eller nÄgot annat.
Vanligtvis kommer en teknisk chef till oss. Man stĂ€ller tvĂ„ frĂ„gor till honom: Ă„ ena sidan, ge oss funktioner, och Ă„ andra sidan â stabilitet. Vi föreslĂ„r att ta detta pĂ„ oss och göra det. Silverkulan, eller snarare den silverbelagda, Ă€r att du slutar tĂ€nka pĂ„ dessa problem och spara tid. Du kommer att ha specialiserade personer som hanterar dessa frĂ„gor.
Formuleringen att vi eller nÄgon annan behöver Kubernetes Àr felaktig.
Kubernetes Àr mycket viktigt för administratörer, eftersom det Àr en vÀldigt intressant leksak som man kan experimentera med. LÄt oss vara Àrliga - alla Àlskar leksaker. Vi Àr alla barn pÄ nÄgot sÀtt, och nÀr vi ser nÄgot nytt vill vi leka med det. Vissa har kanske tröttnat pÄ detta, till exempel inom administration, eftersom de har lekt tillrÀckligt och nu blivit uttrÄkade pÄ en nivÄ dÀr de helt enkelt inte vill lÀngre. Men ingen har helt tappat detta. Till exempel, Àven om jag har tröttnat pÄ leksaker inom systemadministration och DevOps, sÄ Àlskar jag fortfarande leksaker och köper fortfarande nya. Alla mÀnniskor vill pÄ ett sÀtt eller annat fortfarande ha sina leksaker.
Man ska inte leka med produktion. Det som jag kategoriskt inte rekommenderar att göra och som jag ser nu i stor utstrÀckning Àr: "à h, en ny leksak!" - springer för att köpa den, köper den och: "LÄt oss ta med den till skolan och visa alla vÄra vÀnner." Gör inte sÄ. Jag ber om ursÀkt, mina barn vÀxer upp, jag ser stÀndigt saker hos dem, mÀrker det i mig sjÀlv och generaliserar det sedan till andra.
Det slutliga svaret: du behöver inte Kubernetes. Du mÄste lösa dina problem.
Det gÄr att uppnÄ att:
- produktion inte faller;
- Àven om den försöker falla, sÄ vet vi om det i förvÀg och kan göra nÄgot Ät det;
- vi kan Àndra den i den takt som vi behöver för verksamheten, och göra det smidigt, vilket inte orsakar nÄgra problem för oss.
De verkliga behoven Àr tvÄ: tillförlitlighet och dynamik/flexibilitet i implementeringen. Alla som just nu arbetar med IT-projekt, oavsett vilken bransch - mjukvara för att förenkla vÀrlden, och som förstÄr detta, behöver lösa dessa behov. Med rÀtt tillvÀgagÄngssÀtt, rÀtt förstÄelse och tillrÀcklig erfarenhet gör Kubernetes det möjligt att lösa dem.
Om serverless
â Om man ser lite lĂ€ngre fram i framtiden, försöker lösa problemet med att slippa huvudvĂ€rk med infrastruktur, hastighet pĂ„ implementering och hastighet pĂ„ förĂ€ndring av applikationer, dyker nya lösningar upp, till exempel serverless. KĂ€nner du nĂ„gon potential i denna riktning och, lĂ„t oss sĂ€ga, en risk för Kubernetes och liknande lösningar?
Dmitrij: HĂ€r mĂ„ste jag Ă„terigen pĂ„peka att jag inte Ă€r en sierska som ser in i framtiden och sĂ€ger â sĂ„ hĂ€r kommer det att bli! Ăven om jag precis gjorde samma sak. Jag ser pĂ„ marken och ser massor av problem, till exempel hur transistorer fungerar i en dator. LĂ„t bli, eller hur? Vi stĂ„r inför olika problem med CPU:n.
Att göra serverless tillrĂ€ckligt pĂ„litligt, billigt, effektivt och bekvĂ€mt, samtidigt som man löser alla ekosystemproblem. HĂ€r Ă€r jag överens med Elon Musk om att vi behöver en andra planet för att sĂ€kerstĂ€lla mĂ€nsklighetens redundans. Ăven om jag inte vet vad han sĂ€ger, förstĂ„r jag att jag inte Ă€r redo att Ă„ka till Mars och att det inte kommer att hĂ€nda imorgon.
Med serverless Ă€r det tydligt att det Ă€r en ideologiskt riktig vĂ€g, precis som redundantitet för mĂ€nskligheten â att ha tvĂ„ planeter Ă€r bĂ€ttre Ă€n en. Men hur ska vi göra detta nu? Att skicka en expedition Ă€r inga problem om man fokuserar sina anstrĂ€ngningar. Att skicka flera expeditioner och bosĂ€tta tusentals mĂ€nniskor dĂ€r gör jag ocksĂ„ realistiskt. Men att realisera total redundans sĂ„ att hĂ€lften av mĂ€nskligheten bor dĂ€r verkar för mig just nu omöjligt, nĂ„got som vi inte ens kan övervĂ€ga.
Med serverless Ă€r det en och samma sak: det Ă€r en fantastisk idĂ©, men den Ă€r lĂ„ngt ifrĂ„n de problem som finns 2019. NĂ€rmare 2030 â lĂ„t oss överleva fram till dess. Jag tvivlar inte pĂ„ att vi kommer att överleva, vi kommer definitivt att överleva (upprepa det innan du somnar), men just nu mĂ„ste vi lösa andra problem. Det Ă€r som att tro pĂ„ en magisk ponny RegnbĂ„ge. Ja, flera procent av fallen löses, och de löses alldeles utmĂ€rkt, men subjektivt sett Ă€r serverless en regnbĂ„ge... För mig Ă€r detta Ă€mne alltför avlĂ€gset och för oklart. Jag Ă€r inte redo att prata om det. 2019 kunde inget program skrivas med serverless.
Hur kommer Kubernetes att utvecklas
â Medan vi gĂ„r mot denna potentiellt fantastiska framtid, vad tror du om hur Kubernetes och ekosystemet kring det kommer att utvecklas?
Dmitrij: Jag har tĂ€nkt mycket pĂ„ detta och jag har ett klart svar. För det första Ă€r statefullâatt göra stateless Ă€r faktiskt lĂ€ttare. Kubernetes investerade ursprungligen mer i detta, det var dĂ€r allt började. Stateless fungerar nĂ€stan perfekt i Kubernetes, det finns helt enkelt inget att klaga pĂ„. Det finns fortfarande mĂ„nga problem, snarare nyanser, med statefull. För oss fungerar allt utmĂ€rkt dĂ€r, men det Ă€r vi. För att detta ska fungera för alla, behövs det minst ett par Ă„r till. Detta Ă€r ingen berĂ€knad siffra, utan min kĂ€nsla.
Kort sagt, statefull mĂ„steâoch kommer attâutvecklas mycket, eftersom alla vĂ„ra applikationer lagrar status, det finns inga stateless-applikationer. Det Ă€r en illusion, man behöver alltid nĂ„gon typ av databas och nĂ„got annat. Statefull Ă€r förkortning av allt som Ă€r möjligt, fixering av alla buggar, förbĂ€ttring av alla problem som vi stĂ„r inför just nuâlĂ„t oss kalla det adoption.
NivĂ„n av det okĂ€nda, nivĂ„n av olösta problem, nivĂ„n av sannolikhet att stöta pĂ„ nĂ„got, kommer att minska avsevĂ€rt. Detta Ă€r en viktig aspekt. Och operatörerâallt som har att göra med kodifiering av administrationslogik, styrlogik, för att fĂ„ en enkel tjĂ€nst: MySQL enkel tjĂ€nst, RabbitMQ enkel tjĂ€nst, Memcache enkel tjĂ€nstâalla dessa komponenter vi behöver för att fĂ„ nĂ„got att fungera frĂ„n start utan problem. Detta löser just de svĂ„righeter vi har, att vi vill ha en databas men inte vill administrera den, eller vill ha Kubernetes men inte vill administrera det.
Denna utveckling av operatörer i nÄgot av sina uttryck kommer att vara viktig under de kommande Ären.
Jag tror att enkelheten i drift starkt kommer att ökaâasken kommer att bli allt mer och mer svart, allt mer och mer pĂ„litlig, med allt mer och mer enkla kontroller.
Jag lyssnade nĂ„gon gĂ„ng pĂ„ en gammal intervju med Isaac Asimov frĂ„n 80-talet pĂ„ YouTube i programmet Saturday Night Liveâen liknande show som Urgant, men intressantare. De frĂ„gade honom om framtiden för datorer. Han sa att framtiden ligger i enkelheten, precis som med en radio. Radion var frĂ„n början en komplicerad grej. För att fĂ„nga en signal behövde man vrida pĂ„ reglagen i 15 minuter, snurra pĂ„ kontrollerna och överhuvudtaget veta hur allt var konstruerat, förstĂ„ fysiken bakom radiovĂ„gor. Till slut Ă„terstod bara en kontroll pĂ„ radion.
Vad Ă€r radion nu, 2019? I bilen hittar radion alla stationer och deras namn. Fysiken i processen har inte förĂ€ndrats pĂ„ 100 Ă„r, men anvĂ€ndarvĂ€nligheten har förbĂ€ttrats. Nu, Ă€ven redan 1980 nĂ€r det gjordes en intervju med Asimov, anvĂ€nde alla radio utan att tĂ€nka pĂ„ hur den fungerade. Den har alltid fungerat â det Ă€r en givenhet.
Asimov sa dÄ att det skulle vara likadant med datorerna - anvÀndarvÀnligheten kommer att öka. Om du 1980 behövde en specialutbildning för att trycka pÄ knapparna pÄ en dator, sÄ kommer det inte att vara sÄ i framtiden.
Jag har en kĂ€nsla av att med Kubernetes och infrastrukturen kommer Ă€ven anvĂ€ndarvĂ€nligheten att öka kraftigt. Det Ă€r uppenbart â det ligger pĂ„ ytan.
Vad ska man göra med ingenjörerna?
â Men vad kommer att hĂ€nda med ingenjörerna och systemadministratörerna som underhĂ„ller Kubernetes?
Dmitrij: Vad hĂ€nde med bokföraren efter att 1C kom? UngefĂ€r samma sak. Tidigare rĂ€knade man pĂ„ papper â nu görs det i ett program. Produktiviteten har ökat mĂ„nga gĂ„nger, och arbetet försvann inte dĂ€rmed. Om det förr behövdes 10 ingenjörer för att skruva i en glödlampa, sĂ„ rĂ€cker det nu med en.
MĂ€ngden mjukvara och mĂ€ngden uppgifter verkar nu vĂ€xa snabbare Ă€n nya DevOps dyker upp och effektiviteten ökar. Just nu rĂ„der det en specifik brist pĂ„ marknaden och den kommer att pĂ„gĂ„ lĂ€nge. Senare kommer allt att stabiliseras till en normal nivĂ„ dĂ€r arbetseffektiviteten ökar, det kommer att bli mer serverless, och Kubernetes kommer att kopplas ihop med neurala nĂ€tverk som kommer att optimera resurserna precis som det behövs, och allt görs automatiskt â mĂ€nniskan kan dra sig tillbaka och inte störa.
Men beslut mÄste fortfarande fattas av nÄgon. Det Àr uppenbart att denna persons kompetens och specialisering Àr högre. Nu i bokföringsavdelningen behövs inte 10 anstÀllda som hÄller koll pÄ böckerna för att deras hÀnder inte ska bli trötta. Det behövs helt enkelt inte. MÄnga dokument skannas automatiskt och kÀnns igen av systemet för elektronisk dokumenthantering. Det rÀcker med en smart huvudbokförare, med mycket bÀttre fÀrdigheter och en god förstÄelse.
Ăverlag ser utvecklingen ut pĂ„ samma sĂ€tt i alla branscher. Med bilar Ă€r det likadant: tidigare fanns det alltid en bilmekaniker och tre förare kopplade till bilen. Nu Ă€r bilkörning en sĂ„ enkel process att vi alla deltar i den varje dag. Ingen tĂ€nker pĂ„ att bilen Ă€r nĂ„got komplicerat.
DevOps eller systemteknik kommer inte att försvinna â högre nivĂ„er och effektivitet kommer att öka.
â Jag har ocksĂ„ hört en intressant idĂ©, att faktiskt Ă€ven jobbet kommer att öka.
Dmitrij: SjÀlvklart, hundra procent! För mÀngden mjukvara vi skriver vÀxer stÀndigt. Antalet frÄgor vi löser med mjukvara vÀxer stÀndigt. ArbetsmÀngden ökar. Just nu Àr DevOps-marknaden extremt överhettad. Detta mÀrks pÄ löneförvÀntningarna. Egentligen, utan att gÄ in pÄ detaljer, borde det finnas juniorer som vill ha X, mellanliggande som vill ha 1,5X och seniorer som vill ha 2X. Men nu, om man ser pÄ den moskovitiska DevOps-löneövergripande, önskar en junior mellan X och 3X och en senior mellan X och 3X.
Ingen vet vad det kostar. Lönens nivĂ„ mĂ€ts av din sjĂ€lvförtroende â rena galenskapen, Ă€rligt talat, en extremt överhettad marknad.
SjĂ€lvklart kommer denna situation att förĂ€ndras mycket snart â det mĂ„ste bli en viss mĂ€ttnad. Med mjukvaruutveckling Ă€r det inte sĂ„ â trots att utvecklare alltid behövs, och alla behöver bra utvecklare, vet marknaden vad folk Ă€r vĂ€rda â branschen har stabiliserats. SĂ„ Ă€r det inte med DevOps nu.
â Av det jag har hört drar jag slutsatsen att den nuvarande systemadministratören inte behöver oroa sig alltför mycket, men det Ă€r dags att förbĂ€ttra sina fĂ€rdigheter och förbereda sig för att det i morgon kommer att finnas mer arbete, men det kommer att vara mer kvalificerat.
Dmitrij: Helt korrekt. Ăverlag lever vi Ă„r 2019 och livets regel Ă€r: lifelong learning â vi lĂ€r oss hela livet. Jag tror att alla vet och kĂ€nner detta nu, men det rĂ€cker inte att bara veta â man mĂ„ste agera. Varje dag mĂ„ste vi förĂ€ndras. Om vi inte gör det kommer vi förr eller senare att hamna vid vĂ€grenen av yrket.
Var beredd pĂ„ snabba vĂ€ndningar pĂ„ 180 grader. Jag utesluter inte situationer dĂ€r nĂ„got radikalt förĂ€ndras, att man hittar pĂ„ nĂ„got nytt â sĂ„nt hĂ€nder. Hoppsan! â och nu agerar vi annorlunda. Det Ă€r viktigt att vara beredd pĂ„ detta och inte stressa. Det kan hĂ€nda att allt jag gör imorgon visar sig vara onödigt â inget problem, jag har lĂ€rt mig hela mitt liv och Ă€r redo att lĂ€ra mig nĂ„got annat. Det Ă€r ingen big deal. Det Ă€r ingen idĂ© att vara rĂ€dd för anstĂ€llningstrygghet, men man mĂ„ste vara beredd att stĂ€ndigt lĂ€ra sig nĂ„got nytt.
Ănskningar och en minut reklam
â Har du nĂ„got önskemĂ„l?
Dmitrij: Ja, jag har nÄgra önskemÄl.
Det första och mer kommersiella â prenumerera pÄ . KĂ€ra lĂ€sare, gĂ„ in pĂ„ YouTube och prenumerera pĂ„ vĂ„r kanal. Om ungefĂ€r en mĂ„nad kommer vi att inleda en aktiv expansion pĂ„ videoservice och vi kommer att ha massor av utbildningsinnehĂ„ll om Kubernetes, allt frĂ„n praktiska saker, inklusive labbar, till djupgĂ„ende teoretiska principer och hur man tillĂ€mpar Kubernetes utifrĂ„n principer och mönster.
Det andra kommersiella önskemĂ„let â gĂ„ in pÄ och sĂ€tt stjĂ€rnor, för vi lever pĂ„ dem. Om ni inte ger oss stjĂ€rnor kommer vi att ha svĂ„rt att klara oss. Det Ă€r som manna i ett datorspel. Vi gör nĂ„got, gör nĂ„got, försöker, nĂ„gon sĂ€ger att det Ă€r hemska cyklar, nĂ„gon annat sĂ€ger att allt Ă€r helt fel, och vi fortsĂ€tter och agerar helt Ă€rligt. Vi ser ett problem, löser det och delar erfarenhet. SĂ„ sĂ€tt en stjĂ€rna till oss, för er kostar det inget, men vi blir rikare pĂ„ det, för vi lever pĂ„ dessa stjĂ€rnor.
Det tredje, viktiga, och inte lĂ€ngre kommersiella önskemĂ„let â sluta tro pĂ„ sagor. Ni Ă€r professionella. DevOps Ă€r ett vĂ€ldigt seriöst och ansvarsfullt yrke. Sluta spela pĂ„ arbetsplatsen. LĂ„t det slĂ„ gnistor och ni kommer att förstĂ„ detta. TĂ€nk er att ni kommer till ett sjukhus, och dĂ€r experimenterar lĂ€karen med er. Jag förstĂ„r att det kan vara sĂ„rande för vissa, men det handlar förmodligen inte om er, utan om nĂ„gon annan. SĂ€g till andra att de ocksĂ„ ska sluta. Det förstör verkligen livet för oss alla â mĂ„nga börjar se pĂ„ drift, administratörer och DevOps:are som killar som har förstört nĂ„got igen. Det dĂ€r «förstörandet» beror oftast pĂ„ att vi gick in för att leka, istĂ€llet för att se klart och förstĂ„ att det hĂ€r Ă€r sĂ„ hĂ€r, och det dĂ€r sĂ„ dĂ€r.
Det betyder inte att vi inte ska experimentera. Vi mÄste experimentera, vi gör det sjÀlva. Om vi Àr Àrliga, sÄ leker vi ibland ocksÄ - det Àr förstÄs mycket dÄligt, men inget mÀnskligt Àr oss frÀmmande. LÄt oss utropa 2019 till Äret för seriösa genomtÀnkta experiment, istÀllet för lekar pÄ produktion. Kanske sÄ.
â Stort tack!
Dmitrij: Tack till dig, Vitaliy, bÄde för din tid och för intervjun. KÀra lÀsare, stort tack till er om ni har nÄtt hit. Jag hoppas att vi har erbjudit Ätminstone nÄgra tankar.
I intervjun berörde Dmitrij frÄgan om werf. Just nu Àr det en universell schweizisk armékniv som löser nÀstan alla problem. Men sÄ har det inte alltid varit. PÄ  festivalen kommer Dmitrij Stolyarov att berÀtta mer om detta verktyg. I hans förelÀsning kommer allt att tas upp: problem och dolda nyanser i Kubernetes, lösningsalternativ för dessa svÄrigheter samt den aktuella implementationen av werf i detalj. Anslut er den 27:e och 28:e maj, vi kommer att skapa perfekta verktyg.
KĂ€lla: habr.com
