Udostępnij przez


Implementowanie skalowalnego systemu powiadomień przy użyciu platformy Power Platform

Platforma Microsoft Power Platform umożliwia skalowanie aplikacji biznesowych podczas integrowania z usługami w chmurze klasy korporacyjnej na potrzeby operacji o dużej ilości. Skalowalny system powiadomień używa tej funkcji do wysyłania przypomnień sms i e-mail dotyczących terminów przechowywanych w usłudze Microsoft Dataverse. Najważniejsze funkcje:

  • Powiadomienia automatycznie wyzwalane co tydzień, jeden dzień i godzinę przed terminem.
  • Możliwość aktualizowania lub anulowania powiadomień, gdy terminy są modyfikowane lub anulowane.
  • Usługa Power Apps służy jako interfejs użytkownika, który umożliwia użytkownikom efektywne zarządzanie terminami.
  • Obsługuje tysiące powiadomień dziennie przy zachowaniu niezawodności i wydajnej pracy.

System używa usługi Azure Service Bus do planowania na dużą skalę, usługi Azure Functions do przetwarzania i dostarczania danych oraz usługi Dataverse do trwałego i ciągłego śledzenia terminów i powiadomień. Powiadomienia są wysyłane za pośrednictwem usługi SendGrid na potrzeby poczty e-mail i usług Twilio lub Azure Communication Services dla wiadomości SMS.

Ta architektura zapewnia skalowalność, niezawodność i łatwość konserwacji, przezwyciężając ograniczenia polegania wyłącznie na usłudze Power Automate na potrzeby organizowania dużych ilości powiadomień.

Napiwek

Ten artykuł zawiera przykładowy scenariusz i uogólnioną architekturę przykładową, aby zilustrować sposób wysyłania przypomnień sms i wiadomości e-mail dotyczących terminów przechowywanych w usłudze Dataverse. Przykładowa architektura może być modyfikowana dla wielu różnych scenariuszy i branż.

Diagram architektury

Diagram architektury przedstawiający planowanie terminów usługi Power Apps za pomocą usług platformy Azure.

Workflow

Przepływ pracy systemu niezawodnie wysyła powiadomienia o prawidłowym czasie i obsługuje aktualizacje i anulowania:

  1. Tworzenie terminu: użytkownicy tworzą terminy za pośrednictwem aplikacji kanwy usługi Power Apps. Aplikacja zapisuje dane terminu bezpośrednio w usłudze Dataverse, zapewniając, że tylko autoryzowani użytkownicy mogą uzyskiwać dostęp do danych na podstawie ról zabezpieczeń.

  2. Wyzwalanie zdarzeń: gdy termin zostanie utworzony, zaktualizowany lub anulowany, usługa Dataverse wyzwala na serwerze proces, taki jak wtyczka, element webhook albo uproszczony przepływ usługi Power Automate. To zdarzenie inicjuje logikę planowania.

  3. Planowanie powiadomień: funkcja platformy Azure Scheduler oblicza czasy powiadomień przez jeden tydzień, jeden dzień i godzinę przed terminem. Następnie tworzy odpowiednie rekordy powiadomień w usłudze Dataverse i planuje komunikaty w usłudze Azure Service Bus, przechowując numery sekwencji dla przyszłych aktualizacji lub anulowania.

  4. Aktualizacje terminów: jeśli termin zostanie zmodyfikowany, funkcja harmonogramu anuluje wcześniej zaplanowane powiadomienia przy użyciu numerów sekwencji usługi Service Bus. Aktualizuje rekordy powiadomień w usłudze Dataverse i ponownie planuje powiadomienia na podstawie szczegółów nowego terminu.

  5. Anulowanie terminu: po anulowaniu terminu funkcja harmonogramu usuwa wszystkie oczekujące komunikaty z usługi Azure Service Bus i aktualizuje odpowiednie rekordy powiadomień w usłudze Dataverse jako anulowane.

  6. Dostarczanie powiadomień: procesy funkcji dostarczania na platformie Azure dostarczają zaplanowane wiadomości z Azure Service Bus. Wysyła powiadomienia e-mail za pośrednictwem usług SendGrid i SMS za pośrednictwem usług Twilio lub Azure Communication Services. Po wysłaniu funkcja aktualizuje rekord powiadomień o stanie, próbach ponowienia i wszelkich informacjach o błędach.

  7. Monitorowanie i obserwowanie: usługi Application Insights i Azure Monitor śledzą wykonywanie funkcji, kondycję kolejki, powodzenie dostarczania i niepowodzenia. Kolejki utraconych komunikatów w usłudze Service Bus przechwytują komunikaty niemożliwe do dostarczenia na potrzeby późniejszej analizy.

