Vi undersöker kärnan i metodologin och vem den kan vara till nytta för.
Vi kommer även att diskutera DevOps-specialister: deras uppgifter, löner och färdigheter.
Foto / Flickr / CC BY-SA
Vad är DevOps
DevOps är en mjukvaruutvecklingsmetodologi vars mål är att förbättra samarbetet mellan programmerare och systemadministratörer inom företaget. Om IT-specialister från olika avdelningar inte förstår varandras uppgifter, drar det ut på tiden för att släppa nya applikationer och uppdateringar.
DevOps skapar en "sömlös" utvecklingscykel, vilket hjälper till att påskynda lanseringen av mjukvaruprodukten. Snabbare leveranser uppnås genom att införa automatiseringssystem. Dessutom börjar programmerare delta i serverinställningar och felsökning, till exempel kan de skriva automatiserade tester.
På så sätt förbättras samarbetet mellan avdelningarna. Anställda börjar förstå bättre vilka steg en mjukvaruprodukt går igenom innan den hamnar i användarens händer.
När en utvecklare förstår vad en administratör står inför vid serverinställningen, kommer han att försöka mildra eventuella "vassa kanter" i koden. Detta minskar antalet buggar vid distributionen av applikationen - statistiken visar att det ungefär fem gånger.
Vem behöver och vem behöver inte metodologin
Många , att DevOps kommer att vara till nytta för alla organisationer som utvecklar mjukvara. Detta gäller även om företaget bara är en konsument av IT-tjänster och inte utvecklar egna applikationer. I det här fallet hjälper införandet av DevOps-kultur att fokusera på innovation.
Undantag startups, men även här beror allt på projektets omfattning. Om ditt mål är att lansera en minimal livskraftig produkt (minimum viable product, MVP) för att testa en ny idé, kan du klara dig utan DevOps. Till exempel ladding av Groupon i början av arbetet med tjänsten hanterade själv alla erbjudanden på webbplatsen och samlade in beställningar. Han använde inga automatiseringsverktyg.
Att införa metodologin och automatiseringsverktyg är meningsfullt först när applikationen börjar få popularitet. Detta hjälper till att förbättra affärsprocesserna och påskynda uppdateringsutgåvor.
Hur man inför DevOps
Här är några rekommendationer för att övergå till den nya metodologin.
Identifiera problem i affärsprocesserna. Innan implementering av metodologin, definiera målen och problemen i organisationen. De kommer att påverka strategin för övergången till DevOps. Gör en lista med frågor, till exempel:
- Vad tar mest tid vid uppdatering av programvara?
- Kan denna process automatiseras?
- Påverkar organisationens struktur detta?
Mer om identifiering av problem i organisationen «" och "» av författarna till metodologin.
Förändra kulturen i företaget. Det är viktigt att övertyga alla anställda att ändra sina vanliga arbetsmetoder och utvidga sina kompetensområden. Till exempel, på Facebook ansvarar hela applikationslivscykeln: från kodskrivning till implementering. På Facebook finns det heller ingen separat testavdelning — tester skrivs av utvecklarna själva.
Börja smått. Välj processen som tar mest tid och kraft vid utsläpp av uppdateringar och automatisera den. Det handlar om testning eller process för att distribuera applikationer. Experter bör först införa verktyg för distribuerad versionskontroll. Det är enklare att hantera källkoden med dem. Bland sådana lösningar är Git, Mercurial, Subversion (SVN) och CVS mest kända.
Det är också värt att uppmärksamma system för kontinuerlig integration, ansvariga för att bygga och testa den slutliga produkten. Exempel på sådana verktyg är Jenkins, TeamCity och Bamboo.
Utvärdera förbättringarna. Utveckla mätvärden för effektiviteten av de implementerade lösningarna och skapa en checklist. Mätvärden kan vara releasesfrekvensen, tiden för arbete med programfunktioner, antalet buggar i koden. Diskutera resultaten inte bara med cheferna, utan även med resten av teamet som arbetar med projektet. Fråga vilket verktyg som saknas. Ta hänsyn till dessa förfrågningar vid ytterligare optimering av processerna.
Kritik mot DevOps
Även om metodologin hjälper organisationer att snabbare fatta beslut gällande programutveckling, antalet fel i programvaran och uppmuntrar anställda att lära sig nya saker, har den även sina kritiker.
Det finns , som menar att programmerare inte bör behöva förstå detaljerna i systemadministratörernas arbete. Det sägs att DevOps leder till att det i företaget istället för specialister inom utveckling eller administration finns personer som har en ytlig kunskap om allt.
Det anses också att DevOps vid dålig ledarskap. Om utvecklar- och administrationsgrupperna inte har gemensamma mål, är det ledarnas fel som inte organiserar samarbetet mellan teamen. För att lösa detta problem behövs inte en ny metodik, utan ett system för att utvärdera chefer baserat på feedback från underordnade. Här kan du läsa mer om .

