N-vrstvá aplikace s využitím Apache Cassandry

Azure DNS
Azure Load Balancer
Azure Monitor
Azure Virtual Machines
Azure Virtual Network

Tato referenční architektura ukazuje, jak nasadit virtuální počítače a virtuální síť nakonfigurovanou pro N-vrstvou aplikaci pomocí Apache Cassandra v Linuxu pro datovou vrstvu.

Architektura

Diagram that shows the N-tier architecture using Microsoft Azure.

Stáhněte si soubor aplikace Visio s touto architekturou.

Workflow

Tato architektura se skládá z následujících součástí.

OBECNÉ

  • Skupina prostředků. Skupiny prostředků se používají k seskupení prostředků Azure, aby je bylo možné spravovat podle doby života, vlastníka nebo jiných kritérií.

  • Zóny dostupnosti. Zóny dostupnosti jsou fyzická umístění v rámci oblasti Azure. Každá zóna se skládá z jednoho nebo více datacenter s nezávislým napájením, chlazením a sítěmi. Umístěním virtuálních počítačů mezi zóny se aplikace stane odolnou vůči selháním v rámci zóny.

Sítě a vyrovnávání zatížení

  • Virtuální síť a podsítě Každý virtuální počítač Azure se nasadí do virtuální sítě, která se dá segmentovat do podsítí. Vytvořte pro každou vrstvu samostatnou podsíť.

  • Application Gateway. Application Gateway je nástroj pro vyrovnávání zatížení vrstvy 7. V této architektuře směruje požadavky HTTP na webový front-end. Application Gateway také poskytuje firewall webových aplikací (WAF), který chrání aplikaci před běžným zneužitím a ohrožením zabezpečení.

  • Nástroje pro vyrovnávání zatížení. K distribuci síťového provozu z webové vrstvy do obchodní vrstvy použijte Azure Standard Load Balancer .

  • Skupiny zabezpečení sítě (NSG). Skupiny zabezpečení sítě slouží k omezení síťového provozu ve virtuální síti. Například v zde zobrazené třívrstvé architektuře databázová vrstva nepřijímá provoz z webového front-endu, pouze z obchodní vrstvy a podsítě pro správu.

  • DDoS Protection. I když platforma Azure poskytuje základní ochranu před distribuovanými útoky na odepření služby (DDoS), doporučujeme použít službu Azure DDoS Network Protection, která má vylepšené funkce pro zmírnění rizik DDoS. Podívejte se na aspekty zabezpečení .

  • Azure DNS. Azure DNS je hostitelská služba pro domény DNS. Poskytuje překlad ip adres pomocí infrastruktury Microsoft Azure. Pokud svoje domény hostujete v Azure, můžete spravovat svoje DNS záznamy pomocí stejných přihlašovacích údajů, rozhraní API a nástrojů a za stejných fakturačních podmínek jako u ostatních služeb Azure.

Virtuální počítače

  • Databáze Apache Cassandra. Umožňuje replikaci a převzetí služeb při selhání, čímž poskytuje datové vrstvě vysokou dostupnost.

  • OpsCenter. Nasaďte řešení monitorování, jako je DataStax OpsCenter , abyste mohli monitorovat cluster Cassandra.

  • Jumpbox. Označuje se také jako bastion host nebo ochranná bašta. Je to zabezpečený virtuální počítač v síti, který správci používají pro připojení k jiným virtuálním počítačům. Jumpbox má skupinu NSG, která umožňuje vzdálenou komunikaci pouze z jedné veřejné IP adresy na seznamu bezpečných adres. NSG musí povolit provoz vzdálené plochy (RDP).

Doporučení

Vaše požadavky se mohou od popsané architektury lišit. Použijte tato doporučení jako výchozí bod.

Virtuální počítače

Doporučení ke konfiguraci virtuálních počítačů najdete v tématu Spuštění virtuálního počítače s Linuxem v Azure.

Virtuální síť

Při vytváření virtuální sítě určete, kolik IP adres vaše prostředky v každé podsíti vyžadují. Pomocí zápisu CIDR zadejte masku podsítě a rozsah síťových adres dostatečně velký pro požadované IP adresy. Použijte adresní prostor, který spadá do standardních bloků privátních IP adres, kterými jsou 10.0.0.0/8, 172.16.0.0/12 a 192.168.0.0/16.

Zvolte rozsah adres, který se nepřekrývá s vaší místní sítí, pokud budete později muset nastavit bránu mezi virtuální sítí a místní sítí. Po vytvoření virtuální sítě už rozsah adres změnit nelze.

Při navrhování podsítí myslete na požadované funkce a požadavky na zabezpečení. Všechny virtuální počítače ve stejné vrstvě nebo roli by měly patřit do stejné podsítě, která může být hranicí zabezpečení. Další informace o navrhování virtuálních sítí a podsítí najdete v tématu o plánování a návrhu virtuálních sítí Azure.

Application Gateway

Informace o konfiguraci služby Application Gateway najdete v tématu Přehled konfigurace služby Application Gateway.

Nástrojů pro vyrovnávání zatížení

Nevystavujte virtuální počítače přímo na internetu. Místo toho dejte každému virtuálnímu počítači privátní IP adresu. Klienti se připojují pomocí IP adresy přidružené ke službě Application Gateway.

Definujte pravidla nástroje pro vyrovnávání zatížení, aby síťový provoz směroval na virtuální počítače. Pokud chcete například povolit provoz protokolu HTTP, vytvořte pravidlo, které mapuje port 80 z front-endové konfigurace k portu 80 v back-endovém fondu adres. Když klient odešle žádost HTTP na port 80, nástroj pro vyrovnávání zatížení vybere back-endovou IP adresu použitím algoritmu hash, který obsahuje zdrojovou IP adresu. Požadavky klientů se distribuují napříč všemi virtuálními počítači.

Skupiny zabezpečení sítě

Použijte pravidla skupiny zabezpečení sítě, abyste omezili provoz mezi vrstvami. Například ve třívrstvé architektuře uvedené výše webová vrstva nekomunikuje přímo s databázovou vrstvou. Pokud to chcete vynutit, databázová vrstva by měla blokovat příchozí provoz z podsítě webové vrstvy.

  1. Odepřít veškerý příchozí provoz z virtuální sítě. (V pravidle použijte značku VIRTUAL_NETWORK.)
  2. Povolte příchozí provoz z podsítě obchodní vrstvy.
  3. Povolte příchozí provoz z samotné podsítě databázové vrstvy. Toto pravidlo umožňuje komunikaci mezi databázovými virtuálními počítači, které jsou potřeba pro replikaci databáze a převzetí služeb při selhání.
  4. Povolte provoz SSH (port 22) z podsítě jumpboxu. Toto pravidlo umožňuje správcům připojit se z jumpboxu k databázové vrstvě.

Vytvořte pravidla 2 –4 s vyšší prioritou než první pravidlo, takže je přepíšou.

Cassandra

Pro produkční použití doporučujeme DataStax Enterprise, ale následující doporučení platí pro všechny edice databáze Cassandra. Další informace o spuštění DataStax v Azure najdete v tématu Příručka pro nasazení DataStax Enterprise pro Azure.

Nakonfigurujte uzly v režimu přehledu o stojanech. Zmapujte domény selhání do stojanů v souboru cassandra-rackdc.properties.

Nástroj pro vyrovnávání zatížení před tímto clusterem nepotřebujete. Klient se připojuje přímo k uzlu v clusteru.

Skripty nasazení pro tuto architekturu používají překlad názvů k inicializaci počátečního uzlu pro komunikaci uvnitř clusteru (gossip). Pokud chcete povolit překlad názvů, nasazení vytvoří zónu Azure Privátní DNS se záznamy A pro uzly Cassandra. V závislosti na inicializačních skriptech můžete místo toho použít statickou IP adresu.

Poznámka:

Azure Privátní DNS je aktuálně ve verzi Public Preview.

Jumpbox

Nepovolujte přístup ssh z veřejného internetu k virtuálním počítačům, na kterých běží úloha aplikace. Místo toho musí veškerý přístup přes SSH k těmto virtuálním počítačům projít jumpboxem. Správce se přihlásí do jumpboxu a potom se z jumpboxu přihlásí k jinému virtuálnímu počítači. Jumpbox umožňuje provoz přes SSH z internetu, ale pouze ze známých bezpečných IP adres.

