En nybörjarintroduktion till DevOps principer

0
146
Shutterstock/BoVLD

DevOps är ett modeord som vanligtvis kastas runt — verkligen, det är en uppsättning principer som är utformade för att effektivisera och styra hela utvecklingsprocessen, från dina programmerares hjärnor och till dina servrar. < /p>

Grunderna

De flesta team kan förmodligen dela sina utvecklare i två huvudkategorier:

  • Utvecklare som hanterar uppdatering av kodbasen, åtgärdande av buggar och kring programmering. Du kan också inkludera andra roller, till exempel webb- och UI -designers i denna kategori. I allmänhet omfattar den alla som är involverade i att faktiskt bygga din produkt.
  • SysAdmins eller “ Operations Team. ” Dessa människor hanterar uppdatering av servrar med ny kod, hanterar både din offentliga och interna serverinfrastruktur och håller hela tiden igång.

För att uttrycka det enkelt handlar DevOps om att integrera dessa två lag tillsammans (därav portmanteau of a name). Det kommer inte att göra dina utvecklare till sysadmins, eller tvärtom, men det borde hjälpa dem att arbeta tillsammans.

Varje aspekt och fas kompletteras med verktyg som gör hela processen enklare. DevOps är mer än bara verktyg och automatisering och implementering av en uppsättning “ DevOps -verktyg ” kommer inte automatiskt att få ditt team att fungera dubbelt så snabbt, men dessa verktyg är en viktig del av processen, och det skulle inte vara svårt att vara lika effektiv utan några av dem.

Medan det finns många andra modeord som kastas under paraplyet av “ DevOps, ” grundkonceptet är ganska enkelt. När ett team fungerar korrekt flyter DevOps i allmänhet ut så här:

Shutterstock/Ribkhan

För att förklara, börjar vi med övervakningsfasen. Detta innebär att du håller koll på dina servrar, tittar på analyser, analyserar loggar och identifierar problem med din kodbas. Medan en stor del av detta är kodrelaterat, faller mycket av det också på affärssidan. Uppnår du dina mål effektivt? Är dina kunder nöjda? Denna fas handlar om att ta reda på vad som är fel så att du kan sätta upp riktiga mål. Populära övervakningsverktyg inkluderar Nagios, AWS CloudWatch och analysprogram som Google Analytics.

Kanske får du en biljett direkt från en klient och börjar från planeringsfasen. Det är här du kommer att sätta dig ner med dina ledande utvecklare och diskutera vad som behöver göras för att slutföra en biljett. Om du använder programvara som Jira kommer du förmodligen att bryta ner en stor biljett till enskilda berättelser och problem som kan spåras lättare och tilldelas enskilda utvecklare. Om du planerar en kodsprint för nästa eller två veckor, vill du ha en tydlig plan för din plan för att minska tiden som går åt att upprepa kod.

Annonsering

I stället för att bara testa och bygga en gång när allt är klart, i en DevOps -miljö, kommer varje utvecklare helst att skicka ändringar till källkontrollen flera gånger om dagen, när problemen är klara eller en mindre milstolpe nås. Detta gör att bygg- och testfaserna kan börja tidigt och se till att ingen utvecklare kommer för långt bort från huvudet för huvudkällkontrollen. Det här stadiet handlar mest om korrekt källkontrollhantering, så att ha en effektiv git -tjänst som GitHub, Gitlab eller BitBucket är avgörande för att kontinuerlig integration ska fungera smidigt.

Du behöver inte distribuera alla åtaganden för produktion direkt, men snabba automatiserade distributioner är en viktig del för att kunna driva snabba utgåvor. Dessutom tar det lite stress från ditt driftsteam, så att de kan fokusera på viktigare saker än att manuellt uppdatera servrar med ny kod.

När nya ändringar har implementerats startar cykeln om igen. Kanske gör den nya funktionen som du har lagt till att staging -databaseservern arbetar övertid och kan behöva markeras för prestandagranskning och åtgärdas innan den distribueras till produktion. Om allt flyter på rätt sätt slutar DevOps att vara en fast serie steg och blir helt enkelt en kultur som alla följer naturligt.

Continuous Integration/Continuous Delivery Pipelines

Automation och verktyg är en viktig del av alla DevOps -miljöer. Det kanske största verktyget att ha är en pipeline för kontinuerlig integration/kontinuerlig leverans (CI/CD). Detta är en automatiserad process som börjar med källkod och hanterar processen att bygga, testa och distribuera till servrar.

AWS ’ s CodePipeline är ett bra exempel på detta. Närhelst en ändring upptäcks i källkontrollen (antingen GitHub, BitBucket eller AWS CodeCommit) skickas den över till AWS CodeBuild för att bygga och testa. Alternativt används Jenkins ganska ofta för att hantera denna byggfas.

Annons

Vanligtvis, när en byggnad är klar, vill du skicka den till en testmiljö innan du går direkt till produktionen. Ändå kommer automatisering av distributioner till både test- och produktionsservrar att påskynda iterationstiderna avsevärt. I AWS pipeline hanteras detta av CodeDeploy. Jenkins kan också hantera distribution, samt programvara som Ansible.

Sammantaget kan en CI/CD -pipeline automatisera det mesta av DevOps -flödet, från build till distribution, vilket gör det till en avgörande del för alla team vill arbeta effektivt.