KURSPLAN
Skalbara och feltoleranta system, 7,5 högskolepoäng
Scalable and Fault Tolerant Systems, 7.5 credits
Kursplan för studenter vår 2024
Kurskod:TSFN14
Fastställd av:VD 2023-03-01
Reviderad av:Utbildningschef 2023-11-15
Gäller fr.o.m.:2024-01-01
Version:2
Utbildningsnivå:Grundnivå
Utbildningsområde:Tekniska området
Ämnesgrupp:DT1
Fördjupning:G2F
Huvudområde:Datateknik

Lärandemål

Efter genomgången kurs skall studenten

Kunskap och förståelse

- visa kunskap om tekniker för att distribuera data och beräkningar över flera datorer parallellt (MapReduce, data sharding, distribuerade filsystem, etcetera) samt dessas begränsningar/prioriteringar (CAP, PACELC, ACID, etcetera)

Färdighet och förmåga

- visa färdighet i att utveckla flertrådad mjukvara i ett högnivåspråk
- visa förmåga att tillämpa etablerade systemarkitekturer och designmönster för utveckling av skalbara och feltoleranta system hos en molnleverantör
- visa förmåga att implementera kontinuerliga testnings- och deployment-pipelines för driftsättning hos en molnleverantör
- visa förmåga att tillämpa tekniker för mätning av belastning samt automatisk skalning av system hos en molnleverantör

Värderingsförmåga och förhållningssätt

- visa färdighet att för ett givet utvecklingsprojekt utvärdera, föreslå, och implementera lämpliga tekniker, komponenter och arkitekturer.

Innehåll

Kursen syftar till att lära studenterna utveckla skalbara och feltoleranta backend-tjänster för driftsättning hos molnleverantörer. Kursen bygger vidare på och kompletterar tidigare i programmet utvecklade kunskaper om programmering, metoder för mjukvaruutveckling och testning, och webben som driftplattform. Kursen ger också en bred förståelse för utveckling av parallella och distribuerade system.

Kursen innehåller följande moment:
- Parallellprogrammering (trådar/processer, locking, mutexar, semaforer, etcetera)
- Distribuerade systemarkitekturer
- Designmönster för cloud computing
- Integrationstestning
- Lasttestning och kostnadsberäkning för molntjänster
- Container orchestration

Undervisningsformer

Föreläsningar, övningar och laborationer.

Undervisningen bedrivs normalt på svenska men undervisning på engelska kan förekomma.

Förkunskapskrav

Grundläggande behörighet samt genomgångna kurser på grundnivå 60 hp, inklusive Webbutveckling 7,5 hp och Mjukvaruutveckling 7,5 hp (eller motsvarande kunskaper).

Examination och betyg

Kursen bedöms med betygen 5, 4, 3 eller Underkänd.

Poängregistrering av examinationen för kursen sker enligt följande system:
ExaminationsmomentOmfattningBetyg
Tentamen13,5 hp5/4/3/U
Laboration4 hpU/G
1 Bestämmer kursens slutbetyg vilket utfärdas först när samtliga moment godkänts.

Kurslitteratur

Kurslitteraturen fastställs 8 veckor innan kursstart.

Titel: Distributed Systems, 4th ed.,
Författare: M. van Steen och A.S. Tanenbaum
Förlag: distributed-systems.net, 2023

Titel: Azure Application Architecture Guide
Förlag: Microsoft Press, 2022
URL: https://azure.microsoft.com/en-us/blog/azure-application-architecture-guide