Components

  • Power Apps (aplikacja kanwy): aplikacja kanwy Power Apps służy jako podstawowy interfejs użytkownika do zarządzania terminami. Umożliwia użytkownikom tworzenie, aktualizowanie lub anulowanie terminów w intuicyjnym interfejsie z małą ilością kodu. Aplikacja canvas współdziała bezpośrednio z usługą Dataverse, aby odczytywać i zapisywać rekordy terminów i powiadomień. Udostępnia również użytkownikowi opinię w czasie rzeczywistym na temat pomyślnego utworzenia, aktualizacji lub anulowania terminów. Interfejs użytkownika został zaprojektowany tak, aby weryfikował wprowadzanie danych, obsługiwał konflikty, takie jak nakładające się terminy i zapewniał zlokalizowane strefy czasowe dla powiadomień.

  • Dataverse

    • Tabela terminów: Usługa Dataverse działa jako system rekordu dla wszystkich informacji o terminach. Każdy wpis terminu zawiera szczegółowe informacje, takie jak pacjent lub użytkownik, czas spotkania, typ usługi i stan. Tabela terminów jest przeznaczona do wyzwalania zdarzeń przy operacjach tworzenia, aktualizacji lub usuwania. Funkcja platformy Azure scheduler nasłuchuje tych zdarzeń, aby obliczyć i zaplanować powiadomienia. Usługa Dataverse zapewnia wbudowane zabezpieczenia za pośrednictwem kontroli dostępu opartej na rolach, uprawnień na poziomie pola i inspekcji, zapewniając, że poufne informacje o terminach są dostępne tylko dla odpowiednich użytkowników. Ponadto integracja z Power Platform zapewnia dostęp z małym opóźnieniem oraz bezproblemową interakcję z innymi składnikami.

    • Tabela powiadomień: tabela Powiadomień przechowuje metadane dla każdego zaplanowanego powiadomienia, śledzenie kanału (SMS lub e-mail), zaplanowany czas dostawy, stan (Zaplanowane, Wysłane, Niepowodzenie lub Anulowane), liczba prób i skojarzony numer sekwencji usługi Service Bus. System zapewnia śledzenie, raportowanie i obsługę błędów w czasie rzeczywistym dla wszystkich powiadomień dzięki obsłudze tych danych w usłudze Dataverse. Tabela umożliwia administratorom przeprowadzanie inspekcji historii dostarczania, monitorowanie nieudanych prób i podejmowanie działań naprawczych w razie potrzeby. Obsługuje również automatyczne aktualizacje wyzwalane przez zmiany terminu, zapewniając, że powiadomienia pozostają dokładne.

  • Azure Functions

    • Scheduler: Funkcja Scheduler oblicza czasy powiadomień na podstawie szczegółów terminu. Określa przypomnienia przez jeden tydzień, jeden dzień i godzinę przed terminem i tworzy odpowiednie rekordy w usłudze Dataverse. Planuje również komunikaty w usłudze Azure Service Bus, przechowując numery sekwencji wiadomości, aby umożliwić przyszłe anulowanie lub ponowne zaplanowanie. Ta funkcja może obsługiwać duże ilości terminów bez obniżania wydajności i zapewnia idempotentność, dzięki czemu nie planuje zduplikowanych powiadomień. Jego bezserwerowy projekt umożliwia automatyczne skalowanie na podstawie obciążenia zdarzeń i zapewnia wydajność operacyjną.

    • Dostarczanie: Funkcja dostarczania przetwarza komunikaty z usługi Azure Service Bus po upływie zaplanowanego czasu dostawy. Określa prawidłowy kanał dla każdego powiadomienia, na przykład za pośrednictwem usługi SendGrid lub SMS za pośrednictwem usług Twilio/Azure Communication Services, i odpowiednio wysyła wiadomość. Po zakończeniu dostarczania aktualizuje rekord powiadomień w usłudze Dataverse, wprowadzając stan, a w przypadku wystąpienia awarii ponawia próbę. Funkcja implementuje również mechanizmy obsługi błędów, rejestrowania i ponawiania prób, zapewniając niezawodne dostarczanie komunikatów w przypadku przejściowych awarii lub limitów szybkości dostawcy. Skaluje się automatycznie wraz z liczbą komunikatów w usłudze Service Bus, aby obsługiwać nagłe wzrosty liczby powiadomień.

  • Azure Service Bus: usługa Azure Service Bus jest szkieletem systemu planowania powiadomień. Zapewnia trwałe, wysokoprzepustowe i czasowo zoptymalizowane kolejkowanie komunikatów, zapewniając dostarczanie komunikatów dokładnie wtedy, gdy są potrzebne. Numery w sekwencji umożliwiają anulowanie lub zmianę harmonogramów komunikatów, jeśli nastąpiła zmiana terminu, zachowując spójność. Usługa Service Bus obsługuje również kolejki wiadomości odrzuconych w celu przechwytywania komunikatów, które nie zostały dostarczone po wielokrotnych próbach, umożliwiając badanie i korygowanie błędów przez administratorów. Możliwość oddzielenia planowania od dostarczania zapewnia, że system pozostaje dynamiczny i skalowalny.

  • Dostawcy poczty e-mail i wiadomości SMS: zewnętrzne usługi komunikacyjne obsługują rzeczywiste dostarczanie powiadomień. Usługa SendGrid służy do wysyłania powiadomień e-mail, zapewniając niezawodne śledzenie, analizę i mechanizmy ponawiania prób. Usługi Twilio i Azure Communication Services dostarczają powiadomienia SMS, obsługując wiadomości tekstowe o wysokiej ilości, zapewniając niezawodność. Funkcja dostarczania współdziała z tymi dostawcami przy użyciu bezpiecznych kluczy interfejsu API przechowywanych w usłudze Azure Key Vault i implementuje strategie ponawiania prób w celu obsługi błędów przejściowych lub problemów z ograniczaniem szybkości. Dzięki outsourcingowi dostaw do wyspecjalizowanych dostawców system zapewnia wysoką niezawodność i zmniejsza nakład pracy operacyjnej.

  • Azure Key Vault: możesz bezpiecznie przechowywać wszystkie poufne poświadczenia i klucze interfejsu API w usłudze Azure Key Vault. Usługa Azure Functions uzyskuje dostęp do tajemnic za pośrednictwem tożsamości zarządzanych, co eliminuje konieczność przechowywania poufnych danych w kodzie lub plikach konfiguracyjnych. Usługa Key Vault zapewnia, że szyfruje poświadczenia w spoczynku, audytuje dostęp i automatycznie stosuje zasady rotacji w celu zapewnienia zgodności z wymogami bezpieczeństwa.

  • Narzędzia do monitorowania i obserwacji: system używa usług Application Insights i Azure Monitor, aby zapewnić pełny wgląd w kondycję i wydajność rozwiązania. Application Insights śledzi wykonania funkcji, kolejki, stan dostarczania i błędy, podczas gdy Azure Monitor wysyła alerty dotyczące nietypowego zachowania, zaległości komunikatów lub awarii usługi. Dzienniki i dane telemetryczne można używać do rozwiązywania problemów, analizy operacyjnej i planowania pojemności, zapewniając administratorom informacje niezbędne do utrzymania wysokiej niezawodności operacyjnej i wydajności.

