Vem du ska anställa till ditt SRE-team (Site Reliability Engineering)

Vem du ska anställa till ditt SRE-team (Site Reliability Engineering)

I vår blogg Vad är SRE (Site Reliability Engineering) diskuterade vi vad SRE är och vilka fördelar det kan ge en organisation. I den här bloggen vill vi fokusera på att identifiera gruppmedlemmarna i ett site reliability engineering-team.

Återigen om vikten av ett SRE-team

SRE-teamet är ett team av ingenjörer som ansvarar för att säkerställa tillförlitligheten och tillgängligheten för en viss tjänst. De arbetar för att förbättra systemprestanda, systemtillförlitlighet och systemkonstruktioner så att de är som är tillräckligt tillförlitliga för verksamhetskritiska arbetsbelastningar. Ett SRE-team bör ha teknisk kompetens inom programvaruteknik, infrastrukturautomatisering och DevOps-praxis.

SRE kom till som ett svar på att överbrygga klyftan mellan utveckling och drift. SRE-teamets primära mål är att säkerställa att projekten släpps utan problem. De har en djup förståelse för både produkten och infrastrukturen, så att de kan hantera dem på rätt sätt.

Ett SRE-teams ansvarsområden och roller

Du kanske har hört talas om rollen “site reliability engineer”, men i själva verket består site reliability engineers av ett helt team av olika roller. Varje roll tillför en unik uppsättning färdigheter och erfarenheter till detta specialiserade område.

Ett team för tillförlitlighet på en anläggning består ofta av en kombination av personer från olika team: DevOps-team, mjukvaruutvecklingsteam, systemadministratörer och systemarkitekter. De arbetar tillsammans för att skapa ett omfattande ingenjörsteam som kan hantera kraven från en komplex teknikstack (t.ex. webbservrar, databaser, containerorkestrering) och förbättra systemets tillförlitlighet.

Rollerna och ansvaret för ett SRE-team varierar beroende på vilken produkt eller tjänst de ansvarar för.

Låt oss ta en titt på några av de vanligaste gruppmedlemmarna som ingår i ett SRE-team.

Platssäkerhetsansvarig

Site Reliability Manager ansvarar för den övergripande strategin för SRE-teamet. De ansvarar för att skapa en plan som uppfyller affärsmålen, hantera resurser och bygga upp SRE-praxis som leder ingenjörerna till framgång. De är också ansvariga för att kommunicera strategier och mål till andra team.

SRE-chefer måste ha stor erfarenhet av programvaruteknik, DevOps och infrastrukturarkitektur. De måste kunna tänka strategiskt och leda teamet för att komma fram till lösningar som kan lösa problem snabbt och effektivt.

Programvaruutvecklare och programvaruingenjörer

Programvaruutvecklare och programvaruingenjörer ansvarar för att bygga och underhålla den programvara som driver ett system. Deras ansvarsområden inom ett SRE-team omfattar utveckling av kod, skrivande av automatiseringsskript och säkerställande av tillförlitlig leverans av tjänster.

Det primära ansvaret för en mjukvaruutvecklare eller en mjukvaruingenjör i ett SRE-team är att utveckla mjukvarutillämpningar som uppfyller organisationens behov. De samarbetar med mjukvaruingenjörer för att planera, utforma och bygga nya funktioner eller funktioner. Utvecklare felsöker och löser också fel genom att undersöka grundorsaker och utveckla lösningar.

Dessutom kan de vara ansvariga för att skriva eller uppdatera dokumentation, t.ex. användarmanualer eller tekniska specifikationer.

DevOps-ingenjörer

DevOps-ingenjörer ansvarar för att automatisera en tjänsts livscykel från utveckling till driftsättning. De använder verktyg som Ansible och Terraform för att automatisera infrastruktur som kod (IaC). Detta gör att de snabbt kan driftsätta applikationer i olika miljöer med minimal manuell ansträngning.

I SRE-team övervakar och analyserar DevOps-ingenjörer också systemprestanda för att identifiera potentiella problem innan de blir till problem. De använder sin kunskap om applikationsarkitekturen för att utforma, utveckla och implementera automatiserade lösningar.

Systemadministratörer

Systemadministratörer ansvarar för att underhålla en tjänsts infrastruktur. Detta innefattar att ställa in och konfigurera servrar, distribuera programuppdateringar, installera säkerhetspatchar och utföra regelbundna underhållsuppgifter.

