Læringsplan for Microservices og Docker - Tobbekjaer/Portfolio GitHub Wiki
Læringsplan for Microservices og Docker (C#)
Læringscirkel 1 (Uge 34-35): Introduktion til Docker
Mål
- Viden: Opnå en grundlæggende forståelse af containerteknologi med fokus på Docker.
- Færdigheder: Lære at oprette, køre og administrere Docker-containere.
- Kompetencer: Bygge simple applikationer og køre dem i Docker-containere.
Læringsaktiviteter
- Litteratursøgning: Læs "Docker for Beginners" og den officielle Docker-dokumentation.
- Online kursus: Tag "Docker Crash Course" og "Docker Tutorial" på YouTube.
- Eksperimenter: Opret en simpel C#-konsolapplikation og kør den i en Docker-container og opret en webapp, hvor flere containere skal administreres samtidig.
Projekter
- Docker-applikation: Med Docker containeriserede jeg en simpel C#-konsolapplikation, der returnererer "Hello, Docker World!".
- My Docker Demo App: En simpel bruger-profil app bygget med JavaScript, Node.js som backend med mongo-express til database interface og mongodb til persistens. Alle komponenter er docker-baseret.
Evaluering af Læringscirkel 1: Introduktion til Docker
Jeg har fået godt styr på Docker og hvordan containerteknologi fungerer. Jeg har lavet nogle simple projekter, hvor jeg har kørt C#- og JS-applikationer i Docker-containere. Det var fedt at se, hvordan man kan orkestrere flere containere sammen med Docker Compose. Denne læringscirkel har givet mig et godt udgangspunkt for at arbejde videre med Microservices og Docker i mere komplekse scenarier.
Læringscirkel 2 (Uge 36-37): Grundlæggende Microservices i C#
Mål
- Viden: Forstå principperne bag microservices-arkitektur og dens fordele.
- Færdigheder: Udvikle og implementere en enkel microservice ved hjælp af C# og ASP.NET Core.
- Kompetencer: Udforske hvordan små, selvstændige services kan samarbejde for at skabe en større applikation.
Læringsaktiviteter
- Litteratursøgning: Læst "Building Microservices" af Sam Newman (kapitler 1-3), .NET Microservices Architecture for Containerized .NET Applications og "Microservices" af Martin Fowler.
- Online kursus: YouTube tutorials og introduktionskursus i microservices med C# "First ASP.NET Core Microservice with Web API CRUD Operations on a MongoDB database".
- Eksperimenter: Implementeringen af en CRUD microservice med C# og ASP.NET Core Web API.
Projekter
- Drone Pizza Delivery v1: En app med to microservices med Web API CRUD-operationer, en Docker Container, kører MongoDB til at gemme data and håndtering af message queues med RabbitMQ.
Evaluering af Læringscirkel 2: Grundlæggende Microservices i C#
I denne læringscirkel har jeg virkelig fået en fornemmelse af, hvad microservices-arkitektur går ud på, og hvorfor det er smart at bruge små, selvstændige services. Jeg brugt mere tid på tekstbaserede ressourcer, som bøger og tutorials, og selvom det tog længere tid, har det virkelig fået arbejdet ud i fingrene. Jeg har bygget en CRUD-microservice med C# og ASP.NET Core, og det har givet mig hands-on erfaring med at bygge API'er og arbejde med MongoDB. Mit projekt, Drone Pizza Delivery, gav mig en god forståelse af, hvordan flere microservices kan spille sammen. Det har været en vigtig milepæl i forhold til at nå mine langsigtede mål om at blive stærk inden for microservices.
Læringscirkel 3 (Uge 38-39): Docker Compose og Servicekommunikation med C#
Mål
- Viden: Lære hvordan man orkestrerer flere Docker-containere ved hjælp af Docker Compose.
- Færdigheder: Oprette et system med flere microservices, der kommunikerer med hinanden, ved hjælp af C#.
- Kompetencer: Implementere en distribueret applikation, hvor data deles mellem flere microservices.
Læringsaktiviteter
- Litteratursøgning: Studér Docker Compose dokumentation og tutorials.
- Online kursus: Følg .NET kurser om multi-container apps og Docker Compose samt brugen af Docker i sammenhæng med microservices med C#.
- Eksperimenter: Byg en applikation med to C#-baserede microservices, der kommunikerer via REST API'er, og orkestrer dem med Docker Compose.
Projekter
- Drone Pizza Delivery v2: En app med to microservices med Web API CRUD-operationer, en Docker Container, orkestreret med Docker Compose, kører MongoDB til at gemme data and håndtering af message queues med RabbitMQ.
Evaluering af Læringscirkel 3: Docker Compose og Servicekommunikation med C#
Denne læringscirkel har givet mig bedre styr på, hvordan man orkestrerer microservices med Docker Compose, og hvordan de kan kommunikere via REST API'er i C#. Jeg har virkelig fået øjnene op for, hvordan Docker og Microservices hænger sammen i forhold til hyppige udrulninger. Jeg glæder mig til at bruge denne viden i Museum Moss-projektet, hvor vi bygger en React-webapp. Jeg overvejer at køre både applikationen og WordPress-backenden i Docker, og måske hoste med Azure. Det bliver godt at afprøve mine nye færdigheder i et konkret projekt!
Læringscirkel 4 (Uge 40-41): Udviklingsmiljø i Docker og Headless CMS
Mål:
- Viden: Forstå, hvad et headless CMS er, med fokus på WordPress. Undersøg, hvordan man kan bruge en headless backend som WordPress, som virksomheden i vores 4. semester projekt allerede er fortrolige med.
- Færdigheder: Opsæt et udviklingsmiljø med Docker, hvor WordPress kører som et headless CMS. Udforsk WordPress REST API og forstå, hvordan det kan bruges til at levere data til en frontend.
- Kompetencer: Lær, hvordan et headless CMS giver udviklere større fleksibilitet ved at adskille backend og frontend, samt muligheden for at bruge værktøjer som React til frontend-udvikling.
Læringsaktiviteter:
- Headless CMS og WordPress: Lær, hvordan WordPress fungerer som et headless CMS, og hvilke fordele det giver, især i forhold til fleksibilitet og skalerbarhed.
- Docker Opsætning: Opsæt WordPress og MySQL i Docker-containere og administrer miljøet med Docker Compose.
- WordPress REST API: Undersøg, hvordan WordPress REST API fungerer, samt hvilke muligheder det giver udviklere til at hente og manipulere data via standardprotokoller som JSON.
Projekter:
- Museum Moss hjemmeside: Jeg har opsat Docker til at køre WordPress som backend og har undersøgt mulighederne med WordPress REST API for vores projekt. Frontend integrationen med React kommer i næste læringscirkel.
- REST API Undersøgelse: Jeg har kigget nærmere på WordPress REST API og set, hvordan det giver os fleksibilitet til at hente data og vise det i en fremtidig React-frontend.
Evaluering af Læringscirkel 4: Udviklingsmiljø i Docker og Headless CMS:
I denne læringscirkel har jeg lært, hvordan et headless CMS kan skabe en fleksibel løsning, hvor backend og frontend er frakoblet. Selvom jeg ikke har integreret React endnu, har jeg forstået mulighederne og fordelene ved at bruge WordPress REST API til at kommunikere med frontend. Jeg vil fortsat arbejde videre med Docker-opsætningen for at sikre et stabilt udviklingsmiljø, og jeg ser frem til at arbejde videre med integrationen af dette i næste læringscirkel.