Szczegóły scenariusza

To rozwiązanie jest przeznaczone dla organizacji, które muszą wysyłać terminowe przypomnienia o zaplanowanych spotkaniach, takich jak kliniki opieki zdrowotnej, centra szczepień lub firmy oparte na usługach. Użytkownicy korzystają z usługi Power Apps, aby wprowadzić szczegóły terminu, które są przechowywane w usłudze Dataverse i natychmiast przetwarzane w celu zaplanowania powiadomień. System automatycznie oblicza czasy przypomnienia, takie jak jeden tydzień, jeden dzień i godzinę przed terminem, i zapewnia, że dostarcza te przypomnienia za pośrednictwem odpowiedniego kanału.

System może obsługiwać tysiące codziennych powiadomień bez obniżenia wydajności, dzięki rozdzieleniu zarządzania terminami, planowania i dostarczania komunikatów. Gwarantuje to, że przypomnienia będą nadal dokładne nawet wtedy, gdy terminy są przesuwane lub anulowane przez dynamiczne zmienianie lub usuwanie komunikatów usługi Service Bus. Każdy krok procesu jest rejestrowany i śledzony. Takie podejście gwarantuje, że zarówno administratorzy, jak i pracownicy pomocy technicznej mają wgląd w zachowanie systemu i stan każdego wysyłanego powiadomienia.

