devops automation how is automation applied devops practice
Automatisering in DevOps:
In de laatste tutorial leerden we het belang van Bronbeheer in DevOps Hier leren we in deze tutorial over automatisering in DevOps.
Automatisering is de ultieme behoefte aan DevOps-praktijk en ‘Automatiseer alles’ is het belangrijkste principe van DevOps. In DevOps begint de automatiseringskick vanaf het genereren van code op de ontwikkelaarsmachine totdat de code naar de code wordt gepusht en zelfs daarna om de applicatie en het systeem in productie te bewaken.
Voorgestelde lezing => Informatieve DevOps Tutorial Series
De volledige DevOps-pijplijn met continue integratie, continu testen en continue implementatie, inclusief live monitoring van applicatieprestaties, is geautomatiseerd.
Het automatiseren van infrastructuurinstellingen en -configuraties en de software-implementatie is het belangrijkste hoogtepunt van de DevOps-praktijk. DevOps-praktijk is sterk afhankelijk van automatisering om leveringen over een periode van enkele uren te doen en om frequente leveringen op verschillende platforms te doen.
Automatisering in DevOps bevordert dus snelheid, grotere nauwkeurigheid, consistentie, betrouwbaarheid en verhoogt het aantal leveringen. Uiteindelijk omvat automatisering in DevOps alles, van bouwen, implementeren en monitoren.
VIDEO Deel 2 Blok 3: DevOps-automatisering- 16 minuten 40 seconden
Laten we in deze tutorial de betekenis van automatisering in de DevOps-praktijk in detail begrijpen.
Hier bespreken we:
- Hoe wordt automatisering toegepast in de DevOps-praktijk?
- Noodzaak en rol van automatisering?
- Wat te automatiseren?
- Tools en framework, continu testen?
Ik ben een beetje bang om over automatisering te praten. Want hoe vaak ik het ook over automatisering heb, volgens mij is het nooit helemaal af.
Onnodig te zeggen dat automatisering simpelweg wegkomt van de handmatige taken. Mensen willen hun betrokkenheid bij de alledaagse routinetaken verminderen en hun tijd en intelligentie gebruiken voor iets nieuws of innovatiefs.
Dat gezegd hebbende, de rol van automatisering in DevOps is erg belangrijk en erg cruciaal om continu waarde aan de klant te leveren.
Laten we samen antwoorden hoe automatisering wordt toegepast in de DevOps-praktijk en wat te automatiseren, omdat beide vragen samen worden beantwoord.
Wat te automatiseren?
Ik denk dat er in dit automatiseringstijdperk niet veel uitleg nodig is voor het antwoord op deze vraag. Waar we ook gaan, we zien dingen die worden geautomatiseerd, met minimale of helemaal geen menselijke tussenkomst. DevOps is hier dus geen uitzondering op.
In een traditionele softwareontwikkelingsmethode werden vroeger alleen het ontwikkelteam en hun activiteiten geautomatiseerd, met name testen. Vroeger was automatisering het testen en automatiseren van testcases, ook dat waren alleen functionele testcases en zelfs niet-functionele tests zoals performance en security.
En geen van de andere activiteiten, met name ops-activiteiten, die worden gebruikt om te worden geautomatiseerd. Het mislukken van handmatige implementatie op een enorm cluster met 8 servers en het verlies dat het veroorzaakte, is zeer goed Voorbeeld van complexiteit bij implementaties en het verklaart duidelijk de behoefte aan automatisering voor Devops-activiteiten.
beste spionage-app voor mobiele telefoon
Ik heb mezelf gezien dat organisaties hooggeschoolde en intelligente mensen inhuren door een enorm salarispakket te betalen voor het configureren van de netwerken en omgevingen, wat vroeger gebeurde op basis van hun intelligentie, kennis op het betreffende gebied, hun ervaring en expertise, wat was een compleet handmatig werk.
Handmatige configuratie is altijd foutgevoelig, zoals iedereen weet. Wat gewoonlijk gebeurde in het geval van handmatige installatie, is dat deze slimme mensen, netwerkconfigurators, na verloop van tijd, na herhaaldelijk hetzelfde werk keer op keer te hebben gedaan, zich vervelen van deze activiteiten en uiteindelijk fouten maken als gevolg van aan nalatigheid.
Je weet dat ze heel briljant zijn en dat deze activiteiten heel eenvoudig en oninteressant voor hen zullen zijn en dat ze elke dag nieuwe uitdagingen nodig hebben, en niet deze saaie taak.
Dus de introductie van automatisering voor software-installatie en versiebeheer van het infrastructuurgedeelte werd een enorme winst en verminderde veel menselijke fouten naast het besparen van tijd en stelt elke gewone man in staat dit te doen, waardoor de afhankelijkheid van de geschoolde werknemers wordt opgeheven.
Ook het ronddraaien van processen als een nieuwe omgeving moet worden opgezet, zoals het ticket verhogen voor het opzetten van een nieuwe omgeving, het IT-team dat van achteren werkt bij het opzetten ervan, al deze gedoe wordt verwijderd.
Zo worden individuele teamleden gemachtigd om de taken uit te voeren. Stel je de snelheid, betrouwbaarheid en consistentie voor die worden bereikt door de automatisering. Automatisering is dus enorm toegenomen, het aantal leveringen aan de productie.
Dus nu in de DevOps-praktijk, is het Operations-team ook begonnen met automatisering in al hun werken, wat de sleutel is geworden tot het succes van DevOps.
Eigenlijk, in de DevOps-praktijk, begint de automatiseringskick vanaf het genereren van code op de ontwikkelaarsmachine totdat de code naar de productie gaat en zelfs daarna bij het live monitoren van de applicatie. Dit is een typische DevOps-cyclus.
Het Development and Ops-team controleert de code en de omgevingsconfiguraties tot aan de broncontrole, van waaruit de automatisering wordt geactiveerd voor het activeren van de build, het uitvoeren van unit-testcases en andere basiscodekwaliteit, dekkingstestcases, beveiligingsgerelateerde testcases enz.
Als de code hiermee klaar is, wordt de code automatisch gecompileerd, opgeslagen in versiebeheer en automatisch geïmplementeerd in de verdere omgevingen voor verder testen en uiteindelijk voor de productierelease.
We kunnen zien dat de automatisering wordt uitgevoerd in elke fase van de ontwikkeling, beginnend bij het starten van de build, het uitvoeren van unit-testen, het verpakken, het inzetten op de gespecificeerde omgevingen, het uitvoeren van buildverificatietests, rooktesten, acceptatietestgevallen en uiteindelijk het inzetten van op naar de uiteindelijke productieomgeving.
Zelfs als we het automatiseren van testcases zeggen, zijn het niet alleen de unit-tests, maar ook installatietests, integratietests, gebruikerservaringstests, UI-tests enz.
DevOps dwingt het operatieteam, naast de ontwikkelingsactiviteiten, al hun activiteiten te automatiseren, zoals het inrichten van de servers, het configureren van de servers, het configureren van de netwerken, het configureren van firewalls, het monitoren van de applicatie in het productiesysteem.
Om te beantwoorden wat te automatiseren, is het build-trigger, compileren en bouwen, implementeren of installeren, automatisering van infrastructuur die is opgezet als een gecodeerd script, omgevingsconfiguraties als een gecodeerd script, het is onnodig om testen te noemen, monitoring van levensprestaties na de implementatie in het leven, logboekbewaking, bewaking van waarschuwingen, pushmeldingen naar live en ontvang meldingen van live in geval van fouten en waarschuwingen enz.,
Uiteindelijk automatiseren van alle projectgerelateerde documenten.
Dus ik kan zeggen dat automatisering in DevOps-taal betekent: continue integratie, continu testen, continue implementatie en continue levering. We zullen ze elk in detail bestuderen in de komende delen.
Over het algemeen maakt DevOps elke ontwikkelingsactiviteit en elke operatie mogelijk, waar mogelijk, wat automatiseerbaar is, wat herhaalbaar is, waar nauwkeurigheid vereist is, wat veel tijd kost, wordt geautomatiseerd.
Maar als we de tools voor automatisering niet noemen, is de discussie over automatisering onvolledig.
Selectie van een juist framework en automatiseringstool is dus de belangrijkste vereiste voor automatisering in DevOps.
shell-sorteeralgoritme c ++
Er zijn veel tools beschikbaar op de markt, zowel open source als gelicentieerde tools, die de end-to-end automatisering van de volledige leveringspijplijn ondersteunen, inclusief activiteiten uitgevoerd door het Ops-team, provisioning-machines, draaiende geautomatiseerde servers, configureren van netwerken, firewalls, en zelfs het monitoren van de prestaties van de software.
Ook hebben bepaalde organisaties hun eigen raamwerk ontwikkeld om het end-to-end-proces van DevOps te integreren, dat begint van code commit tot code-implementatie inclusief documentatie die een enkele geïntegreerde tool is en het team niet buiten het raamwerk hoeft te gaan voor iets gerelateerds om te programmeren, of het nu gaat om versiebeheer, schrijven van testcases, review, dumpen van testcaseresultaten, analyse enz.,
Bijv .: puppet, Azure resource manager, chef etc.,
Voordelen van automatisering in DevOps
We hebben eerdere releases gezien, bij gebrek aan automatisering die jaren nodig heeft om in de productie te komen en ook recentelijk met agile, of het nu lean, scrum of safe is, en met een percentage van de automatisering dat is verbeterd, worden de release-tijdlijnen teruggebracht tot enkele maanden of weken.
Maar automatisering is absoluut een must om de releases binnen een paar uur zo snel mogelijk te maken. Dus ik denk dat het onmogelijk is om zulke snelle en frequente releases te maken, tenzij we gedurende de hele pijplijn automatisering doorvoeren.
Het is dus duidelijk dat als we de doelstellingen van DevOps willen bereiken, hoge kwaliteit en waarde geleverd aan klanten via frequente en snelle leveringen, dan is Automatiseer alles een must.
Het is duidelijk dat we inmiddels weten dat automatisering handmatige fouten, afhankelijkheid van een individu verwijdert, sneller presteert en nauwkeurigheid bereikt, waardoor consistentie en betrouwbaarheid wordt bereikt. Door alles te automatiseren, wordt het doel van de ontwikkeling van hoogwaardige levering mogelijk gemaakt, worden frequente releases en snellere releases mogelijk gemaakt.
In een notendop: automatisering,
- Verwijdert handmatige fouten
- Teamleden zijn bevoegd
- Afhankelijkheid verwijderd
- Latentie verwijderd
- Verhoogt het aantal leveringen
- Verkort de doorlooptijd
- Verhoogt de frequentie van releases
- Biedt snellere feedback
- Maakt snelheid, betrouwbaarheid en consistentie mogelijk
Kortom, automatisering in DevOps omvat uiteindelijk alles, van het bouwen, implementeren en monitoren.
PREV-zelfstudie VOLGENDE zelfstudie
Aanbevolen literatuur
- Belang van kleine stijgingen van leveringen in DevOps
- Bronbeheer of versiebeheer in DevOps (videozelfstudie deel 2 - blok 2)
- DevOps Tutorial: The Ultimate Guide to DevOps (25+ Tutorials)
- DevOps-praktijk gebaseerd op Agile Manifesto (deel 2 - blok 1)
- Tutorial over DevOps-testen: welke invloed heeft DevOps op QA-testen?
- AWS CodeCommit-zelfstudie voor DevOps-implementatie in de cloud
- Zie Testautomatisering: een handleiding voor mobiele testautomatiseringstools
- Continue levering in DevOps