Wybór usługi Azure w zależności od algorytmu

0

Hej. Chciałbym poprosić Was o pomoc w określeniu konkretnej usługi Azure, przy pomocy których jest możliwe zaimplementowanie algorytmu działania, oraz wskazanie ich zalet względem problemu. A teraz opisze jak miałoby to działać :
Załóżmy, że pracujesz przy systemie, który w oparciu o dane z zewnętrznego systemu adresowego (np. rejestru TERYT), dostarcza możliwość wyszukiwania adresów na terenie kraju. System dostarcza swoje dane codziennie w nocy w plikach zip, a Twój system powinien być każdej nocy zaktualizowany, przy pomocy poniższych kroków:

  1. Codziennie o godzinie 4:15 należy sprawdzić, czy pojawił się nowy plik z danymi z zewnętrznego systemu (dostępny po HTTP)
  2. Jeśli tak, należy zaimportować go do wewnętrznej bazy danych i przygotować raport zmian.
  3. Należy wysłać maila z linkiem do pliku z raportem lub z informacją że nie było nowego pliku.

Z takich ważnych założeń to :
a) Danych może być bardzo dużo więc proces importu może trwać do kilku godzin.
b) Powinna istnieć możliwość sprawdzenia statusu procesu.
c) System powinien być odporny na możliwe, chwilowe zakłócenia w działaniu zewnętrznego systemu

Z góry dziękuję za pomoc ;)

0

Może po prostu App Service z Hangfire? Miałbyś joba, który odpalałby się raz na dzień o 4:15, który byłby odpowiedzialny jedynie za sprawdzenie czy pojawił się nowy ZIP i jeżeli tak to skopiowałbym go do jakiegoś zasobu (może być Azure Storege) oraz ten job zakolejkowałby kolejnego joba który jest odpowiedzialny za przetwarzanie tych danych. W Hangfire masz dashboard więc możesz sprawdzać postęp pracy, możesz wypluwać jakieś dodatkowe logi, no i wynikiem końcowym również było by wysłanie emaila z linkiem do konkretnego joba w Hangfire jako ów raport - jeżeli takie coś spełni oczekiwania.

0

Można też zrobić to w modelu serverless, żeby nie płacić za ciągłe działanie usługi takiej jak AppService, ale tu trzeba dobrze policzyć koszty, co się będzie bardziej opłacać. Bez twardych danych ciężko powiedzieć.

Wyglądałoby to tak, że jest Azure Function która o zadanej godzinie kopiuje plik zip na storage (Storage Account), po umieszczeniu pliku na storage wyzwalana jest kolejna funkcja która uruchamia kontener (Azure Container Instances), który przetwarza dane i po skończonej pracy wysyła email z powiadomieniem. Plusem tego rozwiązania w stosunku do AppService jest to że płacisz tylko za czas działania funkcji i kontenera - po skończonej pracy kontener jest usuwany i za każdym razem tworzony na nowo przez Azure Function gdy jest taka potrzeba.

Ewentualnie można rozdzielić przetwarzanie danych i wysyłanie powiadomienia za pomocą jakiejś kolejki, ale na ten moment wydaje mi się, że była by to przesada.

1 użytkowników online, w tym zalogowanych: 0, gości: 1