Var skiljer sig rollerna "Dev" och "Ops" och överlappar varandra?

Var skiljer sig rollerna “Dev” och “Ops” och överlappar varandra?


Shutterstock.com/Miha Creative

Utveckling och drift är två typer av roller som underlättar leveransen av mjukvarusystem. De flesta organisationer som bygger mjukvara i stor skala kommer att anställa personer inom båda dessa discipliner. Dev och Ops är dock inte helt silade. Det är vanligt att teamen överlappar varandra och uppnår en högre genomströmning.

I den här artikeln lär du dig att skilja på de viktigaste skillnaderna mellan utvecklare och operatörer, och sedan hur de överlappar varandra. Det är användbart att uppskatta deras individuella egenskaper trots trenden att kombinera de två. Detta kommer att hjälpa dig att ta reda på vilket område du ska specialisera dig på och förstå perspektivet på den “andra sidan.”

Utvecklarrollen

Utveckling är den äldre och mer synliga rollen. Människor som arbetar inom detta område skriver kod som skapar fungerande mjukvara. Du har vanligtvis en befattning som Backend-utvecklare, Software Engineer eller Engineering Lead.

Utvecklarnas vardagliga ansvar kretsar vanligtvis kring att skriva, testa och granska kod. De kan också samarbeta med intressenter för att planera färdplanen och ge teknisk input om genomförbarheten av nya idéer.

Utvecklare är skickliga med ett eller flera programmeringsspråk. De bör också ha praktisk kunskap om den stödjande teknik som används i deras organisation, såsom databaser och behållare.

Ingenjörer behöver också en medvetenhet om mjukvarusäkerhetsprinciper. De måste vara medvetna om var sårbarheter vanligtvis smyger sig in så att de kan skapa säker kod. Liknande bekymmer som prestanda och tillgänglighet måste också vara i fokus.

Operatörens roll

Operatörer blir involverade senare i mjukvaruleveransprocessen, efter att kod har skapats och testats av utvecklare. De distribuerar nya utgåvor i produktionen och övervakar livemiljöer för problem. När en incident inträffar är operatörerna ofta frontlinjen i insatsen. I det här fältet kan du ha Systemadministratör, Release Manager eller Byggingenjör som din titel.

Ansvar som läggs på verksamhetsteamet kan variera avsevärt mellan organisationer. Rollen har ofta tekniska aspekter, som att sätta upp och underhålla pipelines, men dessa kommer att fokuseras på din verktygskedja, istället för produkten den skapar.

Många driftteam är mycket beroende av automatisering. Automatiserade varningssystem och distributionsprocedurer kan öka noggrannheten och konsekvensen, vilket minskar arbetsbelastningen för teammedlemmarna. Detta frigör dem att fokusera på andra uppgifter, som att tilldela felrapporter från användare till utvecklare som kan lösa dem.

Operatörer är också ansvariga för att skala tjänster som svar på förändringar i resursförbrukning. De kommer att behöva sätta upp mekanismer som kan tillhandahålla nya tillfällen när efterfrågan ökar, och sedan trappa ner igen i lugnare perioder. Operatören säkerställer att tjänsten ständigt uppfyller organisationens servicenivåmål.

DevOps överlappar varandra

Även om utvecklings- och driftroller finns i två distinkta sfärer, överlappar de varandra på flera sätt. Många utvecklare kommer att använda system som skapats av driftteamet, medan operatörer kommer att dra nytta av viss programmeringserfarenhet så att de kan förstå hur utvecklare närmar sig ett problem.

Som ett exempel kan driftspersonal konfigurera och underhålla pipeline som skickar kod ut till produktionsmiljöer. De kommer också att definiera egenskaperna för dessa miljöer, till exempel molnleverantören som används och hårdvaruresurserna som är tillgängliga. Utvecklare måste känna till den här informationen så att de kan skriva kod som är i linje med den avsedda distributionsplattformen.

Å andra sidan behöver operatörer en medvetenhet om vad utvecklare letar efter i sina verktyg. De metoder som antagits av utvecklingsteamet kan informera om hur tjänsten ska drivas, vilket skapar en återkopplingsslinga som resulterar i en total effektivitetsökning.

Nuförtiden är denna överlappning allmänt erkänd genom den integrerade vyn av DevOps. DevOps-konceptet beskriver en uppsättning principer som resulterar i en smidigare utvecklingsupplevelse, där kvalitetskod skickas snabbare. Det syftar till att skapa en helhetssyn på leveransprocessen som bygger på samarbete och automatisering.