Jumpbox má minimální požadavky na výkon, takže vyberte malou velikost virtuálního počítače. Vytvořte jumpboxu veřejné IP adresy. Umístěte jumpbox do stejné virtuální sítě jako ostatní virtuální počítače, ale do oddělené podsítě pro správu.

Pokud chcete jumpbox zabezpečit, přidejte pravidlo NSG, které umožňuje připojení SSH pouze z bezpečné sady veřejných IP adres. Nakonfigurujte skupiny zabezpečení sítě pro ostatní podsítě tak, aby umožňovaly provoz SSH z podsítě pro správu.

Důležité informace

Škálovatelnost

Škálovací sady

U webových a obchodních úrovní zvažte použití škálovacích sad virtuálních počítačů místo nasazení samostatných virtuálních počítačů do skupiny dostupnosti. Škálovací sada usnadňuje nasazení a správu sady identických virtuálních počítačů a automatické škálování virtuálních počítačů na základě metrik výkonu. S rostoucí zátěží virtuálních počítačů se do nástroje pro vyrovnávání zatížení automaticky přidávají virtuální počítače.

Existují dva základní způsoby, jak virtuální počítače nasazené ve škálovací sadě nakonfigurovat:

  • Pomocí rozšíření nakonfigurujte virtuální počítač po nasazení. U tohoto přístupu je možné, že se nové instance virtuálních počítačů budou načítat déle než u virtuálních počítačů bez rozšíření.

  • Nasaďte spravovaný disk s vlastní imagí disku. Nasazení této možnosti může být rychlejší, Vyžaduje ale, abyste image zachovali v aktualizovaném stavu.

Další informace najdete v tématu Aspekty návrhu škálovacích sad.

Tip

Když používáte jakékoliv řešení automatického škálování, dostatečně předem ho otestujte zatížením na provozní úrovni.

Omezení předplatného

Každé předplatné Azure má nastavená výchozí omezení, mezi která patří maximální počet virtuálních počítačů pro jednu oblast. Toto omezení můžete navýšit vyplněním žádosti o podporu. Další informace najdete v tématu Limity, kvóty a omezení předplatného a služeb Azure.

Application Gateway

Application Gateway podporuje režim pevné kapacity nebo režim automatického škálování. Režim pevné kapacity je užitečný ve scénářích s konzistentními a předvídatelnými úlohami. Zvažte použití režimu automatického škálování pro úlohy s proměnlivým provozem. Další informace najdete v tématu Automatické škálování a zónově redundantní služba Application Gateway v2.

Efektivita výkonu

Pokud chcete dosáhnout nejlepšího výkonu z Cassandry na virtuálních počítačích Azure, prohlédni si doporučení ve spuštění Apache Cassandra na virtuálních počítačích Azure.

Dostupnost

Zóny dostupnosti poskytují nejlepší odolnost v rámci jedné oblasti. Pokud potřebujete ještě vyšší dostupnost, zvažte replikaci aplikace napříč dvěma oblastmi.

Ne všechny oblasti podporují zóny dostupnosti a ne všechny velikosti virtuálních počítačů jsou podporované ve všech zónách. Spuštěním následujícího příkazu Azure CLI vyhledejte podporované zóny pro každou velikost virtuálního počítače v rámci oblasti:

az vm list-skus --resource-type virtualMachines --zone false --location <location> \
    --query "[].{Name:name, Zones:locationInfo[].zones[] | join(','@)}" -o table

Pokud tuto architekturu nasadíte do oblasti, která nepodporuje zóny dostupnosti, umístěte virtuální počítače pro každou úroveň do skupiny dostupnosti. Virtuální počítače ve stejné dostupnosti se nasazují napříč několika fyzickými servery, výpočetními racky, úložnými jednotkami a síťovými přepínači pro redundanci. Škálovací sady automaticky používají skupiny umístění, které fungují jako implicitní skupina dostupnosti.