Rozważania

Te rozważania wdrażają filary Power Platform Well-Architected, zestaw zasad przewodnich, które poprawiają jakość obciążenia. Dowiedz się więcej w Microsoft Power Platform artykule Dobrze zaprojektowane środowisko.

Zabezpieczenia

System integruje zabezpieczenia w całym systemie, używając Microsoft Entra ID dla tożsamości oraz ról Dataverse w celu ograniczenia dostępu do terminów i powiadomień. Użytkownicy usługi Power Apps uwierzytelniają się przy użyciu identyfikatora Microsoft Entra ID, zapewniając, że wszystkie interakcje z usługą Dataverse są autoryzowane i rejestrowane. Usługa Azure Functions używa tożsamości zarządzanych do bezpiecznej interakcji z usługami Dataverse, Service Bus i Key Vault bez przechowywania poświadczeń w kodzie lub plikach konfiguracji.

Przechowuj poufne poświadczenia, takie jak klucze SendGrid i Twilio, tylko w usłudze Azure Key Vault i uzyskaj do nich dostęp za pośrednictwem tożsamości zarządzanych. Możesz dodatkowo zabezpieczyć komunikację między usługami platformy Azure przy użyciu prywatnych punktów końcowych i sieci wirtualnych, co zmniejsza narażenie na publiczny Internet. Wszystkie wymiany komunikatów między składnikami systemu są zgodne z zaszyfrowanymi standardami komunikacyjnymi w celu ochrony danych magazynowanych i przesyłanych.

Doskonałość operacyjna

Osiągasz doskonałość operacyjną dzięki ciągłemu monitorowaniu, obserwacji i zautomatyzowanemu zgłaszaniu alertów. Usługa Application Insights zbiera szczegółowe dane telemetryczne z usługi Azure Functions, w tym czasy wykonywania, błędy, ponawianie prób i metryki wydajności. Azure Monitor śledzi kondycję kolejek usługi Azure Service Bus, identyfikując potencjalne wąskie gardła lub zaległości. Kolejki wiadomości odrzuconych zapewniają mechanizm przechwytywania i rozwiązywania problemów z komunikatami, które nie zostały przetworzone po wielu próbach.

Administratorzy mogą konfigurować alerty w celu powiadamiania ich o błędach związanych z przetwarzaniem komunikatów, awariami dostawcy lub nietypowym wzrostem kolejki. Usługa Dataverse utrzymuje dziennik inspekcji w tabeli Powiadomień, umożliwiając administratorom śledzenie cyklu życia każdego powiadomienia. Ponieważ usługa Azure Functions jest bezstanowa i jest skalowana automatycznie, system może reagować na nagłe wzrosty głośności komunikatów bez ręcznej interwencji, zapewniając spójną wydajność i czas pracy.

Efektywność operacyjna

Architektura jest zoptymalizowana pod kątem wysokiej wydajności i skalowalności. Usługa Azure Service Bus umożliwia wydajną obsługę zaplanowanych powiadomień bez nadmiernych opóźnień, które występowałyby przy użyciu Power Automate. Rozdzielenie planowania i dostarczania na oddzielne funkcje umożliwia każdemu składnikowi niezależne skalowanie na podstawie zapotrzebowania. Funkcja dostarczania korzysta z automatycznego skalowania, dzięki czemu może przetwarzać skoki liczby komunikatów wychodzących bez wpływu na systemy dostępne dla użytkowników.

Ponadto użycie tożsamości zarządzanych i strategii buforowania na potrzeby uwierzytelniania dostawcy zmniejsza opóźnienie podczas dostarczania komunikatów. System minimalizuje niepotrzebne obciążenie magazynu, zachowując tylko podstawowe metadane w usłudze Dataverse i obsługujące strategie archiwizacji dla starszych powiadomień. Łącząc możliwości platformy Power Platform z skalowalną infrastrukturą obsługi komunikatów platformy Azure, system zapewnia szybkie, wydajne i ekonomiczne dostarczanie powiadomień w skali przedsiębiorstwa.

Contributor

Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.

Główni autorzy: