devops tutorial ultimate guide devops
Det här är en komplett DevOps-handledningsserie med 25+ text- och videohandledning som täcker alla aspekter av DevOps som Vad är DevOps, DevOps-principer och dess arkitekt.
Lista över självstudier i DevOps Training Series:
# 1) Introduktion till DevOps (Denna handledning)
#två) DevOps och programvarutestning
DevOps VIDEO-handledning:
# 3) Videohandledning 1: DevOps bakgrund, definition, värde, fördelar, vanor och bästa praxis
- Del 1 Block 1 - Avmystifiera DevOps
# 4) Videohandledning 2: DevOps-praxis baserad på Agile Principles, källkontroll och DevOps Automation
Denna videohandledning är uppdelad i 6 kvarter:
- Del 2 Block 1 - DevOps-övning baserad på Agile Manifesto
- Del 2 Block 2 - Källa och versionskontroll i DevOps
- Del 2 Block 3 - Automation i DevOps
- Del 2 Block 4 - Små inkrement av leveranser i DevOps
- Del 2 Block 5 - Samarbete i DevOps Teams
- Del 2 Block 6 - Hur man utvecklar samarbete i DevOps-team
# 5) Videohandledning 3: DevOps bearbetar kontinuerlig integration, kontinuerlig testning och kontinuerlig leverans
Denna videohandledning är uppdelad i 4 kvarter:
- Del 3 Block 1 - Kontinuerlig integration i DevOps
- Del 3 Block 2 - Kontinuerlig leverans i DevOps
- Del 3 Block 3 - Kontinuerlig distribution i DevOps
- Del 3 Block 4 - Kontinuerlig testning i DevOps
# 6) Videohandledning 4: DevOps Configuration Management och övervakning av live-applikationsprestanda
Denna videohandledning är uppdelad i 3 kvarter:
- Del 4 Block 1 - Konfigurationshantering i DevOps-praxis
- Del 4 Block 2 - Släpp hantering i DevOps
- Del 4 Block 3 - Övervakning av applikationsprestanda i DevOps
# 7) Videohandledning 5: Sammanfattning av hela kursen.
- Del 5 Block 1 - Sammanfattning av DevOps Video Tutorials
Texthandledning:
# 8) Skift vänster testning
# 9) Hur man förbättrar mjukvarukvaliteten med kontinuerlig integration
# 10) Kontinuerlig leveransprocess
DevOps-verktyg:
#elva) DevOps-verktyg
# 12) Installation och konfiguration av vanliga DevOps-verktyg med öppen källkod
# 13) Bästa kontinuerliga integrationsverktyg
# 14) De bästa kontinuerliga leveransverktygen
Microsoft VSTS-handledning:
#femton) Microsoft VSTS del 1
# 16) Microsoft VSTS del 2
AWS DevOps-verktyg:
# 17) AWS DevOps-verktyg del 1 (CodeCommit)
# 18) AWS DevOps-verktyg del 2 (CodeBuild)
# 19) AWS DevOps-verktyg del 3 (CodeDeploy)
#tjugo) .NET-webbapplikation med hjälp av AWS Elastic Beanstalk
Ansible för DevOps:
#tjugoett) Ansible Part 1: Installation och konfiguration
# 22) Ansible Part 2: Task Automation Using Playbooks
# 2. 3) Ansible Part 3: Ansible Rolles and Integration with Jenkins
# 24) Integrering av Jenkins med Selen
# 25) Hudson kontinuerligt integrationsverktyg
# 26) DevOps tjänsteleverantörsföretag
# 27) DevOps intervjufrågor
Låt oss börja med den första guiden i denna serie.
Vad du kommer att lära dig:
- Introduktion till DevOps
- Översikt över Agile och DevOps
- Handlar DevOps bara om verktyg?
- Komponenter i DevOps
- Sammanfattning
- Rekommenderad läsning
Introduktion till DevOps
DevOps handlar inte bara om verktyg utan innehåller också en uppsättning bästa metoder som gör det möjligt att överbrygga klyftan mellan utvecklings- och driftsteam inom områdena kontinuerlig integration och distribution genom att använda en integrerad uppsättning verktyg för att automatisera leveransen av programvaran.
vad är en länkad lista c ++
Det är absolut nödvändigt att utvecklarna förstår operationssidan och vice versa. Så målet för DevOps är helt enkelt att hjälpa alla organisationer att snabbt leverera applikationer till slutanvändarna och möjliggöra snabbare feedback från slutanvändarna, vilket är behovet av alla företag idag.
Översikt över Agile och DevOps
Det finns ingen skillnad mellan Agile och DevOps. Istället kompletterar de varandra. Låt oss börja med att titta på vattenfallsmodellen där alla krav är frusna och design och utveckling görs efter varandra tills en stabil produkt finns tillgänglig.
Så problemet här är att om det finns en förändring i kundens behov i det här skedet finns det inget sätt att inkludera och leverera det ändrade behovet.
Agile antogs för att ta itu med frågan om att anpassa sig till kundernas förändringar bättre än i vattenfallsmetoden. Tanken här var att utveckla en mjukvara i mindre sprints eller iteration säga runt 2 till 3 veckor som hjälpte utvecklingsgruppen att arbeta med återkoppling av slutanvändare och införliva förändringarna i de nyare versionerna.
Därför måste utvecklings- och driftsteam ha agila inom sina arbetsområden ochDevOpsföddes för att möjliggöra bättre samarbete mellan dem.
Agile tar in processer som XP, SCRUM etc. och DevOps tar in metoder som kontinuerlig integration, kontinuerlig leverans, kontinuerlig testning och kontinuerlig övervakning som vi kommer att se i detalj när vi går vidare i denna handledning.
Handlar DevOps bara om verktyg?
På ett sätt kan du hävda att du behöver verktyg för att implementera DevOps. Det är sant men verktyg är bara acceleratorer.
Men faktiskt handlar det om följande 3 aspekter:
människor :Det är mycket viktigt att träna och ha ett mycket motiverat team av människor för att effektivt kunna kommunicera och samarbeta under hela denna kulturella förändringsresa.
Bearbeta: När vi pratar om kulturell förändring för DevOps-implementering är det i hög grad en nödvändighet att ha metoder och strategier som ger kunden värde. Ett korrekt sätt att göra det skulle vara att göra en AS-IS-mognadsbedömning, titta på luckor och föreslå en färdplan för genomförande av lämpliga rekommendationer.
Jag kommer inte att prata fördjupat om hur jag har gjort det för att göra dessa bedömningar men jag kommer gärna dela med mig av alla insatser på samma.
Verktyg: Slutligen handlar det om att använda acceleratorerna genom att automatisera processen med standard DevOps-verktyg som finns tillgängliga idag. Det kan vara Open Source (Jenkins, Git etc.), Commercial (Microsoft TFS, VSTS, IBM Rational, Jira etc.) eller en blandning av båda.
Komponenter i DevOps
Jag hoppas att du nu skulle ha fått en uppfattning om vad som är DevOps.
Låt oss nu titta på följande fyra komponenter i DevOps som utgör kärnan ur en implementeringssynpunkt och också har organisationerna utvecklat bra automatiseringsramar runt samma som erbjuder den som en tjänst till sina kunder.
- Fortsatt integration
- Kontinuerlig testning
- Kontinuerlig leverans
- Kontinuerlig övervakning
Jag har verkligen trott att om en utvecklare måste arbeta i det här läget, bör det finnas ett exekveringsobjekt som en uppgift eller en defekt (I Agile kan det vara en del av User Story) tilldelad honom för att göra det möjligt för honom att leverera arbetet inom sprintens tidsram.
Så även innan ovanstående steg kan implementeras bör dessa utvecklaruppgifter eller defekter planeras i en Sprint. Så verktyg som JIRA, IBM Rational Team Concert, Microsoft TFS / VSTS etc. hjälper till att skapa Agile Release / Sprint-planerna.
Låt oss nu titta på var och en av dessa komponenter i detalj.
# 1) Kontinuerlig integration
Som utvecklare arbetar du med de uppgifter eller defekter som tilldelats och checkar in koden till ett delat arkiv flera gånger på en dag. På samma sätt checkar de andra medlemmarna i teamet också in koden i det delade arkivet.
Du integrerar då faktiskt allt arbete som görs av teammedlemmarna i en gemensam build-server och utför en automatiserad build. Att göra dessa integrationer och automatiserade byggnader regelbundet kallas kontinuerlig integration.
Denna praxis hjälper till att upptäcka problem mycket tidigt och säkerställer också att alla moduler som är integrerade fungerar efter behov. Så om du inte följer detta tillvägagångssätt kan integrationen av teamets arbete inträffa en gång i månaden, vilket kan vara sent för att hitta och åtgärda eventuella integrationsproblem.
Exempel på arbetsflöde för kontinuerlig integration:
# 2) Kontinuerlig leverans
Kontinuerlig leverans är nästa steg efter kontinuerlig integration. Målet med kontinuerlig leverans är att driva applikationen inbyggd i produktion så snabbt som möjligt. Under denna process går det igenom olika steg i leveransens livscykel, dvs QA, Staging, Produktionsmiljöer etc.
Denna process för att regelbundet leverera applikationer som är inbyggda i olika stadier kallas kontinuerlig leverans.
Kontinuerlig leverans hjälper till på snabbare tid till marknaden jämfört med traditionella metoder, mindre risk, sänker kostnaden genom att uppmuntra mer automatisering i släppprocessen och viktigast av allt att få snabbare feedback från slutanvändarna för att producera en kvalitetsprodukt.
Från min erfarenhet har jag sett att denna process fungerar bra för alla typer av webbapplikationsutveckling.
Jag har också gjort en hel del utvärderingar av DevOps-implementeringar för organisationer inom affärsområdet halvledare men på grund av deras befintliga släppcykel detta område av kontinuerlig leverans verkar inte passa det eftersom det är mer en vattenfallsprocess som följs och utplaceringar görs när och efterfrågas i en kundmiljö.
Exempel på kontinuerligt leveransarbetsflöde:
I ovanstående diagram kan du titta på olika tillgängliga miljöer och så kan denna tillhandahållande av infrastrukturen för miljöerna också automatiseras under denna kontinuerliga leveransprocess.
# 3) Kontinuerlig testning
Från ovanstående två metoder fick vi veta att CI och CD hjälper till att distribuera applikationen eller ändringar i produktionen. Hela processen involverar korrekt validering av koden och dess integration med alla komponenter som är inblandade i den för att säkerställa att applikationen fungerar som planerad och är fri från fel eller defekter.
Så kontinuerlig testning är processen att köra olika typer av automatiserade tester som börjar med CI-processen till dess att applikationen äntligen distribueras till produktion.
Du kan se från det föregående diagrammet att i steget för kontinuerlig integrering integrerar vi alla utvecklararbeten till en gemensam byggserver och även under detta steg skulle utvecklarna köra en viss enhetstest.
När dessa integrationer och tester fungerar utan några fel distribueras applikationen eller ändringarna till QA-miljön efter ansökan om dessa kvalitetsgrindar och godkännanden.
team foundation server agil projektledning
I QA-miljön körs funktionstesterna och baseras igen på de godkännanden som den skulle distribueras till iscenesättningsmiljö som skulle vara på paritet som produktionssystem och acceptanstester körs. När denna aktivitet har slutförts distribueras applikationen eller ändringarna i produktionssystemen.
Så man kan notera här att kontinuerlig testning som en aktivitet börjar från CI-scenen i sig och är ett mycket obligatoriskt steg under den kontinuerliga leveransprocessen.
Exempel på testflöden i kontinuerlig leveransprocess:
# 4) Kontinuerlig övervakning
När applikationen eller ändringarna distribueras till produktionsmiljön kommer driftsteamet att se över applikationen och miljön ur en uppfattningstid, stabilitet, tillgänglighet. Denna process kallas kontinuerlig övervakning.
Operationsgrupperna kommer att ha sin egen programvara för att övervaka miljön men kommer också att behöva spela sin roll för att övervaka de applikationer som används för eventuella problem. För detta skulle de behöva arbeta med utvecklingsteamen för att bygga vissa verktyg för att analysera applikationsfrågorna.
Så infrastruktur-, miljö- och applikationsfrågor är allt som övervakas under kontinuerlig övervakning.
Sammanfattning
I denna handledning lärde vi oss exakt vad DevOps-processen handlar om att inkludera de olika komponenterna som är involverade i den. Dessa komponenter hjälper till att påskynda applikationsleveransen och sparar också tid på marknaden, vilket är ett behov av affärer idag ur konkurrenssynpunkt.
I den kommande serien av självstudier i DevOps-segmentet kommer du att titta på de olika videorna / troliga DevOps-verktygen som lagen kan använda och även implementeringen av DevOps med hjälp av vissa verktyg för lokalt och moln.
Och som sagt och gjort har jag funnit DevOps-implementering som en spännande implementering på vägen att se från en organisationsförändring.
Vår kommande handledning kommer att förklara allt om DevOps och programvarutestning.
Rekommenderad läsning
- Fördjupade förklaringar om förmörkelser för nybörjare
- Kontinuerlig leverans i DevOps
- Kontinuerlig distribution i DevOps
- DevOps Testing Tutorial: Hur DevOps kommer att påverka QA-testning?
- Kontinuerlig integration i DevOps
- Kontinuerlig testning i DevOps
- Sammanfattning av DevOps Video Tutorials
- AWS CodeCommit Tutorial för DevOps Implementation in Cloud