Při nasazování do zón dostupnosti použijte skladovou položku Standard služby Azure Load Balancer a skladovou položku služby Application Gateway v2. Tyto skladové položky podporují redundanci napříč zónami. Další informace naleznete v tématu:

Jedno nasazení služby Application Gateway může spustit několik instancí brány. V případě produkčních úloh spusťte aspoň dvě instance.

Cluster Cassandra

Scénáře převzetí služeb při selhání pro cluster Cassandra závisí na úrovních konzistence používaných aplikací a počtu replik. Informace o úrovních konzistence a využití v Cassandře najdete v tématu Konfigurace konzistence dat a Cassandra: Kolik uzlů se komunikuje s kvorem? Dostupnost dat v Cassandře je určena úrovní konzistence používanou aplikací a mechanismem replikace. Více informací o replikaci v databázi Cassandra najdete v tématu Vysvětlení replikace dat v databázích NoSQL.

Sondy stavu

Application Gateway i Load Balancer používají sondy stavu ke sledování dostupnosti instancí virtuálních počítačů.

  • Application Gateway vždy používá sondu HTTP.
  • Load Balancer může testovat protokol HTTP nebo TCP. Obecně platí, že pokud na virtuálním počítači běží server HTTP, použijte test HTTP. V opačném případě použijte protokol TCP.

Pokud sonda nemůže během časového limitu dosáhnout instance, brána nebo nástroj pro vyrovnávání zatížení přestanou do daného virtuálního počítače odesílat provoz. Sonda bude pokračovat ve kontrole a vrátí virtuální počítač do back-endového fondu, pokud bude virtuální počítač znovu dostupný.

Sondy HTTP odesílají požadavek HTTP GET na zadanou cestu a naslouchají odpovědi HTTP 200. Tato cesta může být kořenová cesta (/) nebo koncový bod monitorování stavu, který implementuje určitou vlastní logiku pro kontrolu stavu aplikace. Tento koncový bod musí umožňovat anonymní žádosti HTTP.

Další informace osondch

Důležité informace o návrhu koncového bodu sondy stavu najdete v tématu Model monitorování koncových bodů stavu.

Optimalizace nákladů

K odhadu nákladů použijte cenovou kalkulačku Azure. Tady je několik dalších aspektů.

Škálovací sady virtuálních počítačů

Škálovací sady virtuálních počítačů jsou dostupné ve všech velikostech virtuálních počítačů s Linuxem. Budou se vám účtovat jenom virtuální počítače Azure, které nasadíte, a také případné další využité prostředky základní infrastruktury, jako jsou třeba úložiště a sítě. Za službu Virtual Machine Scale Sets samotnou se neúčtují žádné dodatečné poplatky.

Cenové možnosti pro jednotlivé virtuální počítače najdete na stránce s cenami virtuálních počítačů s Linuxem.

Nástrojů pro vyrovnávání zatížení

Účtuje se vám jenom počet nakonfigurovaných pravidel vyrovnávání zatížení a odchozích přenosů. Pravidla příchozího překladu adres (NAT) jsou bezplatná. Pokud nejsou nakonfigurovaná žádná pravidla, za samotný Standard Load Balancer se neúčtuje žádná hodinová sazba.

Další informace najdete v části věnované nákladům v tématu Dobře navržená architektura Microsoft Azure.

Zabezpečení

Virtuální sítě jsou hranicí izolace provozu v Azure. Virtuální počítače v jedné virtuální síti nemůžou komunikovat přímo s virtuálními počítači v jiné virtuální síti. Virtuální počítače ve stejné virtuální síti spolu komunikovat mohou, pokud nevytvoříte Skupiny zabezpečení sítě, abyste provoz omezili. Další informace získáte v tématu Zabezpečení sítí a cloudových služeb Microsoftu.

U příchozího internetového provozu pravidla nástroje pro vyrovnávání zatížení definují, který provoz se může spojit s back-endem. Pravidla nástroje pro vyrovnávání zatížení ale nepodporují seznamy bezpečných IP adres, takže pokud chcete určité veřejné IP adresy na tento seznam přidat, přidejte do podsítě skupinu zabezpečení sítě.