Foto / Flickr / CC BY-SA
Vem är en DevOps-ingenjör
DevOps-ingenjören arbetar med att införa DevOps-metodiken. Han synkroniserar alla steg i skapandet av programvaruprodukten: från kodning till testning och lansering av applikationen. En sådan specialist övervakar utvecklings- och administrationsavdelningarna samt automatiserar deras uppgifter genom att implementera olika programverktyg.
DevOps-ingenörens grej är att han kombinerar flera yrken: administratör, utvecklare, testare och chef.
Joe Sanchez, DevOps-evangelist på VMware, företaget som utvecklar mjukvara för virtualisering, en rad färdigheter som en DevOps-ingenjör måste ha. Förutom den uppenbara kunskapen om DevOps-metodiken bör denna person ha erfarenhet av administration av både Windows och Linux samt erfarenhet av automatiseringsverktyg som , , . Han bör också kunna skriva skript och kod i ett par-tre språk och förstå nätverksteknologier.
DevOps-ingenjören ansvarar för all automatisering av uppgifter relaterade till konfiguration och lansering av applikationer. Hans ansvar omfattar även övervakning av mjukvara. För att lösa dessa uppgifter använder han olika konfigurationshanteringssystem, virtualiseringslösningar och molnverktyg för att balansera resurser.
Vem anställer
DevOps-ingenjörer kan vara till nytta för vilken organisation som helst som arbetar med programutveckling eller hantering av ett stort antal servrar. DevOps-ingenjörer av IT-jättar som Amazon, Adobe och Facebook. De arbetar även för Netflix, Walmart och Etsy.
DevOps-ingenjörer bara av startups. Deras uppgift är att lansera en minimalt livskraftig produkt för att testa en ny idé. I de flesta fall kan startups klara sig utan DevOps.
Hur mycket tjänar
DevOps-ingenjörer mer än någon annan i branschen. Den genomsnittliga inkomsten för dessa specialister över hela världen ligger mellan 100 och 125 tusen dollar per år.
I USA tjänar de 90 000 dollar per år (500 000 rubel per månad). I Kanada får de 122 000 dollar per år (670 000 rubel per månad), medan de i Storbritannien får 67 500 pund per år (490 000 rubel per månad).
När det gäller Ryssland är de moscowföretag att betala DevOps-specialister från 100 till 200 000 rubel per månad. I Sankt Petersburg är arbetsgivarna något generösare och erbjuder 160–360 000 rubel per månad. I regionerna anges löner på 100–120 000 rubel per månad.
Hur man blir DevOps-specialist
DevOps är ett relativt nytt område inom IT, så det finns ingen fast lista över krav för DevOps-ingenjörer. I jobbannonser kan kraven för denna tjänst inkludera både kunskaper i administration av Debian och CentOS samt förmågan att arbeta med disk .
Baserat på detta kan vi dra slutsatsen att en DevOps-ingenjör först och främst bör ha en god teknisk allmänbildning. Det är viktigt för en sådan person att ständigt lära sig nya verktyg och teknologier.
Det är enklast för en systemadministratör eller utvecklare att bli DevOps-ingenjör. De har redan en uppsättning färdigheter som bara behöver utvecklas. Huvuduppgiften är att förbättra den minimala kunskapsbasen inom DevOps, förstå hur man arbetar med automatiseringsverktyg och fylla i kunskapsluckor inom administration, programmering och virtualisering.
För att förstå var kunskaperna fortfarande är bristande kan man använda eller . Medlemmar på Hacker News kan också läsa böckerna "" och "" (som vi nämnde ovan) och "" publicerad av O’Reilly Media.
Man kan också prenumerera på , läsa artiklar från den tematiska och börja kommunicera med DevOps-ingenjörer i . Det kan också vara bra att studera gratis kurser på eller .
Inlägg från vår blogg:
Källa: habr.com
