Skala kub
Skalkuben är en teknologimodell som indikerar tre metoder (eller tillvägagångssätt) genom vilka teknikplattformar kan skalas för att möta ökande efterfrågan på systemet i fråga. De tre tillvägagångssätten som definieras av modellen inkluderar skalning genom replikering eller kloning ("X-axeln"), skalning genom segmentering längs tjänstegränser eller olika komponenter ("Y-axeln") och segmentering eller partitionering längs liknande komponenter ("Z-axeln" ).
Historia
Modellen publicerades först i en bok i den första upplagan av The Art of Scalability . Författarna hävdar att modellen först publicerades online 2007 i sin företagsblogg. Efterföljande versioner av modellen publicerades i den första upplagan av Scalability Rules 2011, den andra upplagan av The Art of Scalability 2015 och den andra upplagan av Scalability Rules 2016.
Modellöversikt
Modellens X-axel beskriver skalning av en teknologilösning genom flera instanser av samma komponent genom kloning av en tjänst eller replikering av en datamängd. Webb- och applikationsservrar som utför samma funktion kan finnas bakom en lastbalanserare för att skala en lösning. Databeständighetssystem såsom en databas kan replikeras för högre transaktionsgenomströmning. Y-axeln i modellen beskriver skalning av en teknisk lösning genom att separera en monolitisk applikation i tjänster med hjälp av handlingsord (verb), eller separera "olika" saker. Data kan separeras med substantiv. Tjänster bör ha de uppgifter som de agerar på separerade och isolerade till den tjänsten. Kubens Z-axel beskriver skalning av en teknologilösning genom att separera komponenter längs "liknande" gränser. Sådana separationer kan göras på geografisk basis, längs kundnummer etc.
X-axel
X-axelskalning är den mest använda metoden och tenderar att vara den enklaste att implementera. Även om det är potentiellt kostsamt, tenderar den hastighet med vilken det kan implementeras och börja lindra problem att kompensera kostnaderna. X-axeln tenderar att vara en enkel kopia av en tjänst som sedan är lastbalanserad för att antingen hjälpa till med toppar i trafiken eller serveravbrott. Kostnaderna kan börja bli överväldigande, särskilt när det gäller uthållighetsnivån.
Fördelar med X-axelskalning
- Intellektuellt lätt
- Skalar transaktioner väl
- Snabbt att implementera
Nackdelar med X-axelskalning
- Kostnad (flera databaskopior)
- Adresserar inte cachning
- Tar inte upp organisatorisk skala
Y-axel
Y-axelskalning börjar bryta bort bitar av monolitiska kodbaser och skapar separata tjänster, eller ibland mikrotjänster. Denna separation skapar tydligt definierade körfält för inte bara ansvar och ansvarighet, utan också för felisolering. Om en tjänst misslyckas, bör den bara slå ner sig själv och inte andra tjänster.
Fördelar med Y-axelskalning
- Möjliggör organisatorisk skala
- Skalar transaktioner väl
- Felisolering
- Ökar cacheminnets träfffrekvens
Nackdelar med Y-axelskalning
- Intellektuellt svårt
- Tar tid att implementera
Z-axel
Z-axelskalning tittar vanligtvis på liknande användningsfall av data. Oavsett om det är geografiskt till sin natur eller hur kunder använder din webbplats, eller till och med bara en slumpmässig modul av din kunddatauppsättning. Z-axeln delar upp kunder i sekvestrerade sektioner för att gynna svarstiden och för att hjälpa till att eliminera problem om en viss region eller sektion skulle gå ner.
Fördelar med Z-axelskalning
- Intellektuellt lätt
- Skalar transaktioner väl
- Kan ge felisolering
- Kan förbättra svarstiderna
Nackdelar med Z-axelskalning
- Tar tid att implementera
- Tar inte upp organisatorisk skala
- Kräver ökad automatisering för att minska systemkostnader