DMZ. Zvažte přidání síťového virtuálního zařízení, abyste mezi internetem a virtuální sítí Azure vytvořili síť DMZ. Síťové virtuální zařízení je obecný termín pro virtuální zařízení, které provádí úlohy související se sítí, jako je brána firewall, kontrola paketu, auditování a vlastní směrování. Více informací získáte v tématu Implementace DMZ mezi Azure a internetem.

Šifrování. Zašifruje důvěrná neaktivní uložená data a ke správě šifrovacích klíčů databáze použijte Azure Key Vault. Key Vault umí ukládat šifrovací klíče do modulů hardwarového zabezpečení (HSM). Doporučuje se také ukládat tajné kódy aplikací, jako jsou databázové připojovací řetězec, ve službě Key Vault.

Ochrana před útoky DDoS Platforma Azure ve výchozím nastavení poskytuje základní ochranu před útoky DDoS. Tato základní ochrana se zaměřuje na ochranu infrastruktury Azure jako celku. I když je základní ochrana před útoky DDoS povolená automaticky, doporučujeme používat službu Azure DDoS Network Protection. Služba Network Protection k detekci hrozeb využívá adaptivní ladění založené na vzorech síťového provozu vaší aplikace. To umožňuje aplikovat zmírnění rizik na útoky DDoS, které by mohly být nepovšimané zásadami DDoS pro celou infrastrukturu. Network Protection také poskytuje výstrahy, telemetrii a analýzy prostřednictvím služby Azure Monitor. Další informace najdete v tématu Azure DDoS Protection: Osvědčené postupy a referenční architektury.

Provozní dokonalost

Vzhledem k tomu, že všechny hlavní prostředky a jejich závislosti jsou ve stejné virtuální síti v této architektuře, jsou izolované ve stejné základní úloze. Tato skutečnost usnadňuje přidružení konkrétních prostředků úlohy k týmu DevOps, aby tým mohl nezávisle spravovat všechny aspekty těchto prostředků. Tato izolace umožňuje týmům a službám DevOps provádět kontinuální integraci a průběžné doručování (CI/CD).

Můžete také použít různé šablony nasazení a integrovat je s Azure DevOps Services ke zřízení různých prostředí během několika minut, například k replikaci produkčního prostředí, jako jsou scénáře nebo prostředí zátěžového testování, pouze v případě potřeby, což šetří náklady.

V tomto scénáři se virtuální počítače konfigurují pomocí rozšíření virtuálních počítačů, protože nabízejí možnost instalace určitého dalšího softwaru, jako je Apache Cassandra. Rozšíření vlastních skriptů konkrétně umožňuje stahování a spouštění libovolného kódu na virtuálním počítači, což umožňuje neomezené přizpůsobení operačního systému virtuálního počítače Azure. Rozšíření virtuálních počítačů se instalují a spouští pouze při vytváření virtuálního počítače. To znamená, že pokud se operační systém v pozdější fázi nesprávně nakonfiguruje, bude vyžadovat ruční zásah, který ho přesune zpět do správného stavu. K vyřešení tohoto problému je možné použít nástroje pro správu konfigurace.

Zvažte použití služby Azure Monitor k analýze a optimalizaci výkonu infrastruktury a monitorování a diagnostice problémů se sítěmi bez protokolování na virtuálních počítačích. Aplikační Přehledy je ve skutečnosti jednou z komponent služby Azure Monitor, která poskytuje bohaté metriky a protokoly pro ověření stavu kompletního prostředí Azure. Azure Monitor vám pomůže sledovat stav vaší infrastruktury.

Nezapomeňte monitorovat nejen výpočetní prvky podporující kód aplikace, ale také datovou platformu, zejména vaše databáze, protože nízký výkon datové vrstvy aplikace může mít vážné důsledky.

Aby bylo možné otestovat prostředí Azure, ve kterém běží aplikace, mělo by být řízeno verzí a nasazeno pomocí stejných mechanismů jako kód aplikace, pak je možné ho otestovat a ověřit pomocí testovacích paradigmat DevOps.

Další informace najdete v části Efektivita provozu v architektuře Microsoft Azure Well-Architecture Framework.

Další kroky