Běžné vzory automatického škálování

Dokončeno

V této lekci se podíváme na vzory pro automatické škálování.

Automatické škálování není okamžitým řešením. Pouhé přidání prostředků do systému nebo spuštění více instancí procesu nezaručuje vyšší výkon systému. Při navrhování strategie automatického škálování zvažte následující body:

Doporučení

Identifikace kritických bodů: Horizontální navýšení kapacity není opravy magie pro každý problém s výkonem. Pokud je například back-endová databáze kritickým bodem, nepomůže přidat další webové servery. Před vyvoláním dalších instancí v systému identifikujte a vyřešte kritické body v systému. Kritickými body jsou s největší pravděpodobností stavové části systému.

Rozložte úlohy podle požadavků na škálovatelnost: Aplikace se často skládají z více úloh s různými požadavky na škálování. Například aplikace může mít veřejně přístupný web a samostatný web pro správy. U veřejného webu může docházet k náhlému nárůstu provozu, zatímco lokalita správy má menší a předvídatelnější zatížení.

Snižování zátěže úloh náročných na prostředky: Úlohy, které vyžadují mnoho prostředků procesoru nebo vstupně-výstupních prostředků, by se měly přesunout do úloh na pozadí, pokud je to možné. Snižování zátěže úloh minimalizuje zatížení front-endu, který zpracovává požadavky uživatelů.

Používejte integrované funkce automatického škálování: Pokud má aplikace předvídatelnou, běžnou úlohu, navyšte kapacitu podle plánu. Například škálujte na více instancí během pracovní doby. Pokud není úloha předvídatelná, použijte k aktivaci automatického škálování metriky výkonu, jako je využití procesoru nebo délky fronty požadavků.

Zvažte agresivní automatické škálování kritických úloh: U kritických úloh chcete držet krok před poptávkou. Je lepší rychle přidávat nové instance s velkým zatížením, aby zvládly ostatní přenosy, a pak postupně škálovat zpět.

Návrh pro horizontální snížení kapacity: Nezapomeňte, že při elastickém škálování má aplikace období škálování, kdy se instance odeberou. Aplikace musí pohodlně zvládnout odebírání instancí. Tady je několik způsobů, jak zpracovat horizontální snížení kapacity:

  • Naslouchání událostem vypnutí, když jsou k dispozici, a vypněte je čistě.
  • Podpora zpracování přechodných chyb a opakování
  • Zvažte rozdělení práce pro dlouhotrvající úlohy.
  • Umístěte pracovní položky do fronty, aby jiná instance mohl vyzvednout práci, pokud je instance odebrána uprostřed zpracování.

Oznámení

  • Všechna selhání automatického škálování se protokolují do protokolu aktivit. Pak můžete nakonfigurovat upozornění protokolu aktivit, které vás upozorní prostřednictvím e-mailu, služby krátkých zpráv (SMS) nebo webhooků, kdykoli dojde k selhání automatického škálování.
  • Podobně se všechny úspěšné akce škálování publikují do protokolu aktivit. Upozornění protokolu aktivit pak můžete nakonfigurovat tak, abyste byli upozorněni prostřednictvím e-mailu, SMS nebo webhooků, kdykoli dojde k úspěšné akci automatického škálování. Oznámení e-mailu nebo webhooku můžete také nakonfigurovat tak, aby dostávala oznámení o úspěšných akcích škálování prostřednictvím karty Oznámení v nastavení automatického škálování.

Diagram toku procesu webhooku

Běžné vzory škálování prostředku v Azure

Škálování na základě poptávky

Když se poptávka zákazníků zvýší, můžete automaticky škálovat počet instancí služeb na začátku pracovního dne. Na konci pracovního dne se automaticky škáluje počet instancí aplikace, aby se minimalizovaly náklady na prostředky přes noc, když je využití aplikace nízké.

Různá škálování v pracovní dny a víkendy

Večer nebo o víkendu můžete mít nižší poptávku po aplikaci. Pokud je toto zatížení konzistentní v určitém časovém období, můžete nakonfigurovat pravidla automatického škálování tak, aby snížila počet instancí služby ve škálovací sadě. Provedením této akce škálování snížíte náklady na spuštění škálovací sady, protože spustíte jenom počet instancí potřebných ke splnění aktuální poptávky.

Různá škálování během svátků

Pokud máte vysoké využití služby v určitých částech měsíce nebo fiskálního cyklu, můžete automaticky škálovat počet instancí služby tak, aby vyhovoval jejich dodatečným požadavkům. Když dojde k marketingové události, propagaci nebo prodeji svátků, můžete automaticky škálovat počet instancí služeb před očekávanými požadavky zákazníků.

Škálování na základě vlastní metriky

Nakonec je nejlepší pečlivě definovat pravidla automatického škálování. Například útok DoS (Denial of Service) pravděpodobně způsobí velký nárůst příchozího provozu. Pokus o zpracování nárůstu požadavků způsobených útokem DoS by byl drahý a neefektivní. Tyto požadavky nejsou pravé a měly by se zahodit, nikoli zpracovat. Lepším řešením je implementace zjišťování a filtrování požadavků, ke kterým během takového útoku dochází, dříve než se dostanou do vaší služby.

Po konfiguraci pravidel automatického škálování monitorujte výkon aplikace v průběhu času. Výsledky tohoto monitorování použijte k úpravě vzoru, ve kterém se systém v případě potřeby škáluje.