Kmom01: Introduktion till DevOps

By . Latest revision .

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 defenitioner, här försöker skaparen av CM verktyget Chef beskriva konceptet och komma fram till en rimlig definition.

Chef Style DevOps Kungfu - Adam Jacob Keynote - ChefConf 2015.

För de som vill gräva ner sig i den teoretiska delen och företagskulturen av devops rekommenderar jag boken Effective Devops. Läs kapitel 1-6.

#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.

#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?”.

What Is Azure?

Ett konto till Azure får du från skolan, du hittar länken på Canvas. Logga in via den länken och kolla sen på videon nedanför och skapa din första VM på Azure.

När ni skapar en VM till skillnad från i videon behöver ni under kategorin “Disks” ändra OS disk type från Premium SSD till Standard HDD.

101 Skapa server 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 en server på Digital Ocean”. I den görs mer saker än vad vi behöver göra så kolla bara på de två följande delarna:

  1. GitHub Education Pack

  2. En domän till din server (Du kan sluta läsa när det börjar handla om Digital ocean).

När du har fixat en domän, kolla på videon för att ditt domännamn till servern du skapade ovanför.

102 Koppla domän till Azure.

#10 första minuterna

Nu ska vi logga in på servern och konfigurera den. Vi utgår från en artikeln som är gjord för jsramverk kursen så några saker är inte exakt likadant.

När du loggar in på servern använd azureuser som användare istället för root.
Du behöver även byta till root användaren efter att du har loggat in, gör det med sudo su.
Du kan skippa följande kommandon:

apt-get remove --purge unscd
userdel -r debian

Brandväggsdelen är frivillig i och med att vi kommer styra portar till servern i Azure.

Gör nu Första 10 minuter på en server delen.

#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”.

#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 CircleCi. Nu ska du läsa igenom en artikel som visar hur vi kan använda CirclCi för python projekt. När du gjort det ska du göra det för ditt forkade repo.

Jobba igenom “Continuous Integration With Python: An Introduction”.

När du pushar kod i ditt repo ska CircleCi köra alla unittester, integrationtester och validera koden.

#Video

  1. Kursen innehåller föreläsningar som spelas in och därefter läggs i spellistan “devops streams ht20”.

  2. I “kursen devops” hittar du alla videor som är kopplade till kursmomentet, de börjar på 1xx i namnet.

#Lästips

  1. The 12 Factor App är en populär “standard” för att bygga Software-as-a-service och används mycket i devops sammanhang.

  2. DevOps Roadmap Visar upp vanligaste verktygen man behöver kunna för att jobba med de tekniska delarna av devops.

#Uppgifter

Följande uppgifter skall utföras och resultatet skall redovisas.

  1. Lägg till funktionaliteten att följa andras blogginlägg. Jobba igenom Kom igång med followers

  2. Koppla ditt repo till CircleCi. När du gör en commit ska CricleCi köra alla unittester, integrationtester och validera koden. Lägg till en CircleCi badge i README filen för repot.

  3. Försäkra dig om att du har pushat repot med din senaste kod och taggat din inlämning med version v1.0.0. Om du pushar kmom01 flera gånger kan du öka siffrorna efter 1:an.

  4. Inkludera en länk till ditt GitHub repo och din webbsida (domännamn) i din inlämning på Canvas.

#Resultat & Redovisning

Läs instruktionen om hur du skall redovisa.

Se till att följande frågor besvaras i texten:

  1. Vad var din uppfattning av devops för en vecka sen?

  2. Har det ändrats efter denna veckan?

  3. Hur skulle du definiera devops?

  4. Finns det något speciellt du vill lära dig i denna kursen?

  5. Vad tycker du om kmom01’s upplägg och storlek?

#Revision history

  • 2020-10-20: (B, aar) Uppdaterade med Azure inför HT20.
  • 2019-04-17: (A, aar) Första versionen släppt.

Document source.