Den här arkitekturen baseras på den grundläggande arkitekturen för företagsintegrering men innehåller hur du integrerar backend-system för företag. Den här arkitekturen använder meddelandeköer och händelser för att frikoppla tjänster för bättre skalbarhet och tillförlitlighet. Se till att du är bekant med designen och komponenterna i den grundläggande integrationsarkitekturen. Dessa element ger grundläggande information om kärnkomponenterna i den här arkitekturen.
Arkitektur
De backend-system som den här designen refererar till innehåller SaaS-system (programvara som en tjänst), Azure-tjänster, meddelandebaserade tjänster och befintliga webbtjänster i företaget.
Ladda ned en Visio-fil med den här arkitekturen.
Information om scenario
Den föregående arkitekturen bygger på den enklare grundläggande företagsintegreringsarkitekturen som använder Azure Logic Apps för att samordna arbetsflöden direkt med serverdelssystem och använder Azure API Management för att skapa kataloger med API:er.
Den här versionen av arkitekturen lägger till två komponenter som gör systemet mer tillförlitligt och skalbart:
Azure Service Bus är en säker och tillförlitlig meddelandekö.
Azure Event Grid är en händelsedirigeringstjänst. Den använder en publicerings- och prenumerationshändelsemodell .
Den här arkitekturen använder asynkron kommunikation via en meddelandekö i stället för att göra direkta, synkrona anrop till serverdelstjänster. Asynkron kommunikation ger följande fördelar:
Använder mönstret Köbaserad belastningsutjämning för att hantera bursts i arbetsbelastningar via belastningsutjämning
Använder mönstret Publisher-Subscriber så att du kan skicka meddelanden till flera konsumenter
Spårar förloppet för långvariga arbetsflöden på ett tillförlitligt sätt, även när de omfattar flera steg eller flera program
Hjälper till att frikoppla program
Integrerar med befintliga meddelandebaserade system
Ger möjlighet att köa meddelanden när ett serverdelssystem inte är tillgängligt
Använd Event Grid så att olika komponenter i systemet kan reagera på händelser när de inträffar, i stället för att förlita sig på avsökningar eller schemalagda uppgifter. På samma sätt som i en meddelandekö och ämnen hjälper Event Grid till att frikoppla program och tjänster. Om ett program eller en tjänst publicerar händelser meddelas alla intresserade prenumeranter. Du kan lägga till nya prenumeranter utan att uppdatera avsändaren.
Många Azure-tjänster stöder sändning av händelser till Event Grid. En logikapp kan till exempel lyssna efter en händelse när nya filer läggs till i ett bloblager. Det här mönstret skapar reaktiva arbetsflöden där uppladdning av en fil eller att placera ett meddelande i en kö startar en serie processer. Processerna kan köras parallellt eller i en specifik sekvens.
Rekommendationer
Överväg följande rekommendationer. Fler rekommendationer finns i Grundläggande arkitektur för företagsintegrering.
Service Bus
Service Bus har två leveransmodeller, pull-modellen och den proxied push-modellen :
Pull-modell: Mottagaren söker kontinuerligt efter nya meddelanden. Om du behöver hantera flera köer och avsökningstider kan avsökningen vara ineffektiv. Men den här modellen kan förenkla din arkitektur eftersom den tar bort extra komponenter och datahopp.
Proxied push-modell: Mottagaren prenumererar först på en viss händelsetyp i ett Event Grid-ämne. När ett nytt meddelande är tillgängligt genererar och skickar Service Bus en händelse via Event Grid. Den här händelsen utlöser sedan mottagaren för att hämta nästa batch med meddelanden från Service Bus. Den här modellen gör det möjligt för system att ta emot meddelanden nästan i realtid, men utan att använda resurser för att kontinuerligt söka efter nya meddelanden. Den här arkitekturen använder extra komponenter som du måste distribuera, hantera och skydda.
När du skapar ett Standard Logic Apps-arbetsflöde som använder Service Bus-meddelanden rekommenderar vi att du använder de inbyggda anslutningsutlösarna för Service Bus. De inbyggda anslutningsutlösarna sammanfattar det mesta av pull-modellkonfigurationen utan att lägga till extra kostnad. Den här funktionen ger rätt balans mellan kostnad, ythantering och säkerhet eftersom anslutningsappen kontinuerligt loopar i Logic Apps-körningsmotorn. Mer information finns i Inbyggda anslutningsutlösare för Service Bus.
Använd PeekLock-läge för att komma åt en grupp meddelanden. När du använder PeekLock kan logikappen utföra steg för att verifiera varje meddelande innan du slutför eller avger meddelandet. Den här metoden förhindrar oavsiktlig meddelandeförlust.
Event Grid
När en Event Grid-utlösare utlöses innebär det att minst en händelse har inträffat. När en logikapp till exempel hämtar en Event Grid-utlösare för ett Service Bus-meddelande kan det finnas flera meddelanden att bearbeta.
Att tänka på
Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.
Tillförlitlighet
Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör gentemot dina kunder. Mer information finns i Checklista för designgranskning för tillförlitlighet.
Microsoft Entra ID är en globalt distribuerad SaaS-plattform med hög tillgänglighet.
Du kan distribuera API Management i flera konfigurationer med hög tillgänglighet, enligt affärskrav och kostnadstolerans. Mer information finns i Se till att API Management är tillgängligt och tillförlitligt.
Logic Apps-förbrukningsnivån stöder geo-redundant lagring. Mer information finns i Affärskontinuitet och haveriberedskap för Logic Apps.
Event Grid-resursdefinitioner för ämnen, systemämnen, domäner och händelseprenumerationer och händelsedata replikeras automatiskt mellan tillgänglighetszoner i en region. När det uppstår ett fel i någon av tillgänglighetszonerna redundansväxlar Event Grid-resurser automatiskt till en annan tillgänglighetszon utan mänsklig inblandning. Mer information finns i Haveriberedskap och affärskontinuitet mellan regioner.
Service Bus Premium stöder geo-haveriberedskap och tillgänglighetszoner. Service Bus Standard stöder replikering.
Information om garanterad tillgänglighetsinformation för varje tjänst finns i Serviceavtal för onlinetjänster.
Säkerhet
Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Checklista för designgranskning för säkerhet.
För att skydda Service Bus kopplar du Microsoft Entra-autentisering med hanterade identiteter. Microsoft Entra ID-integrering för Service Bus-resurser ger rollbaserad åtkomstkontroll i Azure (RBAC) för detaljerad kontroll över en klients åtkomst till resurser. Du kan använda Azure RBAC för att bevilja behörigheter till ett säkerhetsobjekt, till exempel en användare, en grupp eller ett huvudnamn för programtjänsten. Programtjänstens huvudnamn i det här scenariot är en hanterad identitet.
Om du inte kan använda Microsoft Entra-ID använder du SAS-autentisering (signatur för delad åtkomst) för att ge användarna åtkomst och specifika rättigheter till Service Bus-resurser.
Om du behöver exponera en Service Bus-kö eller ett ämne som en HTTP-slutpunkt, till exempel för att publicera nya meddelanden, använder du API Management för att skydda kön genom att fronta slutpunkten. Du kan sedan använda certifikat eller OAuth-autentisering för att skydda slutpunkten. Det enklaste sättet att skydda en slutpunkt är att använda en logikapp som har en HTTP-begäran eller svarsutlösare som mellanhand.
Event Grid-tjänsten hjälper till att skydda händelseleveransen via en valideringskod. Om du använder Logic Apps för att använda händelsen är valideringen automatisk. Mer information finns i Säkerhet och autentisering för Event Grid.
Nätverkssäkerhet
Överväg nätverkssäkerhet i hela designen.
Du kan binda Service Bus Premium till en tjänstslutpunkt för ett virtuellt nätverk. Den här konfigurationen skyddar namnområdet eftersom det endast accepterar trafik från auktoriserade virtuella nätverk. Du kan också använda Azure Private Link för att endast tillåta privat trafik till ditt virtuella nätverk via privata slutpunkter.
Du kan konfigurera Logic Apps Standard och Premium för att acceptera inkommande trafik via privata slutpunkter och skicka utgående trafik via integrering av virtuella nätverk.
Du kan använda ett virtuellt Azure-nätverk för att skydda åtkomsten till din API Management-instans och API:er. Den här metoden stöder privata slutpunkter. Mer information finns i Använda ett virtuellt nätverk med API Management.
Kostnadsoptimering
Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Checklista för designgranskning för kostnadsoptimering.
Normalt beräknar du kostnader med hjälp av priskalkylatorn för Azure. Här följer några andra överväganden.
API Management
Du debiteras för alla API Management-instanser när de körs. Om du skalar upp och sedan inte längre behöver den prestandanivån skalar du ned eller konfigurerar automatisk skalning manuellt.
För lätta användningsarbetsbelastningar bör du överväga förbrukningsnivån, vilket är ett billigt, serverlöst alternativ. Förbrukningsnivån faktureras per API-anrop. Andra nivåer faktureras per timme.
Logic Apps
Logic Apps använder en serverlös modell. Fakturering beräknas baserat på antalet åtgärder och anslutningsanrop. Mer information finns i avsnittet med priser för Logic Apps.
Service Bus-köer, ämnen och prenumerationer
Service Bus-köer och -prenumerationer stöder både proxierade push- och pull-modeller för att leverera meddelanden. I pull-modellen mäts varje avsökningsbegäran som en åtgärd. Även om du anger en lång avsökning till standardvärdet 30 sekunder kan kostnaden vara hög. Om du inte behöver leverans av meddelanden i realtid bör du överväga att använda den proxierade push-modellen.
Service Bus-köer ingår i alla nivåer: Basic, Standard och Premium. Service Bus-ämnen och -prenumerationer är tillgängliga på Standard- och Premium-nivåer. Mer information finns i Service Bus-priser.
Event Grid
Event Grid använder en serverlös modell. Fakturering beräknas baserat på antalet åtgärder. Åtgärderna omfattar händelser som går till domäner eller ämnen, avancerade matchningar, leveransförsök och hanteringsanrop. Användningen av upp till 100 000 åtgärder är kostnadsfri.
Mer information finns i Priser för Event Grid och Kostnadsoptimering för väldefinierade ramverk.
Driftseffektivitet
Operational Excellence omfattar de driftsprocesser som distribuerar ett program och håller det igång i produktion. Mer information finns i Checklista för designgranskning för Operational Excellence.
Den grundläggande referensarkitekturen för företagsintegrering ger vägledning om DevOps-mönster, som överensstämmer med grundpelare för välkonstruerat ramverk för driftskvalitet .
Automatisera återställningsåtgärder så mycket som möjligt för att förbättra driftskvaliteten. Med automatisering i åtanke kan du kombinera Azure-loggövervakning med Azure Automation för att automatisera redundansväxlingen av dina Service Bus-resurser. Ett exempel på automatiseringslogik för att initiera en redundansväxling finns i Redundansflöde.
Prestandaeffektivitet
Prestandaeffektivitet är arbetsbelastningens förmåga att skala för att uppfylla användarnas krav på ett effektivt sätt. Mer information finns i Checklista för designgranskning för prestandaeffektivitet.
För att uppnå högre skalbarhet kan Service Bus Premium-nivån skala ut antalet meddelandeenheter. Mer information finns i Service Bus Premium- och Standard-meddelandenivåer och funktionen Autoskalning.
Fler Service Bus-rekommendationer finns i Metodtips för prestandaförbättringar med hjälp av Service Bus-meddelanden.
Nästa steg
- Översikt över Integrering av Service Bus till Event Grid
- Självstudie som använder meddelanden för att integrera icke-Microsoft-system via NServiceBus