Próbuję ustalić, której usługi Azure użyć, aby utworzyć aplikację rozproszoną. Aplikacja składa się z
- Aplikacja komputerowa (Windows) pobierająca, manipulująca i przechowująca dane na platformie Azure
- Backend, który przechowuje dane i przetwarza je w tle.
- Front sieciowy, który pozwala mi przeglądać dane i uruchamiać przetwarzanie w tle w backend
- Dowolna liczba instancji aplikacji komputerowych może łączyć się z zapleczem i uzyskiwać dostęp do tych samych danych
Aplikacja komputerowa i aplikacja internetowa będą wysyłać i odbierać dane do zaplecza. Każda wiadomość może mieć do 100 MB (obrazy itp.).
Wszechświat Azure jest nieco przytłaczający, a ja próbuję dowiedzieć się, jak to ustawić.
Moją pierwszą myślą jest pozwolić na pulpitaplikacja komunikuje się z usługą Cloud Azure za pomocą WCF. Usługa w chmurze jest skonfigurowana z rolą WWW WCF. Odrębna aplikacja internetowa (rola internetowa?) Komunikuje się z tą samą rolą WWW WCF.
Rola WCF spowoduje również uruchomienie ról roboczych w celu wykonania bardziej intensywnego i czasochłonnego przetwarzania.
Wszelkie pomysły i wgląd są mile widziane! :)
Odpowiedzi:
0 dla odpowiedzi № 1Do usługi WCF i interfejsu WWW możesz użyćzarówno usługa Azure Cloud, jak i App Service - zależy to w dużej mierze od tego, czy musisz zainstalować jakieś zewnętrzne komponenty na komputerze (usługa Azure Cloud pozwala to zrobić).
W przypadku przetwarzania w tle użyj aplikacji sieci Web w aplikacjiUsługi lub rola pracownika w usłudze chmurowej. Powinieneś także użyć kolejki (lubię więcej magistrali usług, a następnie kolejkę Azure z konta magazynu). Rola pracownika lub zadanie sieciowe powinna monitorować tę kolejkę, a po umieszczeniu w niej wiadomości należy uruchomić przetwarzanie w tle. Przetwarzanie w tle można wykonać również w samym procesie WCF, ale użycie ról roboczych lub zadań sieci Web pozwala zapewnić większą dostępność.
Do przechowywania obiektów typu blob (takich jak obrazy) zdecydowanie używajMicrosoft Storage (Blobs), dla innych danych możesz użyć Sql Database lub czegoś całkiem nowego: DocumentDB. Sql Database jest prostsze w użyciu i łatwiejsze do przenoszenia danych na inne serwery itp., Ale jest droższe.
Oczywiście możesz to samo zrobić na maszynach wirtualnych, ale myślę, że nie było to coś, o co prosiłeś :)