Kurs från 2020-08-31 till 2020-10-08
Lektion 3 av 12, måndag den 7:e september 2020
Målet med denna lektion är ge en introduktion till ämnet containrar. Där finns fler olika container system, men vi kommer att fokusera på Docker.
Lektion från kl. 8:30 till kl. 16:30
Lunch 12:00 till 13:00
Detta är material (artiklar, videoer, blogs, podcasts etc) som är den teoretiska bas för denna lektion, det antas att du har läst/set/lystnad detta innan lektionen starter. Detta är inte prioriterat eftersom allt är viktigt
Total:
Detta är vilka delar av den frivilliga bok (Learn Azure In A Month of Lunches) som är releavant för denna lektion
Detta är litteratur som är frivillig, och som kan kan används till at få en djupare insikt i dagens ämnen. Oftast förklara det bakgrunden till dagens lektionsteori, går mer på djupet med ämne eller han har en annan vinkel på det samma material.
△Computer Stuff They Didn’t Teach You : Containers? So What? Docker 101 Explained
△5 Container Alternatives to Docker
◯Wikipedia: OS-level virtualization
▽Introducing GitHub Container Registry
◯Wikipedia Docker (software)
△21 Days of Docker, en bra samling av artiklar
◯Online kurs: Docker for beginners
◯A quick introduction to Docker tags
▽Github: DotNet Docker
▽ Comparison: AWS Fargate vs. Google Cloud Run vs. Azure Container Instances
△Video (9 min) Virtual Machines vs Docker Containers - Dive Into Docker
▽ Where are Docker Images Stored? Docker Container Paths Explained
▽Artikel: Exploring a Docker Container’s Filesystem
▽Video (13 min): Azure Container Instances (ACI) under the hood
Video (14 min): Pros and cons of stable and unique tags in Docker image tagging
〰Kurs (310 min): Microsoft Learn: Administer containers in Azure
▽Artikel: Dockerless - series
▽Artikel: Docker, FROM scratch
◯Azure Container Orchestration 101: Azure Web Apps vs ACI vs AKS
△Video (32 min), Computer Stuff They Didn’t Teach You: Kubernetes and Container Orchestration 101
◯Online kurs (60 min): Kubernetes 101
◯A Kubernetes story: Phippy goes to the zoo
△Azure Kubernetes Service (AKS)
▽ Video (8 min): Technically Speaking: Clayton Coleman on the History of Kubernetes
▽ Video (7 min): A conversation with Brendan Burns: What is Kubernetes?
△Video (55 min) Introduction to Microservices, Docker, and Kubernetes
▽ Video (7 min): How Kubernetes deployments work
〰e-bok: The Kubernetes Book
▽Helm - The package manager for Kubernetes
Dagens blogg ska innehålla:
Skriv en tutorial i stil med dissa (1 eller 2), men vart i stället ta utgångspunkt i dissa övningar, lägg gärna till litet teori (vad är en container etc).
OBS Akta vad ni skriver i eran blogg, så att ni inte skriver lösenord etc.
Namnge dagens blogg 03.md, ni får själv välja om ni vill ha en stor blogg som innehåller alla dagens övningar, eller om ni delar upp den i fler delar, i så fall ska ni namnge delarna som: 03a.md, 03b.md etc.
Vi har nu en webb applikation som vi vill gör om till en container, och i första vända kunna köra lokalt på vår dator, men i senare övningar få den at köra i molnet.
Mål med denna övning: Bygg en container som kan hålla Hello World webb applikationen (samma om vi använda i förra lektion). Och få applikationen att köra i Docker, så att du kan komma åt den med webbläsare: localhost:80.
Hints:
Blogg:
Ni har nu en Docker container som innehåller vår Hello World applikation
Mål med denna övning: Gör en Docker compose fil som kan köra din nya Hello World-Docker container
docker-compose.yml
fil som beskivar hur eran docker container ska köras
docker-compose up
Docker Compose är speciellt smidigt för lokala utvecklingsmiljö vart man har behov av flera containers (services) jobbar ihop i en applikation. I detta exempel är där endast en service så där finns inte ett jätte behov av en compose fil, men så fort applikationen växer blir den relevant.
OBS: Ni kommer inte att använda denna compose fil mer i denna övning
Ni har nu en Docker container som innehåller vår Hello World applikation (och en Docker Compose definition).
Mål med denna övning: Är att skåpa ett Docker image och publicera det till “Github packages” eller “Azure container registry”. Ni väljer själv vilken av dom två system ni vill använda.
Hints:
OBS: Detta behövs för att kunna hosta ert image på en annan maskin eller server (man måste kunna komma åt imaget från internet).
Ni kan nu testa att köra ert image via Play with Docker, beskriv också detta i eran blogg.
Ni har nu skåpat ett Docker image som ligger tillgängligt på internet (äntlig på Github eller Azure), och denna övning handlar om att få vår container att köra någon stans i molnet.
Där finns många sätt at få den att köra i Azure och vi kommer att träna två ACI och AKS. Vart AKS är det mer avancerade variant.
Mål med denna övning: är att deploy ert docker image till ACI. ACI använder man primärt till projekt vart containern ska leva i kort tid, och därför är det bra för vår experiment.
Artikel (3 min): What is Azure Container Instances?
Hints:
Hints:
Publicera containern med ert nya API
Se till att båda eran Hello World sida och eran API ligger i ACI
Dissa är extra övningar ni kan göra om ni har tid över, de kan göras i den ordning ni känner för
Som ni kanske har känt kräver det mycket kommandon med CLI eller klick i portalen att få sina Docker images att köra i ACI
Målet med denna övning är att automatisera alla dissa kommandon/klick med Pulumi.
Hints:
Ni har nu två containrar (Web + API), det är fortfarrent en liten applikation, men kan redan nu börja att få njuta av att använda Kubernetes till att “konfigurera” hela applikationen (API + web).
Mål med denna övning är att orkestrera era Docker containrar med Kubernetes på AKS
Hints:
Video (6 min): Using Azure Container Instances w/Azure Container Registry, Azure Container Service and Kubernetes
Video (57 min): Kubernetes-Getting Started with Azure Container Service AKS
Målet med denna övning är att automatisera konfigurationen av AKS med Pulumi.
Hints: