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 Amason Web Services (AWS).

#AWS

För att få en introduktion till vad AWS är kan ni kolla in “AWS in 10 minutes”.

AWS in 10 minutes.

Sen behöver du skaffa ett konto på AWS, som student kan man skapa ett gratiskonto och få 100$ i kredit gör till och med steg 10 i AWS Educate starter account. Om du redan har ett konto på AWS kan du få 75$ i kredit på det. Gör då sida 4 och 5 i Creating an aws account for students….

Skapa en server på AWS.

101 Skapa server på AWS.

#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å delen GitHub Education Pack och En domän till din server (Du kan sluta läsa när det börjar handla om Digital ocean).

Koppla ditt domän namn till servern.

102 Koppla domän till AWS.

#10 första minuterna

Gör sen Första 10 minuter på en server delen. Tänk på att logga in med användaren admin istället för root. När du har loggat in vill du däremot byta till root användaren innan du fortsätter, 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 använda oss av security groups i AWS för att kontrollera kopplingar till servern.

#Appen

Nästa steg är att bekanta oss 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 en Flask app”. Om något blir fel och du inte riktigt vet hur du ska ångra det, skapa om servern i AWS 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.

#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. Läs igenom “Continuous Integration With Python: An Introduction” för att se hur man kan sätta upp CircleCi för ett Python projekt och gör det sen för ditt forkade repo.
När du pushar din kod 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”.

  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 Miguels guide för att följa andra OBS! koden kommer inte fungera rakt av, t.ex. när Miguel skapar routes skriver han app men ni behöver använda bp. Se till att de nya testerna går igenom och driftsätt den nya versionen på din server. Testerna kommer inte heller fungera rakt av, Miguel använder sig av unittest modulen medan vår microblog använder pytest. Ni behöver skicka med test_app som parameter för att kunna använda databasen i testerna.

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

  • 2019-04-17: (A, aar) Första versionen släppt.

Document source.