Een inleiding voor beginners tot DevOps-principes

0
130
Shutterstock/BoVLD

DevOps is een modewoord dat vaak wordt gebruikt, het is een reeks principes die zijn ontworpen om het hele ontwikkelingsproces te stroomlijnen en te beheersen, van het brein van uw programmeurs tot aan uw servers.

DevOps is een modewoord dat vaak wordt gebruikt. /p>

De basis

De meeste teams kunnen hun ontwikkelaars waarschijnlijk in twee hoofdcategorieën verdelen:

  • Ontwikkelaars, die zorgen voor het updaten van de codebase, het oplossen van bugs en rondom het programmeren. U kunt in deze categorie ook andere rollen opnemen, zoals web- en UI-ontwerpers. In het algemeen omvat het iedereen die betrokken is bij het daadwerkelijk bouwen van uw product.
  • SysAdmins, of het “Operations Team.” Deze mensen zorgen voor het updaten van servers met nieuwe code, beheren zowel uw openbare als interne serverinfrastructuur en houden alles draaiende.

Simpel gezegd, bij DevOps draait alles om de integratie van deze twee teams (vandaar de samentrekking van een naam). Het zal uw ontwikkelaars niet tot systeembeheerders maken, of vice versa, maar het zou hen moeten helpen om samen te werken.

Elk aspect en elke fase wordt aangevuld met tools die dit hele proces gemakkelijker maken. DevOps is meer dan alleen tools en automatisering, en het implementeren van een reeks "DevOps-tools" zal uw team niet automatisch twee keer zo snel laten werken, maar deze tools vormen een belangrijk onderdeel van het proces, en het zou moeilijk zijn om zo efficiënt te zijn zonder enkele ervan.

Terwijl er een heleboel andere modewoorden onder de paraplu van "DevOps" worden gegooid," het basisconcept is vrij eenvoudig. Als een team goed werkt, verloopt DevOps over het algemeen als volgt:

Shutterstock/Ribkhan

Ter verduidelijking beginnen we met de monitoringfase. Dit houdt in dat u uw servers in de gaten houdt, analyses bekijkt, logs analyseert en problemen met uw codebase identificeert. Hoewel een groot deel hiervan codegerelateerd is, valt een groot deel ook aan de zakelijke kant van de zaak. Bereikt u effectief uw doelen? Zijn uw klanten tevreden? In deze fase gaat het erom erachter te komen wat er mis is, zodat je de juiste doelen kunt stellen. Populaire monitoringtools zijn onder meer Nagios, AWS CloudWatch en analysesoftware zoals Google Analytics.

Misschien krijgt u rechtstreeks van een klant een ticket en begint u vanaf de planningsfase. Hier ga je met je hoofdontwikkelaars om de tafel zitten en bespreek je wat er moet gebeuren om een ​​ticket te voltooien. Als je software zoals Jira gebruikt, deel je waarschijnlijk een groot ticket op in individuele verhalen en problemen die gemakkelijker kunnen worden gevolgd en aan individuele ontwikkelaars kunnen worden toegewezen. Als je de komende twee weken een codesprint plant, wil je dat je plan duidelijk is opgesteld om tijd te besparen die je kwijt bent aan het herhalen van code.

Advertentie

In plaats van slechts één keer te testen en te bouwen wanneer alles klaar is, zal elke ontwikkelaar in een DevOps-omgeving idealiter meerdere keren per dag wijzigingen doorgeven aan bronbeheer, wanneer problemen zijn voltooid of een kleine mijlpaal is bereikt. Hierdoor kunnen de bouw- en testfasen vroeg beginnen en zorgt ervoor dat geen enkele ontwikkelaar te ver van de HEAD van de master source control komt. Deze fase gaat vooral over goed beheer van bronbeheer, dus het hebben van een effectieve git-service zoals GitHub, Gitlab of BitBucket is cruciaal om de continue integratie soepel te laten verlopen.

U hoeft niet elke commit voor productie meteen te implementeren, maar snelle geautomatiseerde implementaties zijn een belangrijk onderdeel van het kunnen pushen van snelle releases. Bovendien neemt het wat stress van uw operationele team af, waardoor ze zich kunnen concentreren op belangrijkere dingen dan het handmatig bijwerken van servers met nieuwe code.

Zodra nieuwe wijzigingen zijn geïmplementeerd, begint de cyclus opnieuw. Misschien zorgt die nieuwe functie die u hebt toegevoegd ervoor dat de staging-databaseserver overuren maakt en moet deze mogelijk worden gemarkeerd voor prestatiebeoordeling en gerepareerd voordat deze in productie wordt genomen. Als alles goed verloopt, is DevOps niet langer een vaste reeks stappen en wordt het gewoon een cultuur die iedereen van nature volgt.

Continuous Integration/Continuous Delivery Pipelines

Continuous Integration/Continuous Delivery Pipelines

Continuous Integration/Continuous Delivery Pipelines

h2>

Automatisering en tools vormen een belangrijk onderdeel van elke DevOps-omgeving. Misschien wel de grootste tool die je moet hebben, is een pijplijn voor continue integratie/continue levering (CI/CD). Dit is een geautomatiseerd proces dat begint met de broncode en het proces van bouwen, testen en implementeren op servers afhandelt.

AWS’s CodePipeline is hier een goed voorbeeld van. Telkens wanneer een wijziging wordt gedetecteerd in bronbeheer (ofwel GitHub, BitBucket of AWS CodeCommit), wordt deze naar AWS CodeBuild gestuurd om te bouwen en te testen. Als alternatief wordt Jenkins vrij vaak gebruikt om deze bouwfase af te handelen.

Als een build eenmaal is voltooid, wil je deze meestal naar een testomgeving sturen voordat je direct naar productie gaat. Toch zal het automatiseren van implementaties naar zowel test- als productieservers de iteratietijden aanzienlijk versnellen. In de pijplijn van AWS wordt dit afgehandeld door CodeDeploy. Jenkins kan ook de implementatie aan, evenals software zoals Ansible.

Al met al kan een CI/CD-pijplijn het grootste deel van de DevOps-stroom automatiseren, van build tot implementatie, waardoor het een cruciaal onderdeel is voor elk team efficiënt willen werken.