Vanlige autoskaleringsmønstre
I denne enheten ser vi på mønstre for autoskalering.
Autoskalering er ikke en umiddelbar løsning. Bare å legge til ressurser i et system eller kjøre flere forekomster av en prosess garanterer ikke forbedret ytelse for systemet. Vurder følgende punkter når du utformer en strategi for autoskalering:
Anbefalinger
Identifisere flaskehalser: Utskalering er ikke en magisk løsning for alle ytelsesproblemer. Hvis for eksempel bakdatabasen er flaskehalsen, hjelper det ikke å legge til flere nettservere. Identifiser og løs flaskehalsene i systemet før du kaster flere forekomster på problemet. Tilstandsfulle deler av systemet er den mest sannsynlige årsaken til flaskehalser.
Dekomponer arbeidsbelastninger etter skalerbarhetskrav: Programmer består ofte av flere arbeidsbelastninger med ulike krav til skalering. Et program kan for eksempel ha et offentlig område og et eget administrasjonsområde. Det offentlige nettstedet kan oppleve plutselige økninger i trafikken, mens administrasjonsområdet har en mindre, mer forutsigbar belastning.
Avlaste ressursintensive aktiviteter: Aktiviteter som krever mange CPU- eller I/O-ressurser, bør flyttes til bakgrunnsjobber når det er mulig. Avlasting av oppgaver minimerer belastningen på fronten som håndterer brukerforespørsler.
Bruk innebygde autoskaleringsfunksjoner: Hvis programmet har en forutsigbar, vanlig arbeidsbelastning, skalerer du ut etter en tidsplan. Skaler for eksempel ut i arbeidstiden. Ellers, hvis arbeidsbelastningen ikke er forutsigbar, kan du bruke ytelsesmåledata som CPU eller be om kølengde for å utløse automatisk skalering.
Vurder aggressiv autoskalering for kritiske arbeidsbelastninger: For kritiske arbeidsbelastninger ønsker du å holde deg i forkant av etterspørselen. Det er bedre å legge til nye forekomster raskt under tung belastning for å håndtere den andre trafikken, og deretter gradvis skalere tilbake.
Utforming for skalering i: Husk at med elastisk skala har programmet perioder med skala i, når forekomster fjernes. Programmet må håndtere forekomster som fjernes på en grasiøs måte. Her er noen måter å håndtere skalering på:
- Lytt etter avslutningshendelser når de er tilgjengelige og avslutt rent.
- Støtte midlertidig feilhåndtering og prøv på nytt.
- Vurder å bryte opp arbeidet for langvarige oppgaver.
- Plasser arbeidselementer i en kø, slik at en annen forekomst kan hente arbeidet hvis en forekomst fjernes midt i behandlingen.
Varslinger
- Alle autoskalafeil logges på aktivitetsloggen. Deretter kan du konfigurere et aktivitetsloggvarsel som varsler deg via e-post, Short Message Service (SMS) eller webhooks når det oppstår en autoskalafeil.
- På samme måte publiseres alle vellykkede skaleringshandlinger i aktivitetsloggen. Deretter kan du konfigurere et aktivitetsloggvarsel slik at du kan bli varslet via e-post, SMS eller webhooks når det er en vellykket autoskalahandling. Du kan også konfigurere e-post- eller webhook-varsler for å bli varslet om vellykkede skaleringshandlinger via fanen Varsler på autoskalainnstillingen.
Vanlige mønstre for å skalere ressursen i Azure
Skaler basert på etterspørsel
Du kan automatisk skalere ut antall tjenesteforekomster ved starten av arbeidsdagen når kundeetterspørselen øker. På slutten av arbeidsdagen skaleres automatisk i antall programforekomster for å minimere ressurskostnader over natten når bruken av programmet er lav.
Skaler annerledes på ukedager kontra helger
På en kveld eller helg kan det hende du har lavere etterspørsel etter søknader. Hvis denne belastningen er konsekvent over en tidsperiode, kan du konfigurere autoskalaregler for å redusere antall tjenesteforekomster i skaleringssettet. Hvis du utfører denne skaleringshandlingen, reduseres kostnadene for å kjøre skaleringssettet, fordi du bare kjører antall forekomster som kreves for å møte gjeldende behov.
Skaler annerledes i ferier
Hvis du har tung bruk for en tjeneste i enkelte deler av måneden eller regnskapssyklusen, kan du automatisk skalere antall tjenesteforekomster for å imøtekomme de ekstra kravene. Når det er et markedsføringsarrangement, en kampanje eller et feriesalg, kan du automatisk skalere antall tjenesteforekomster i forkant av forventet kundebehov.
Skaler basert på egendefinert metrikkverdi
Til slutt er det best å definere autoskaleringsreglene nøye. Et dos-angrep (Denial of Service) vil for eksempel sannsynligvis føre til en storstilt tilstrømning av innkommende trafikk. Å prøve å håndtere en økning i forespørsler forårsaket av et DoS-angrep ville være fruktløst og dyrt. Disse forespørslene er ikke ekte, og bør forkastes i stedet for å behandles. En bedre løsning er å implementere gjenkjenning og filtrering av forespørsler som oppstår under et slikt angrep før de kommer til tjenesten din.
Når du har konfigurert autoskaleringsreglene, overvåker du ytelsen til programmet over tid. Bruk resultatene av denne overvåkingen til å justere mønsteret systemet skalerer i, om nødvendig.