DevOps för utvecklare och operatörer närmare varandra, vilket gör att information kan flöda direkt mellan dem. Utvecklare uppmuntras att fråga operatörer om hur systemet kommer att fungera i produktionen och hur det kommer att hanteras. Detta gör det enklare att ta till sig nya system, såsom observerbarhetsverktyg som kräver programvarans exportmått i ett visst format.

Ur verksamhetssynpunkt ger ett närmare samarbete med utveckling en större förståelse för hur mjukvaran faktiskt fungerar. Detta kan informera mer optimala operativa beslut, till exempel vilken typ av hårdvara som tillhandahålls och antalet instanser som krävs. Operatörer kan direkt konsultera utvecklare när ett problem uppstår, vilket minskar tjänsteåterställningstiden.

Det gemensamma målet

Utvecklare och operatörer är båda ytterst angelägna om att leverera kvalitetsmjukvara. De tenderar att inte vara alltför involverade i det bredare projektet och affärsmålen bakom det. Båda teamen kommer att ha regelbunden kontakt med projektledaren för att säkerställa att tjänsten fortfarande uppfyller användarnas förväntningar, men att definiera dessa förväntningar ligger inte inom någon av rollerna.

Utvecklare arbetar mot målet genom att skriva presterande kod som är säker, effektiv och lätt att granska för andra. Operatörer säkerställer att den slutliga produkten når kvalitetströskeln genom att tillhandahålla och övervaka distributionsmiljöer. De återfinns traditionellt senare i processen men DevOps flyttar driftarbetet åt vänster, vilket underlättar ett starkare samarbete med organisationens utvecklare.

DevOps etablerar ett delat ansvar för att uppnå servicenivåmålen. Den inser att mjukvaruprodukten är större än något av de individuella teamen. Det är lättare att uppnå mål som 99,9 % drifttid och fördröjning under 500 ms när utvecklare och operatörer arbetar sammanhållet, med en medvetenhet om vad som händer på båda sidor om stängslet.

Utveckling vs Operations: Vilket ska jag välja?

Mjukvaruutvecklare, operatörer och relaterade roller är alla efterfrågade och har sexsiffriga löner hos stora organisationer. Ditt val bör i första hand bero på vilken typ av arbete du vill utföra.

Utveckling är det rätta valet när du vill skriva produktkod större delen av din arbetsdag. Det är dock mer än bara programmering – du måste också vara beredd att genomföra kodgranskningar, ha kontakt med verksamheten och hjälpa till att driva implementeringar genom pipelinen.

En operationsroll kan passa om du är mindre av en praktisk utvecklare och har mer ledningsförmåga. Du kommer att ansvara för att övervaka livetjänster och göra justeringar för att förbättra deras tillgänglighet. Nära kontakt med utvecklingen kommer att vara avgörande för att förmedla kundbiljetter och begära kodändringar som förenklar servicedriften.

Eftersom de två fälten ligger intill varandra är det ofta relativt lätt att flytta från det ena till det andra om du bestämmer dig för att din position inte fungerar. Att arbeta i en organisation som anammat DevOps låter dig passivt samla in kunskap om den andra sidan över tid. Du kan till och med få chansen att skugga någon i en annan roll om du funderar på att byta.

Slutsats

Utvecklare och operatörer: båda är avgörande för modern mjukvaruleverans. De arbetar var och en för att ständigt förbättra kvaliteten samtidigt som de maximerar genomströmningen.

Utvecklare gör detta genom att skapa kod som skapar applikationens funktionalitet. Operatörer förvandlar sedan koden till en användbar tjänst genom att distribuera den till produktion, skala instanser för att möta efterfrågan och övervaka problem. Utvecklare och operatörer kommer ofta att arbeta nära varandra för att lösa eventuella incidenter som inträffar.

Båda dessa roller är mycket kvalificerade positioner som kräver en god förståelse för mjukvarans ekosystem. Den goda nyheten är att det finns stor efterfrågan på erfarna DevOps-ingenjörer, oavsett om du faller på utvecklings- eller driftssidan. Att lära sig någon av disciplinerna kommer att ge tillgång till en bred uppsättning möjligheter; förtrogenhet med båda kommer att ge dig den sällsynta förmågan att fullt ut uppskatta hur de två perspektiven stämmer in och kontrasterar.



Leave a Reply

Your email address will not be published. Required fields are marked *