Systemadministratörer inom ett SRE-team kan också vara ansvariga för att utveckla automatiserade lösningar för att förbättra systemets prestanda, tillgänglighet och skalbarhet. De kan också reagera snabbt på incidenter och avbrott genom att felsöka infrastrukturen för att identifiera grundorsaken till eventuella problem.

Systemingenjörer

Systemingenjörer ansvarar för att konfigurera, hantera och underhålla den underliggande infrastrukturen. De använder verktyg som Kubernetes för att distribuera program i behållare och övervaka systemets prestanda. Detta bidrar till att hålla tjänsternas tillgänglighet och stabilitet hög samtidigt som de säkerställer skalbarhet över tid.

I SRE-team samarbetar systemingenjörer ofta med utvecklingsteamet och DevOps-ingenjörer för att utforma, bygga och underhålla en tillförlitlig infrastruktur. De använder sina kunskaper om applikationsarkitekturen för att optimera systemets prestanda.

Arkitekter

Arkitekter ansvarar för att utforma en övergripande systemarkitektur som uppfyller organisationens behov. Detta innefattar att förstå användarnas behov, utforska genomförbara tekniker och välja de bästa lösningarna för att uppfylla dessa behov.

I SRE-team är arkitekter också ansvariga för att utforma en systemarkitektur som är skalbar, säker och tillförlitlig. De använder sin expertis inom distribuerade system för att utveckla strategier för övervakning och hantering av prestanda i flera olika miljöer.

Nätverksingenjörer

Nätverksingenjörer ansvarar för att konfigurera och administrera hela nätverket. De använder verktyg som Cisco IOS och Juniper JUNOS för att konfigurera routrar, switchar, brandväggar, VPN och annan nätverksutrustning. Detta bidrar till att garantera säker tillgång till tjänster och data från var som helst i världen.

I SRE-team är nätverkstekniker också ansvariga för övervakning och underhåll av nätverksinfrastrukturen. De identifierar proaktivt potentiella problem med nätverket och arbetar för att lösa dem snabbt för att säkerställa kontinuerlig tillgänglighet till tjänsterna.

Testingenjörer

Testingenjörer ansvarar för att utveckla och utföra tester för att säkerställa kvaliteten på en tjänst. Detta inkluderar att skriva automatiseringsskript och implementera pipelines för kontinuerlig integration/kontinuerlig leverans (CI/CD).

I SRE-team samarbetar testingenjörer med utvecklare för att testa nya funktioner eller funktionalitet innan de tas i drift. De använder sin kunskap om applikationsarkitekturen för att utveckla strategier för automatisering, vilket bidrar till att minska behovet av manuell testning. Dessutom använder de sin expertis för att utveckla prestandatester som hjälper till att identifiera potentiella problem innan de blir till problem.

Kan du lägga ut SRE på entreprenad?

Ja, du kan lägga ut SRE på entreprenad. Många organisationer väljer att anlita ett externt team av SRE-experter i stället för att bygga upp ett eget internt SRE-team. Detta är ett utmärkt alternativ för de företag som inte vill ha de omkostnader eller kostnader som är förknippade med att utveckla och underhålla ett internt SRE-team.

När det gäller outsourcing av SRE-tjänster finns det några saker att tänka på. För det första måste du hitta rätt SRE-partner och se till att de har den kompetens som krävs för att tillhandahålla de tjänster du behöver med hög kvalitet. Du bör också titta på deras erfarenhet av liknande projekt och bedöma hur de kommer att kunna genomföra dem för din organisation.

Slutligen bör du se till att SRE-partnern har rätt verktyg och processer för att stödja din organisation. Detta inkluderar att se till att de har ett robust system för att övervaka prestanda och drifttid, samt att de har automationssystem för att snabbt identifiera och åtgärda potentiella problem.

Avslutande tankar

När du anställer ett SRE-team är det viktigt att leta efter personer med rätt blandning av teknisk expertis, problemlösningsförmåga och kundfokus. Systemadministratörer, systemingenjörer, arkitekter, nätverksingenjörer och testingenjörer är alla viktiga roller i ett SRE-team. Varje roll spelar en viktig roll för att säkerställa tjänstens tillförlitlighet, skalbarhet och prestanda.

Genom att investera i rätt teammedlemmar kan organisationer se till att deras tjänster är tillförlitliga, säkra och fungerar bra för kunderna. I slutändan kommer detta att hjälpa dem att uppnå sina önskade affärsmål och ge en positiv kundupplevelse.