Informace o komponentách .NET Aspire
I když každá mikroslužba ve vaší aplikaci bude pravděpodobně jedinečná, často mají podobné požadavky na backingové služby, jako jsou databáze a mezipaměti. Psaní kódu v každé mikroslužbě, která je rozhraním těchto backingových služeb, může být náročné. V rozhraní .NET Aspire se tento kód zmenší, protože místo toho přidáte komponentu .NET Aspire. K dispozici jsou integrované komponenty pro řadu běžně používaných požadavků, které pravděpodobně budete potřebovat v mikroslužbách.
Představte si, že pracujete pro venkovní oblečení a vybavení společnosti. Vaše vývojové týmy začaly navrhovat své mikroslužby pro novou webovou aplikaci eShop. Každá mikroslužba může potřebovat služby, jako jsou databáze, služby zasílání zpráv a mezipaměti. Chcete posoudit, jak může .NET Aspire pomoct s těmito službami pracovat.
V této lekci se dozvíte o součástech, které jsou součástí rozhraní .NET Aspire, a dozvíte se, jak zvolit nejlepší komponentu pro mikroslužbu.
Použití komponent .NET Aspire
Každá komponenta .NET Aspire je balíček NuGet a můžete ji přidat do projektu pomocí správce balíčků NuGet. V sadě Visual Studio je nová položka nabídky přidat > komponentu .NET Aspire. Tato akce zobrazí správce balíčků s filtrem použitým pro zobrazení pouze komponent .NET Aspire:
Poznámka:
V další části tohoto modulu se dozvíte, jak používat tyto nástroje komponent.
Visual Studio Code s rozšířením C# Dev Kit také podporuje přidávání komponent .NET Aspire.
Případně může rozhraní příkazového řádku .NET přidat komponenty .NET. Příklad:
dotnet add package Aspire.StackExchange.Redis --prerelease
V projektu AppHost musíte zaregistrovat komponentu a využívat ji v projektech, které ji volají:
var cache = builder.AddRedis("cache");
builder.AddProject<Projects.AspireSample_Web>("webfrontend")
.WithReference(cache);
Pak můžete pomocí injektáže závislostí přidat do náročného projektu:
build.AddRedisClient("cache");
Jiný kód použití se liší v závislosti na používané komponentě.
Poznámka:
Každý typ komponenty .NET Aspire má obvykle ekvivalentní hostitelský balíček. Hostitelské balíčky konfigurují prostředky a závislosti, které aplikace vyžaduje, a vy je nainstalujete do projektu AppHost , nikoli do projektu využívajícího.
Databázové komponenty
V aplikacích nativních pro cloud zodpovídá každá mikroslužba za ukládání vlastních dat a může potřebovat databázi strukturovaných nebo částečně strukturovaných dat ke čtení a zápisu do. Vzhledem k tomu, že každá mikroslužba se vyvíjí nezávisle, můžete zjistit, že různé databázové systémy se používají v různých částech celé aplikace.
Rozhraní .NET Aspire obsahuje komponenty pro následující servery relačních databází:
- PostgreSQL: Oblíbený opensourcový databázový server s implementací jazyk SQL (Structured Query Language) (SQL).
- MySQL: Jiný opensourcový databázový server SQL.
- SQL Database: Databázový systém SQL od Microsoftu.
Poznámka:
Komponenta .NET Aspire SQL Database může pracovat s Microsoft SQL Serverem nebo Azure SQL Database, což je implementace SQL Serveru v cloudu Azure. Podobně Azure zahrnuje implementace PostgreSQL a MySQL (Platforma jako služba) jako služba (PaaS). Umístění, kde spouštíte databázi, je rozhodnutí pro každý tým architektury mikroslužeb, ale komponenty .NET Aspire můžou podporovat mnoho cloudových umístění a nevynucují žádnou konkrétní hostující službu.
Pokud chcete pracovat s částečně strukturovanými daty, rozhraní .NET Aspire podporuje tyto systémy NoSQL:
- MongoDB: Databázový server NoSQL orientovaný na více platforem.
- Azure Cosmos DB: Flexibilní databázový systém NoSQL od Microsoftu hostovaný v Azure.
Součásti úložiště
V .NET Aspire jsou komponenty úložiště k dispozici pro mikroslužby, které potřebují ukládat soubory, data nebo zprávy v účtech Azure Storage. Pro každou ze tří služeb v Azure Storage je jedna komponenta. Zvolte komponentu podle toho, co chcete se službou Azure Storage dělat:
- Azure Blob Storage: Pomocí této služby můžete ukládat a načítat soubory objektů blob, jako jsou obrázky a videa.
- Azure Table Storage: Pomocí této služby můžete ukládat a načítat řádky v částečně strukturovacích datových tabulkách.
- Azure Queue Storage: Pomocí této služby můžete přidávat zprávy do front pro distribuci do jiných předplacených mikroslužeb.
Komponenty zasílání zpráv
Jedním ze způsobů, jak zlepšit spolehlivost a flexibilitu komunikace mezi mikroslužbami v aplikaci nativní pro cloud, je použití řešení pro zasílání zpráv, která místo přímé komunikace poskytují fronty, témata a odběry. .NET Aspire zahrnuje komponenty pro následující tři služby zasílání zpráv. Zvolte komponentu založenou na zprostředkovatele zasílání zpráv, který chce váš vývojář použít:
- RabbitMQ: Tento zprostředkovatel zpráv se široce používá, open source a podporuje několik protokolů zasílání zpráv pro poskytování, fronty, témata a odběry.
- Apache Kafka: Tato služba zpracovává streamy událostí, které můžou zahrnovat zprávy, a zahrnuje rozhraní Kafka Connect API pro import a export dat do a z jiných systémů.
- Azure Service Bus: Tento zprostředkovatel zpráv je hostovaný v Azure a poskytuje fronty a distribuci zpráv na základě předplatného.
Ukládání součástí do mezipaměti
Když mikroslužba obdrží požadavek od uživatele nebo jiné mikroslužby, může být potřeba vytvořit odpověď pomocí dat z více umístění nebo složitých operací. Tato operace může nějakou dobu trvat. Ukládáním částí takových odpovědí do mezipaměti můžete ušetřit čas později, když přijde podobná nebo identická žádost. Ukládání do mezipaměti tímto způsobem optimalizuje výkon.
Jednou z oblíbených služeb mezipaměti je Redis. Obsahuje funkce zprostředkovatele zpráv a databáze v paměti, ale nejčastěji se používá k ukládání odpovědí ve webových aplikacích a službách do mezipaměti. .NET Aspire má tři různé komponenty, které pracují s Redisem. Zvolte komponentu založenou na úloze ukládání do mezipaměti, kterou chcete v mikroslužbě dosáhnout:
- Komponenta Redis: Tuto komponentu použijte, pokud chcete použít Redis jako databázi v paměti.
- Součást Ukládání výstupu Redis do mezipaměti: Tuto komponentu použijte, pokud chcete ukládat úplné odpovědi HTTP do mezipaměti, například celé webové stránky.
- Komponenta Redis Distributed Cache: Tuto komponentu použijte, pokud chcete vytvořit jednu mezipaměť pro více mikroslužeb ve vaší aplikaci.
Zabezpečení
V aplikaci nativní pro cloud je zabezpečení dat často důležitým tématem. Vzhledem k tomu, že vám zákazníci mohou důvěřovat s osobními a citlivými daty, musíte zajistit, aby byla šifrovaná a chráněná před zachycením nebo manipulací. Digitální podpisy a šifrování vyžadují uložení privátních klíčů a jejich načtení pro dešifrování. Azure Key Vault je jedno místo, kde můžete bezpečně ukládat klíče a další tajné kódy, jako jsou hesla a certifikáty.
.NET Aspire zahrnuje komponentu služby Azure Key Vault, abyste mohli tajné kódy snadno ukládat a načítat ve službě Azure Key Vault.