Tento článek popisuje vzory a implementace týmu komerčního softwarového inženýra (CSE), který se používá při vytváření cloudové transformace bankovního systému v Azure.
Architektura
Architektura Saga
Stáhněte si soubor aplikace Visio s touto architekturou.
Tok dat
Contoso Bank měla místní implementaci orchestrační ságy založené na orchestraci. Orchestrátor je ve své implementaci konečný stavový počítač (FSM). Tým CSE identifikoval v návrhu architektury následující výzvy:
Režie a složitost implementace stavového orchestrátoru pro zpracování se správou stavů, vypršením časových limitů a restartováním ve scénářích selhání
Mechanismy pozorovatelnosti pro sledování stavů pracovního postupu ság na žádost o transakci
Navrhované řešení je implementace vzoru saga prostřednictvím přístupu orchestrace s využitím bezserverové architektury v Azure. Řeší problémy s využitím:
Azure Functions pro implementaci účastníků ságy
Azure Durable Functions pro orchestraci navržená tak, aby poskytovala programovací model pracovního postupu a správu stavu.
Azure Event Hubs jako platforma pro streamování dat
Azure Cosmos DB jako databázová služba pro ukládání datových modelů.
Další informace naleznete v tématu Pattern: Saga na Microservices.io.
Vzor Saga
Saga je vzor vhodný pro správu distribuovaných transakcí, běžně používaný u finančních služeb. Objevil se nový scénář, kdy se operace distribuují napříč aplikacemi a databázemi. V novém scénáři budou zákazníci potřebovat nový návrh architektury a implementace, aby zajistili konzistenci dat u finančních transakcí.
Tradiční přístup k vlastnostem atomicity, konzistence, izolace a odolnosti (ACID) už není vhodný. Je to proto, že data operací jsou teď rozložená do izolovaných databází. Použití vzoru saga řeší tento problém tím, že koordinuje pracovní postup prostřednictvím sekvence místních transakcí řízených zprávami, aby se zajistila konzistence dat.
Architektura KEDA
Stáhněte si soubor aplikace Visio s touto architekturou.
Další informace o škálovacích modelech KEDA najdete v následujících dokumentech KEDA:
Trigger služby Azure Event Hubs: Kompatibilita pro čtení identifikátoru URI úložiště objektů blob v Azure pro aplikace v Javě Používá sadu SDK event Processor Host , která umožňuje škálovat uživatele Javy, kteří čtou zprávy protokolu AMQP (Advanced Message Queuing Protocol) ze služby Event Hubs. Dříve škálovací nástroj služby Event Hubs fungoval pouze se službou Azure Functions.
Trigger tématu Apache Kafka: Podpora SASL_SSL prostého ověřování, což umožňuje škálovat uživatele Javy, kteří čtou zprávy protokolu Kafka ze služby Event Hubs.
Workflow
Tým CSE nasadil aplikaci do clusteru Azure Kubernetes Service (AKS). Řešení potřebné k automatickému horizontálnímu navýšení kapacity aplikace na základě počtu příchozích zpráv. Tým CSE pomocí škálovače Kafka zjistil, jestli by řešení mělo aktivovat nebo deaktivovat nasazení aplikace. Škálovací nástroj Kafka také podává vlastní metriky pro konkrétní zdroj událostí. Zdrojem událostí v tomto příkladu je centrum událostí Azure.
Když počet zpráv v centru událostí Azure překročí prahovou hodnotu, keDA aktivuje horizontální navýšení kapacity podů a zvýší počet zpráv zpracovaných aplikací. Automatické vertikální snížení kapacity podů nastane, když počet zpráv ve zdroji událostí klesne pod prahovou hodnotu.
Tým CSE použil trigger tématu Apache Kafka. Poskytuje řešení možnost škálovat službu procesoru EFT, pokud proces překročil maximální počet zpráv spotřebovaných v intervalu.
PODPORA KEDA s Javou
Automatické škálování řízené událostmi Kubernetes (KEDA) určuje, jak by řešení mělo škálovat libovolný kontejner v rámci Kubernetes. Rozhodnutí vychází z počtu událostí, které potřebuje zpracovat. KEDA, která má různé druhy škálovacích nástrojů, podporuje více typů úloh, podporuje Azure Functions a je nezávislá na dodavatelích. Pokud chcete prozkoumat funkční ukázku, přejděte k automatickému škálování aplikací v Javě pomocí KEDA pomocí služby Azure Event Hubs .
Architektura zátěžového testování
Stáhněte si soubor aplikace Visio s touto architekturou.
Řešení používá azure Load Testing se skripty JMX (JMX). Azure Load Testing je plně spravovaná služba zátěžového testování, která umožňuje generovat zatížení ve velkém měřítku. Služba simuluje provoz pro vaše aplikace bez ohledu na to, kde jsou hostované, a může využívat existující skripty JMeter.
Workflow
Zátěžové testování Azure umožňuje ručně vytvářet zátěžové testy pomocí webu Azure Portal nebo Azure CLI. Případně můžete nakonfigurovat kanál CI/CD pro integraci se službou Azure Load Testing. Díky tomu můžete automatizovat zátěžový test, který bude nepřetržitě ověřovat výkon a stabilitu aplikace v rámci pracovního postupu CI/CD.
- Seznamte se s fungováním zátěžového testování Azure vytvořením a spuštěním zátěžového testu.
- Použijte nové nebo existující skripty JMeter a nakonfigurujte pracovní postup CI/CD pro spouštění zátěžových testů.
Podrobnosti scénáře
Tento scénář vám pomůže lépe pochopit vzory a implementace v bankovním odvětví při přechodu do cloudu.
Další kroky
Další informace o technologiích komponent:
- Seznámení s Azure Functions
- Co je Durable Functions?
- Azure Event Hubs – platforma pro streamování velkých objemů dat a služba pro příjem událostí
- Vítá vás Azure Cosmos DB
Související prostředky
Prozkoumejte související architektury: