Kmom01: Introduktion till DevOps
Det är en fullspäckat kurs där vi ska lära oss många ny verktyg och koncept. I kursen ska vi lära oss både om det kulturella inom devops men även det praktiska. Vi börjar med att skaffa en produktionsmiljö och bekantar oss med ett påbörjat projekt som ska kopplas till en CI kedja och driftsätta manuellt.
#Vad är devops?
Kolla på följande video för att få en introduktion till ämnet devops. Devops är ett brett ämne med många olika definitioner, här försöker skaparen av CM verktyget Chef beskriva konceptet och komma fram till en rimlig definition.
#Miljö
Tanken är att vi ska jobba med ett projekt igenom hela kursen och då behöver vi verktyg och program för att jobba med koden. Vi kommer ha både en lokal utvecklingsmiljö och en produktionsmiljö. Vi börjar med utvecklingsmiljön, som vi brukar kalla labbmiljö.
#Labbmiljön
Vi kommer att utöka vad som ingår i labbmiljön under kursen. Till en början behöver vi programmen som finns i installera labbmiljön. Det är rekommenderat att ha minst python version 3.8.
#Produktionsmiljö
När man jobbar enligt devops ska saker ofta gå snabbt och automatiskt, då underlättar det om man snabbt och enkelt kan starta upp och stänga ner servrar. Därför ska vi använda oss av en molntjänst, mer specifikt Microsoft Azure. OBS! logga inte in via den länken.
#Azure
För att få en introduktion till vad Azure är kan ni kolla in “What Is Azure?”.
Logga in på Azure med ditt studentinlogg och kolla sen på videon nedanför och skapa din första VM på Azure.
#Domännamn
Det underlättar dessutom om vi har ett domännamn som vi kan länka till en server. Om du inte redan har ett kolla in artikeln “GitHub Education Pack och ett domännamn”.
När du har fixat en domän, kolla på videon för att koppla ditt domännamn till servern du skapade ovanför i Azure.
#10 första minuterna
Nu ska vi logga in på servern och konfigurera den, gör Första 10 minuter på en server.
#Appen
Nästa steg är att bekanta dig med appen som du ska jobba på i kursen. Läs igenom och följ:
Introduktion till Devops appen.
#Driftsätt appen
Vi har en server och vi har en app, då måste vi lära oss driftsätta den. Om något går fel när du jobbar igenom artikeln och du inte riktigt vet hur du ska ångra det, skapa om servern i Azure och använd dig av skripten i repot för att snabbt göra de 10 första minuterna på en server och börja om med driftsättningen.
Jobba igenom “Driftsätta en Flask app” inloggad på din server, inte lokalt på din dator.
#Continues Integration
Vi vill ha en CI-kedja till repot så att testerna automatiskt körs när du gör push. I kursen har jag valt att använda GitHub Actions. Nu ska du läsa igenom en artikel som visar hur vi kan använda Actions för python projekt. När du gjort det ska du göra det för ditt forkade repo.
Läs igenom “Building and testing Python”.
När du pushar kod i ditt repo ska Actions köra alla unittester, integrationtester och validera koden. Använd dig av make kommandot make test
för att köra det. Du ska inte använda dig av flake8 som de gjorde i artikeln.
Jag rekommenderar att ni lägger till att cacha dependencies, då går det lite snabbare att köra allt.
#Video
Kursen innehåller föreläsningar som spelas in och därefter läggs i spellistan “devops streams ht22”.
I “kursen devops” hittar du alla videor som är kopplade till kursmomentet, de börjar på 1xx i namnet.
#Lästips
Bättre commit meddelanden:
- The seven rules of a great Git commit message. Ni kan också läsa stycket ovanför, i länken, om varför det är viktigt.
- Keeping Git Commit Messages Consistent with a Custom Template . I denna kursen kan ni t.ex. använda vilket kursmoment ni jobbar på i footern.
Semantisk versionshantering, en bra versionsstandard för projekt. Vi följer inte riktigt den i kursen för att jag vill ha ny siffra för varje kursmoment.
CHANGELOG, håll koll på vad som ändras mellan versionerna i ett projekt.
The 12 Factor App är en populär “standard” för att bygga Software-as-a-service och används mycket i devops sammanhang.
DevOps Roadmap Visar upp vanligaste verktygen man behöver kunna för att jobba med de tekniska delarna av devops.
- Här kan ni se vilka av verktygen vi kommer använda oss i kursen, i fylld devops roadmap
#Uppgifter
Följande uppgifter skall utföras och resultatet skall redovisas.
Lägg till funktionaliteten att följa andras blogginlägg. Jobba igenom Kom igång med followers.
Driftsätt den nya funktionaliteten på din server.
Koppla ditt repo till GitHub Actions. När du gör en commit ska Actions köra alla unittester, integrationtester och validera koden. Lägg till en Actions badge i README filen för repot.
Försäkra dig om att du har pushat repot med din senaste kod och taggat din inlämning med version v11.0.0. PS. vi ska göra ny tag varje kmom, ni börjar på v11.0.0 för att taggarna jag har skapat när jag har utvecklat repot inte ska blandas med era. Om du pushar kmom01 flera gånger kan du öka siffrorna efter 11:an.
#Läsanvisningar
I kursen ska ni läsa boken Effective DevOps. Boken är inte kopplad till kursmomenten, men den behövs när ni ska skriva rapporten i slutet av kursen. Ni kan själva välja upplägg för när ni läser den. Ett rekommenderat upplägg är att läsa en del, “part”, i veckan. Då har ni läst igenom hela boken efter kmom06.
Rekommendationen för denna veckan är att läsa “Part I. What is devops?”.
#Resultat & Redovisning
Det är ingen inlämning på Canvas för kmom01. Kmom01 redovisas tillsammans med kmom02 istället.
#Revision history
- 2022-10-26: (D, aar) Bytte ut CircleCi mot Github Actions.
- 2021-10-29: (C, aar) Slog ihop canvas inlämning med kmom02.
- 2020-10-20: (B, aar) Uppdaterade med Azure inför HT20.
- 2019-04-17: (A, aar) Första versionen släppt.