Skalerbarhed Flashcards
Hvad er skalering?
En computers eller netværk evne til at virke i takt med antallet af brugere stiger.
Hvad er direkte kommunikation?
Når to parter taler direkte til hinanden, f.eks. bluetooth eller et kabel.
Hvad er indirekte kommunikation?
Når to parter taler til hinanden via. et mellemled, f.eks. Facebook igennem en server.
Forklar Public Subscribe i forbindelse med indirekte kommunikation
Public subscribe er en måde at abonnere og distribuere data på.
- En publisher sender en besked
- Mellemleddet f.eks. en server modtager besked
- Mellemleddet sender beskeden ud til de subscribers, der er registreret til at modtage beskeden.
Forklar forskellen på http og websockets
http: Klienten skal spørge serveren om noget, for at få noget retur fra serveren. Forbindelse åbnes ved request, og lukkes når data er sendt tilbage.
Websockets: En server kan sende data til en klient uden, at klienten har spurgt først. Forbindelse er åben konstant.
Hvilket begreb bruges om en besked, der sendes ud ti alle? (Hint: Oversvømmelse)
Flooding
Nævn udfordringerne ved public subscribe
- Kræver mange ressourcer
- Skalering via. database, som ofte skal køre i et cluster
- Heartbeating (Når én enhed spørger en anden om den er vågen)
- Ofte implementeret via. websockets, men mange firewalls tillader ikke protokollen, hvorfor de fleste typisk bruger http.
Hvad består et operativ system af?
- Applikationer
- Selve systemet
- Hardware
Hvad er message queus?
Det betyder at parkere noget et sted til senere brug.
En message que kan modtage beskeder og sende dem afsted enten en efter en eller parallelt for bedre udnyttelse af ressourcer på tværs af netværk.
Hvilke fordele er der ved message queus?
- Det skaber asynkronitet, som betyder at klienterne skriftligt kan kommunikere sammen, men at der som oftest er en tidsforskydning i kommunikationen.
- Det skaber atomicitet: Enten lykkes det eller også lykkes det ikke.
Hvad er en computers kerne?
Det sted, som det hele foregår. Fungerer som koordinator og kommunikation for at få applikationer til at få adgang til computerens processor (CPU) eller hukommelse (RAM).
Hvad er en proces?
En proces er en opgave, igangsat af en applikation.
En proces har en hvis mængde ressourcer til rådighed (typisk %-andel af CPU).
Copy-on-write metoden gør, at en proces ikke bruger hukommelse, før det er nødvendigt.
Hvad er tråde?
En tråd er et redskab en proces kan bruge til at afvikle en instruktion.
En proces indeholder altid en tråd, som er en slags instruktion, som processen skal udføre.
Hvad er virtualisering?
Form for distribuering af et system, som gør at man kan køre flere forskellige ting på sin server samtidigt. Køre flere forskellige ting på et server samtidigt.
Forklar de tre metoder til distribueret schedulering
- First in, first out: Instruktionen afvikles i den rækkefølge, som de modtages i.
- Shortest time remaining: Instruktioner afvikles alt efter hvilke instruktioner, der tager kortest tid.
- Round robin: Giver alle instruktioner en del af den samlede CPU-tid. Hvis en instruktion ikke når at blive færdig indenfor tidsrammen, går den videre til næste instruktion.
Hvilket komponenter består Giant Scale Services af?
- Klienter
- Netværk
- Load balancers
- Servere
- Fysiske datalag (Storage, hvor man kan gemme data i)
Hvad er et cluster of workstations?
En samling af enheder/computer, der er forbundet til hinanden og taler med hinanden.
Hvad er fordelene ved et cluster?
- Nemme at skalere både horisontalt og vertikalt
- Tilsammen er pålidelige (Høj fejltolerance)
- Relativt billige at bygge
Hvad er ulemperne ved et cluster?
- Svært at veligeholde, da man skal holde styr på mange servere
- Det er ofte en udfordring for et cluster at få serverne til at blive enige om én værdi
Hvad betyder soft state?
At gemme data, hvis en computer går ned.
Hvad betyder fejltolerance?
Evnen til at håndtere fejl, hvis et system går ned.
Hvordan kan blive fejltolerant?
Eksempelvis ved at spejle data flere forskellige steder, og dermed gøre data tilgængeligt fra forskellige kilder.
Hvilke to metoder findes der til at gøre data tilgængeligt fra forskellige kilder?
- Replication: Data bliver kopieret fra database til database
- Sharding: Stort datasæt og opdeler det efter en egenskab i datasættet. F.eks. register over danskere. Her kan man opdele navnene alt efter dem, der starter med A-H, der lægges på én server, I-K etc.
Hvad betyder et burst?
Når mange går ind på en service samtidig, dvs. når trafikken er høj på en side.
Hvilken rolle har en load balancer?
Den fordeler trafikken fra klienten, og finder ud af hvilken server, der skal modtage denne trafik således, INGEN server har 100% CPU.
Hvad betyder caching?
Kunsten af gemme noget, som man sender til nogen uden at opdatere det hver gang. Tænk Proxy server, der kan cache en hjemmeside.
Giv et eller flere eksempler på Giant Scale Services
Google, Facebook, Amazon etc.
Kan man skalere en bærbar computer?
Ja, man kan skalere vertikalt ved at sætte flere RAM i, udskifte harddisken etc.
Kan man skalere en server?
Ja, man kan skalere vertikalt ved at sætte flere RAM i, udskifte harddisken etc.
Hvad er vertikal skalering?
Når man opgraderer en computer ved at give den en større processor, mere hukommelse (RAM) etc. Dvs. man skalere den ene enhed, man har.
Hvad er horisontal skalering?
Når man opgraderer en service ved at sætte to eller flere servere sammen i et cluster. Dvs. man udvider til flere enheder.
Kan man blive ved med at skalere vertikalt?
Nej, der er maximum på f.eks. antal RAM i en computer.
Kan man blive ved med at skalere horisontalt?
Det kan man godt, da man kan tilføje flere servere til en cluster, men husk på, at de skal koordineres med samme værdi, som er sværere jo flere servere, man har.
Forklar Brewer’s theorem
Består af tre faktorer:
- Consistency: Alle data er ens
- Availability: Alle data er tilgængeligt
- Partition tolerance: Alle data kan overleve nedbrud
Man kan ikke få alle tre faktorer i et distribueret system
Hvad betyder high availability?
Et distribueret system er bygget til at fejle
Hvad betyder race conditions?
Når der går kuk i hvilke værdier, der er tilgængelig hvornår. Et system kan være afhængig af, at nogle sekvenser sker i en bestemt rækkefølge. Hvis dette ikke sker, forekommer der fejl, hvilket er race conditions.
Hvad betyder fast recovery?
Hvis et system går ned, så er det evnen til at genfinde de data, som er gemt.
Hvad er big data?
Stor mængde ustruktureret data