Almindelige mønstre for automatisk skalering
I dette undermodul kigger vi på mønstre til automatisk skalering.
Automatisk skalering er ikke en øjeblikkelig løsning. Hvis du blot føjer ressourcer til et system eller kører flere forekomster af en proces, garanterer det ikke en forbedret ydeevne for systemet. Overvej følgende punkter, når du designer en strategi for automatisk skalering:
Anbefalinger
Identificer flaskehalse: Udskalering er ikke en magisk løsning på alle problemer med ydeevnen. Hvis din backenddatabase f.eks. er flaskehalsen, hjælper det ikke at tilføje flere webservere. Identificer og løs flaskehalse i systemet, før du kaster flere forekomster af problemet. Stateful dele af systemet er den mest sandsynlige årsag til flaskehalse.
Opbyg arbejdsbelastninger ved hjælp af skalerbarhedskrav: Programmer består ofte af flere arbejdsbelastninger med forskellige krav til skalering. Et program kan f.eks. have et offentligt websted og et separat administrationswebsted. Det offentlige websted kan opleve pludselige trafikstigninger, mens administrationswebstedet har en mindre, mere forudsigelig belastning.
ressourcetunge opgaver: Opgaver, der kræver mange CPU- eller I/O-ressourcer, skal flyttes til baggrundsjob, når det er muligt. Aflastningsopgaver minimerer belastningen på frontend, der håndterer brugeranmodninger.
Brug indbyggede funktioner til automatisk skalering: Hvis programmet har en forudsigelig, regelmæssig arbejdsbelastning, skaleres efter en tidsplan. Skaler f.eks. ud i arbejdstiden. Ellers kan du bruge målepunkter for ydeevne, f.eks. CPU eller kølængde for anmodninger, til at udløse automatisk skalering, hvis arbejdsbelastningen ikke er forudsigelig.
Overvej aggressiv automatisk skalering af kritiske arbejdsbelastninger: I forbindelse med kritiske arbejdsbelastninger vil du være på forkant med efterspørgslen. Det er bedre at tilføje nye forekomster hurtigt under kraftig belastning for at håndtere den anden trafik og derefter gradvist skalere tilbage.
Design til skalering i: Husk, at programmet med elastisk skalering har skaleringsperioder, når forekomster fjernes. Programmet skal håndtere de forekomster, der fjernes, korrekt. Her er nogle måder at håndtere scale-in på:
- Lyt efter lukningshændelser, når de er tilgængelige, og luk dem rent.
- Understøtter midlertidig fejlhåndtering, og prøv igen.
- Overvej at opdele arbejdet for langvarige opgaver.
- Sæt arbejdselementer i kø, så en anden forekomst kan hente arbejdet, hvis en forekomst fjernes midt i behandlingen.
Meddelelser
- Alle fejl i autoskalering logføres i aktivitetsloggen. Du kan derefter konfigurere en aktivitetslogbesked, der giver dig besked via mail, kort meddelelsestjeneste (SMS) eller webhooks, når der er en fejl i autoskalering.
- På samme måde sendes alle vellykkede skaleringshandlinger til aktivitetsloggen. Du kan derefter konfigurere en aktivitetslogbesked, så du kan få besked via mail, SMS eller webhooks, når der er en vellykket autoskaleringshandling. Du kan også konfigurere mail- eller webhookmeddelelser for at få besked om vellykkede skaleringshandlinger via fanen Meddelelser under indstillingen for automatisk skalering.
Almindelige mønstre til skalering af din ressource i Azure
Skaler baseret på behov
Du kan automatisk udskalere antallet af tjenesteforekomster i starten af arbejdsdagen, når kundeefterspørgslen stiger. I slutningen af arbejdsdagen skaleres automatisk i antallet af programforekomster for at minimere ressourceomkostninger natten over, når anvendelsen af programmet er lav.
Skaler forskelligt på hverdage i forhold til weekender
På en aften eller weekend kan du have lavere programefterspørgsel. Hvis denne belastning er konsekvent over en periode, kan du konfigurere regler for automatisk skalering for at reducere antallet af tjenesteforekomster i skaleringssættet. Hvis du bruger denne skaleringshandling, reduceres omkostningerne ved at køre dit skaleringssæt, fordi du kun kører det antal forekomster, der kræves for at opfylde den aktuelle efterspørgsel.
Skaler forskelligt under helligdage
Hvis du har et stort forbrug af en tjeneste i visse dele af måneden eller regnskabscyklussen, kan du automatisk skalere antallet af tjenesteforekomster for at imødekomme deres ekstra krav. Når der er en marketingbegivenhed, en kampagne eller et ferieudsalg, kan du automatisk skalere antallet af tjenesteforekomster forud for forventet kundeefterspørgsel.
Skaler baseret på brugerdefineret metrikværdi
Endelig er det bedst at definere reglerne for automatisk skalering omhyggeligt. Et Denial of Service-angreb (DoS) vil f.eks. sandsynligvis resultere i en storstilet tilstrømning af indgående trafik. Forsøg på at håndtere en stigning i anmodninger forårsaget af et DoS-angreb ville være frugtesløst og dyrt. Disse anmodninger er ikke ægte og bør kasseres i stedet for behandles. En bedre løsning er at implementere registrering og filtrering af anmodninger, der opstår under et sådant angreb, før de når din tjeneste.
Når du har konfigureret reglerne for automatisk skalering, skal du overvåge programmets ydeevne over tid. Brug resultaterne af denne overvågning til at justere det mønster, som systemet skalerer i, hvis det er nødvendigt.