Læringsmål:

Viden:
Den studerende har:
Viden om microservices-arkitekturens principper, herunder modularitet, løst koblede services, og hvordan disse kan understøtte agil udvikling og deployment.
Forståelse for Domain-Driven-Design (DDD), med særligt fokus på 'bounded contexts', og hvordan dette kan anvendes til at strukturere og etablere en robust microservice-arkitektur.
Forståelse for asynkron kommunikation via message queues som RabbitMQ, og hvordan dette understøtter løs kobling og skalerbarhed mellem services.
Viden om arkitekturmæssige mønstre som API Gateway og Service Mesh, og hvordan de understøtter observability, sikkerhed, og kommunikation i microservices-arkitekturer.
Forståelse for begreber som load-balancing, horisontal skalering og betydningen af stateless design i microservices.

Færdigheder:
Den studerende kan:
Anvende Domain-Driven-Design-principper til at designe og implementere microservices baseret på bounded contexts.
Opsætte asynkron servicekommunikation mellem microservices ved brug af RabbitMQ og sikre korrekt konfiguration af message queues.
Konfigurere en API Gateway til at håndtere routing, load-balancing og sikkerhed for servicekommunikation.
Containerisere microservices og implementere orkestreringsværktøjer som Docker Compose eller Kubernetes til deployment og skalerbarhed.
Opsætte overvågnings- og logging-løsninger (f.eks. med Grafana og Prometheus) for at skabe indsigt i servicekommunikation og ydeevne.
Anvende værktøjer som k6 eller JMeter til at teste ydeevnen af microservices og identificere flaskehalse.

Kompetencer:
Den studerende kan:
Udvikle og implementere en skalerbar og robust microservice-arkitektur, der muliggør kontinuerlig integration og deployment (CI/CD).
Optimere microservice-arkitektur for både ydeevne og ressourceforbrug, med særligt fokus på kommunikationsmønstre og belastning.
Identificere og løse komplekse problemer i en microservices-arkitektur, f.eks. fejl i inter-service kommunikation eller performance-issues.
Samarbejde effektivt i faglige og tværfaglige projekter om at planlægge, designe, udvikle og dokumentere microservice-løsninger, herunder definere API-kontrakter og håndtere serviceafhængigheder.
Integrere sikkerhedsprincipper som autentificering, autorisering og kryptering i microservices-arkitekturen uden at gå på kompromis med performance eller brugervenlighed.