Skip to content

Latest commit

 

History

History
102 lines (86 loc) · 4.95 KB

5.2. Configure Message-based integration architecture.md

File metadata and controls

102 lines (86 loc) · 4.95 KB

Configure Message-based integration architecture

Configure to send emails

  • Use SendGrid
    • Flexible API, scalable, real-time analytics & sent messages, transactional.
    • C# has SDKs.

Configure an event and publish model

  • Stipulation: Requirement that applications will handle high volume and velocity.
    • Stipulate: make an agreement or to demand
    • Applications in serial manner is difficult to meet the stipulation
    • Solution event driven architecture.
  • An event-driven architecture consists of event producers that generate a stream of events and event consumers that listen for the events.
  • Decoupling: producers from consumers, consumers from each other.
  • Common implementations
    • Simple event processing
      • Event immediately triggers an action.
      • E.g. Azure Functions with Azure Service Bus trigger.
    • Complex event processing
      • Looks at series of events to look for patterns.
      • E.g. Azure Stream Analytics or Apache Storm.
    • Event stream processing
      • Streaming platform as pipeline to ingest event and feed them to processors.
      • Ex. Azure IoT Hub or Apache Kafka.

Azure Event Grid

  • Built-in supports for incoming events from Azure services, supports also custom application & third party events via webhooks/custom topics.

  • You can filter & route events to different points, or use multicasting to send events to multiple end-points.

  • Concepts:

    • Event sources sends Topics.
    • Event handlers listens to Topics via Event Subscriptions
  • Subscribe to Blob Storage events to send to an endpoint

    • Supported only in Blob Storage or General Purpose v2

    • Using Azure CLI

        az group create --name DemoGroup --location eastus
        az storage account create --name demostor --location eastus --resource-group DemoGroup --sku Standard\_LRS --kind BlobStorage --access-tier Hot
        az eventgrid event-subscription create --resource-id $storageid –name contosostoragesub --endpoint https://contoso.com/api/update
  • Security and authentication

    • Three types:
      • Webhook event delivery
        • ValidationCode handshake (programmatic)
          • Application gets validation code & echoes back.
        • ValidationURL handshake (manual)
          • Send GET request to validation URL.
      • Event subscriptions
        • Requires Microsoft.EventGrid/EventSubscriptions/Write permission on the resource.
      • Custom topic publishing
        • SAS (recommended) or key authentication: include the resource, an expiration time, and a signature

Configure the Azure Relay service

  • Reveals on-prem to cloud for different communications (request/response, P2P, publish/subscribe)
    • Especially bidirectional via webhooks.
  • It only uses outbound port from on-prem for extra security.
  • Flow
    • Client => Azure Relay service => Gateway node (each has its own relay/input)
      • It's listening request (bidirectional)?
        • Creates a new relay
      • It's a request to a specific relay
        • Gateway forwards to gateway node that's own the relay.
        • Relay owning gateway sends rendezvous request to client.
          • Rendezvous: temporary channel to exchange messages.
  • In Node.js
    • ws package: WebSocket protocol client library
    • hyco-ws package: Extends ws where Azure Relay is built.
    • Use hycows.Server instead of ws.Server, mostly contract compatible
  • Applications can authenticate to Azure Relay using Shared Access Signature (SAS) authentication
    • You set permissions as authorization rules in a Relay namespace.

Create & configure a Notification hub

  • Azure Notification Hub provides server to client mobile app communication through push notifications.
  • From any back-end (cloud or on-prem) to any platform (iOS, Android, Windows..)
  • Delivered through Platform Notification Systems (PNSs) to Platform specific infrastructures
    • Provides handle to push notifications
    • No common interface, different for IOS, Android, Windows.
  • Multi-platform, scaled abstraction of PNSs, no handles, send notifications there and it routes further to users/interest groups.
  • cases: location based coupons to segments, breaking news to all, codes for MFA.
  • Flow : Client app contacts PNS to retrieve push handle, it stores the handle and uses to push notifications.
  • SDKS for IOS, Xamarin, C# exists.

Configure with Microsoft Graph

  • Unified API for Microsoft cloud services such as 1 :
    • Azure AD
    • Microsoft 365
    • Windows 10 (activities and devices)
    • Microsoft Enterprise Mobility (Microsoft Identity Manager, Microsoft Intune, Microsoft Advanced Threat Analytics, and Microsoft Defender for Identity)
    • Dynamics 365 Business Central
    • See Major services and features in Microsoft Graph.
  • Uses relationships such as memberOf