Co jsou Affinity Groups?
Při zakládání služeb na platformě Azure máte možnost zvolit datové centrum, do kterého bude služba nasazena. Je proto logické si vybrat to nejbližší centrum vzhledem k uživatelům konkrétní služby/aplikace. Například pro obchod v ČR si zvolíte datové centrum v Evropě a nikoliv v USA (pokud pro to nemáte nějaký jiný důvod, například legislativní).
V případě aplikace využívající více Azure služeb platí to samé. Vybíráme datové centrum podle geografického umístění a obvykle chceme mít všechny části služby v jednom datovém centru. Zkracujeme tak dobu nutnou na komunikaci mezi službami a zároveň snižujeme náklady na přenos mimo datové centrum.
Předpokládejme tedy, že naše aplikace využívá v jednom datovém centru například tři virtuální stroje a ukládá data do jednoho Blob Storage kontejneru (o Blob Storage budu psát v dalším díle). Může to být dejme tomu služba pro online zpracování a hostování fotografií a videí. U takového řešení pro nás bude důležitá co nejrychlejší komunikace mezi všemi částmi systému.
U opravdu velkých datových center hostujících desítky tisíc serverů existuje rozdíl v rychlosti komunikaci mezi servery, které jsou umístěné topologicky blízko sebe (například ve stejném clusteru, napojené na stejný síťový rozbočovač) a mezi servery na různých koncích datového centra.
Affinity Groups znamenají v doslovném překladu “skupiny blízkosti”. Služby vytvořené do těchto skupin se Azure se pokusí hostovat v topologické blízkosti a zajistit tak jejich nejoptimálnější a nejspolehlivější komunikaci.
Použití u služeb
Affinity Groups není v tuto chvíli možné využívat u všech služeb Azure. Některé dovolují volbu pouze lokace (datového centra) a nikoliv konkrétní Affinity Group. Vzhledem k tomu, že se seznam podporovaných služeb rozšiřuje, nebudu jej zde uvádět. V administrační konzoli lze snadno v dialogu na založení nové konkrétní služby vidět, zda je podporována volba Affinity Group nebo ne. U služeb, které zatím nastavení Affinity Group nedovolují vám nezbyde nic jiného, než nastavit pouze stejnou lokaci datového centra.
Účinnost
Nezjistil jsem se, jak přesně Azure rozhoduje o umístění služeb přiřazené v jedné Affinity Group, ani jaké výkonnostní zlepšení to může přinést. Navíc komunikace mezi službami v rámci datového centra bude vždy relativně rychlá a u menších aplikací s menším datovým tokem nemusí být rozdíl vůbec měřitelný. Nicméně jedná se o doporučení Microsoftu, které slibuje lepší optimalizaci infrastruktury hostování a proto jej doporučuji používat i v menších projektech.
Založení Affinity Group a příklad použití
Přehled Affinity Groups zobrazíte v administračním portálu v sekci “Settings” pod záložkou “Affinity Groups” (viz obrázek).
Kliknutím na “Add” vyvoláte dialog pro vytvoření nové skupiny. Povinné je jméno, předplatné a samozřejmě datové centrum, ve kterém skupinu vytváříte (viz obrázek). Affinity Groups vytváříte vždy v rámci jednoho účtu předplatného a není je možné sdílet s více účty. Jméno účtu musí být unikátní v rámci právě zvoleného účtu (nemusí být unikátní globálně).
Samotné vytvoření Affinity Group není nijak zpoplatněno a nic sama o sobě skupina nedělá.
Skupinu následně využijete při vytváření nových služeb, kde si můžete zvolit buď obecně datové centrum nebo přímo konkrétní Affinity Group (viz obrázek).
Z pohledu funkčnosti a způsobu používání je víceméně jedno, zda definujete službu pro lokaci nebo konkrétní Affinity Group uvnitř lokace. Nastavení skupiny využije pouze Windows Azure k optimalizaci infrastruktury tak, aby byla datová komunikace mezi servery hostující služby uvnitř vaší skupiny co nejoptimálnější.