Distribuerede systemer
Opsummering
Distributed systems er en samling af computerprogrammer eller komponenter, der arbejder sammen på tværs af flere separate computere eller enheder for at opnå et fælles mål.
*Billede fra Atlassian*
Kilder:
- Atlassian - What is a distributed system
- Splunk - Distributed Systems Explained
- Wiki - Distributed Computing
Grundlæggende karakteristika
- Ressourcedeling: Distributed systems kan dele hardware, software eller data på tværs af netværket 1.
- Samtidig behandling: Flere maskiner kan udføre samme funktion samtidigt 1.
- Skalerbarhed: Beregnings- og behandlingskapaciteten kan skaleres op efter behov ved at tilføje flere maskiner 1.
- Fejltolerance: Hvis en enkelt komponent fejler, fortsætter resten af systemet med at fungere 3.
Arkitektur og komponenter
Distributed systems består typisk af:
- Noder: Separate computere eller enheder i netværket.
- Kommunikationsnetværk: Tillader noderne at udveksle beskeder og koordinere deres handlinger 3.
- Middleware: Software, der faciliterer kommunikation og dataadministration mellem noderne.
Fordele ved distributed systems
- Øget ydeevne: Ved at fordele arbejdsbyrden kan systemet håndtere større opgaver mere effektivt 2.
- Pålidelighed: Redundans i systemet reducerer risikoen for komplet systemnedbrud 2.
- Fleksibilitet: Systemet kan nemt udvides eller opgraderes ved at tilføje nye noder 2.
- Geografisk distribution: Muliggør samarbejde og ressourcedeling på tværs af forskellige lokationer1.
Udfordringer
- Kompleksitet: Distributed systems er ofte mere komplekse at designe, implementere og vedligeholde 3.
- Konsistens: At sikre datakonsekvens på tværs af alle noder kan være udfordrende.
- Netværksproblemer: Latens og netværksfejl kan påvirke systemets ydeevne og pålidelighed.
Anvendelsesområder
Distributed systems finder anvendelse i mange områder, herunder:
- Cloud computing
- Databaser (f.eks. distribuerede databaser)
- Mikroservicearkitekturer
- Internet of Things (IoT)
Distributed systems er grundlaget for mange moderne teknologier og tjenester, der kræver høj ydeevne, skalerbarhed og pålidelighed.