Dynamické škálování výpočetního výkonu ve Windows Azure

Této otázce jsem se věnoval již dříve ve článku Jak jezdit ve Windows Azure cloudu s optimální spotřebou. Po více než půl roce bych se rád k tomu tématu vrátil, protože intenzita dotazů na toto téma stále neklesá. Nejdříve bych měl určitě uvést, že na straně Windows Azure se nic nezměnilo a změnu výkonu není možné řídit nějakými politikami přímo na provisioning portálu, jak bývá často ze strany zákazníků navrhováno. V tuto chvíli tomu bohužel tak není a tak si ukážeme, jaké přístupy lze v tuto chvíli volit.

K dispozici v podstatě máme tři přístupy:

1. Napsat si celou logiku řízení počtu instancí Windows Azure rolí sami

2. Využít některý z dostupných open source projektů

3. Pořídit produkt některé z třetích stran

Vlastní aplikace

U této varianty bych se zdržel asi nejkratší dobu. Přístupů jak vlastní řízení řešit, je celá řada a hodně záleží na potřebách konkrétní aplikace. Někdy vystačí jednoduchý PowerShell skrip, který vzdáleně zapíná a vypíná jednotlivé instance podle definované logiky. Tyto skripty by se daly také na základě pravidel spouštět z System Center Operations Manager, na němž je instalován management pack pro platformu Windows Azure (dnes v RC verzi).

Jindy může být situace daleko složitější a bude nutné požít přímo Windows Azure Management API a systém pro monitorování a trasování stavu aplikací. Dobré čtení a prezentaci najdete na následujících odkazech:

· MSDN Magazín – Výkonnostní škálování ve Windows Azure

· MSDN příklady – Příklad pro dynamické škálování ve Windows Azure

· Záznam přednášky – Windows Azure: Scaling Down

Open Source projekty

V mnoha případech lze s výhodou využít hotového kódu, ať je sdílen se zdrojovými kódy nebo bez nich. Mezi ty, které stojí za zmínku, patří určitě následující:

Windows Azure Hosted Services VM Manager, umístěný na portály Codeplex. V podstatě jde o paralelně běžící aplikaci v Azure cloudu, která sleduje jiné aplikace a na základě definovaných pravidel mění jejich počty instancí. Tato aplikace byla vyvinuta jako součást projektu pro Pracovní úřad státu Idaho.

Druhý projekt, již mnohokrát zmiňovaný, je Windows Azure Dynamic Scaling Sample, umístěný na MSDN Code Gallery.

Aplikace třetích stran

Zde je seznam firem a jejich aplikací, které se zabývají monitorování a auto-školováním Azure aplikací. Pokud znáte další řešení, rád je doplním.

· AzureWatch od firmy Paraleap Technologies

· ManageAxis od firmy Cumulux