Ten artykuł zawiera podstawową architekturę przeznaczoną do nauki uruchamiania aplikacji internetowych w usłudze aplikacja systemu Azure w jednym regionie.
Ważne
Ta architektura nie jest przeznaczona do użycia w aplikacjach produkcyjnych. Jest to architektura wprowadzająca, której można użyć do celów uczenia się i weryfikacji koncepcji. Podczas projektowania aplikacji usługi aplikacja systemu Azure produkcyjnej zobacz podstawową aplikację internetową strefowo nadmiarową o wysokiej dostępności.
Ważne
Wskazówki są wspierane przez przykładową implementację, która prezentuje tę podstawową implementację usługi App Service na platformie Azure. Ta implementacja może służyć jako podstawa do pracy z usługą aplikacja systemu Azure Service.
Architektura
Rysunek 1. Podstawowa architektura usługi aplikacja systemu Azure
Pobierz plik programu Visio z tą architekturą.
Przepływ pracy
- Użytkownik wysyła żądanie HTTPS do domyślnej domeny usługi App Service w azurewebsites.net. Ta domena automatycznie wskazuje wbudowany publiczny adres IP usługi App Service. Połączenie TLS jest nawiązywane bezpośrednio z klienta do usługi App Service. Certyfikat jest całkowicie zarządzany przez platformę Azure.
- Easy Auth, funkcja usługi aplikacja systemu Azure, zapewnia, że użytkownik, który uzyskuje dostęp do witryny, jest uwierzytelniany przy użyciu identyfikatora Microsoft Entra.
- Kod aplikacji wdrożony w usłudze App Service obsługuje żądanie. Na przykład ten kod może łączyć się z wystąpieniem usługi Azure SQL Database przy użyciu parametry połączenia skonfigurowanego w usłudze App Service skonfigurowanego jako ustawienie aplikacji.
- Informacje o oryginalnym żądaniu do usługi App Service i wywołaniu usługi Azure SQL Database są rejestrowane w usłudze Application Insights.
Składniki
- Microsoft Entra ID to oparta na chmurze usługa zarządzania tożsamościami i dostępem. Zapewnia on jedną płaszczyznę kontroli tożsamości do zarządzania uprawnieniami i rolami użytkowników, którzy uzyskują dostęp do aplikacji internetowej. Integruje się z usługą App Service i upraszcza uwierzytelnianie i autoryzację dla aplikacji internetowych.
- App Service to w pełni zarządzana platforma do tworzenia, wdrażania i skalowania aplikacji internetowych.
- Azure Monitor to usługa monitorowania, która zbiera, analizuje i działa na danych telemetrycznych w całym wdrożeniu.
- Azure SQL Database to zarządzana usługa relacyjnej bazy danych dla danych relacyjnych.
Zalecenia i zagadnienia
Składniki wymienione w tej architekturze zawierają link do przewodników usługi Azure Well-Architected. Przewodniki dotyczące usług szczegółowo opisują zalecenia i zagadnienia dotyczące określonych usług. Ta sekcja rozszerza te wskazówki, wyróżniając najważniejsze zalecenia i zagadnienia dotyczące platformy Azure Well-Architected Framework, które mają zastosowanie do tej architektury. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.
Ta podstawowa architektura nie jest przeznaczona do wdrożeń produkcyjnych. Architektura faworyzuje prostotę i efektywność kosztową nad funkcjonalnością, aby umożliwić ocenę i poznanie usługi aplikacja systemu Azure Service. W poniższych sekcjach opisano pewne braki tej podstawowej architektury wraz z zaleceniami i zagadnieniami.
Niezawodność
Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca niezawodności.
Ponieważ ta architektura nie jest przeznaczona do wdrożeń produkcyjnych, poniżej przedstawiono niektóre krytyczne funkcje niezawodności pominięte w tej architekturze:
- Plan usługi App Service jest skonfigurowany dla
Standard
warstwy, która nie obsługuje stref dostępności platformy Azure. Usługa App Service stanie się niedostępna w przypadku wystąpienia, stojaka lub centrum danych hostowania wystąpienia. - Usługa Azure SQL Database jest skonfigurowana dla
Basic
warstwy, która nie obsługuje nadmiarowości strefowej. Oznacza to, że dane nie są replikowane w strefach dostępności platformy Azure, ryzykując utratę zatwierdzonych danych w przypadku awarii. - Wdrożenia w tej architekturze mogą spowodować przestój z wdrożeniami aplikacji, ponieważ większość technik wdrażania wymaga ponownego uruchomienia wszystkich uruchomionych wystąpień. Podczas tego procesu użytkownicy mogą napotkać błędy 503. Ten problem został rozwiązany w architekturze punktu odniesienia za pośrednictwem miejsc wdrożenia. Staranne projektowanie aplikacji, zarządzanie schematami i obsługa konfiguracji aplikacji są niezbędne do obsługi współbieżnego wdrożenia miejsca. Użyj tej weryfikacji koncepcji, aby zaprojektować i zweryfikować podejście do wdrożenia produkcyjnego opartego na miejscu.
- Skalowanie automatyczne nie jest włączone w tej podstawowej architekturze. Aby zapobiec problemom z niezawodnością z powodu braku dostępnych zasobów obliczeniowych, należy przeprowizować, aby zawsze działać z wystarczającą ilością zasobów obliczeniowych do obsługi maksymalnej pojemności współbieżnej.
Zobacz, jak przezwyciężyć te problemy z niezawodnością w sekcji Niezawodność w sekcji Punkt odniesienia aplikacji internetowej o wysokiej dostępności strefowo nadmiarowej.
Jeśli to obciążenie będzie ostatecznie wymagać architektury aktywne-aktywne-aktywne lub aktywne-pasywne w wielu regionach, zobacz następujące zasoby:
- Podejścia aplikacji usługi App Service z wieloma regionami do odzyskiwania po awarii, aby uzyskać wskazówki dotyczące wdrażania obciążenia hostowanego przez usługę App Service w wielu regionach.
- Aplikacja internetowa o wysokiej dostępności w wielu regionach dla architektury referencyjnej, która jest zgodna z podejściem aktywny-pasywny.
Zabezpieczenia
Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca zabezpieczeń.
Ponieważ ta architektura nie jest przeznaczona do wdrożeń produkcyjnych, poniżej przedstawiono niektóre krytyczne funkcje zabezpieczeń, które zostały pominięte w tej architekturze, wraz z innymi zaleceniami dotyczącymi niezawodności i zagadnieniami:
Ta podstawowa architektura nie implementuje prywatności sieci. Płaszczyzny danych i zarządzania dla zasobów, takich jak usługa aplikacja systemu Azure i program Azure SQL Server, są dostępne za pośrednictwem publicznego Internetu. Pomijanie sieci prywatnej znacznie zwiększa obszar ataków architektury. Aby zobaczyć, jak implementowanie sieci prywatnej zapewnia następujące funkcje zabezpieczeń, zobacz sekcję sieciową w aplikacji internetowej o wysokiej dostępności punktu odniesienia o wysokiej dostępności:
- Pojedynczy bezpieczny punkt wejścia dla ruchu klienckiego
- Ruch sieciowy jest filtrowany zarówno na poziomie pakietu, jak i na poziomie DDoS.
- Eksfiltracja danych jest zminimalizowana przez utrzymywanie ruchu na platformie Azure przy użyciu usługi Private Link
- Zasoby sieciowe są logicznie grupowane i odizolowane od siebie za pośrednictwem segmentacji sieci.
Ta podstawowa architektura nie obejmuje wdrożenia usługi Azure Web Application Firewall. Aplikacja internetowa nie jest chroniona przed typowymi lukami w zabezpieczeniach i lukami w zabezpieczeniach. Zobacz implementację punktu odniesienia, aby zobaczyć, jak można zaimplementować zaporę aplikacji internetowej za pomocą usługi aplikacja systemu Azure Gateway w architekturze usług aplikacja systemu Azure.
Ta podstawowa architektura przechowuje wpisy tajne, takie jak usługa Azure SQL Server parametry połączenia w ustawieniach aplikacji. Podczas szyfrowania ustawień aplikacji podczas przechodzenia do środowiska produkcyjnego rozważ przechowywanie wpisów tajnych w usłudze Azure Key Vault w celu zwiększenia ładu. Jeszcze lepszym rozwiązaniem jest użycie tożsamości zarządzanej do uwierzytelniania i brak wpisów tajnych przechowywanych w parametry połączenia.
Pozostawienie zdalnego debugowania i punktów końcowych Kudu włączonych podczas opracowywania lub fazy weryfikacji koncepcji jest w porządku. Po przejściu do środowiska produkcyjnego należy wyłączyć niepotrzebną płaszczyznę sterowania, wdrożenie lub dostęp zdalny.
Pozostawienie lokalnych metod uwierzytelniania dla wdrożeń witryn FTP i SCM jest w porządku podczas fazy opracowywania lub weryfikacji koncepcji. Po przejściu do środowiska produkcyjnego należy wyłączyć uwierzytelnianie lokalne do tych punktów końcowych.
Nie musisz włączać usługi Microsoft Defender for App Service w fazie weryfikacji koncepcji. Podczas przechodzenia do środowiska produkcyjnego należy włączyć usługę Defender dla usługi App Service w celu wygenerowania zaleceń dotyczących zabezpieczeń, które należy zaimplementować w celu zwiększenia stanu zabezpieczeń i wykrywania wielu zagrożeń w usłudze App Service.
usługa aplikacja systemu Azure obejmuje punkt końcowy SSL w poddomenie bez
azurewebsites.net
dodatkowych kosztów. Żądania HTTP są domyślnie przekierowywane do punktu końcowego HTTPS. W przypadku wdrożeń produkcyjnych zazwyczaj używasz domeny niestandardowej skojarzonej z usługą Application Gateway lub usługą API Management przed wdrożeniem usługi App Service.Użyj zintegrowanego mechanizmu uwierzytelniania dla usługi App Service ("EasyAuth").. Usługa EasyAuth upraszcza proces integrowania dostawców tożsamości z aplikacją internetową. Obsługuje uwierzytelnianie poza aplikacją internetową, więc nie trzeba wprowadzać znaczących zmian w kodzie.
Użyj tożsamości zarządzanej dla tożsamości obciążeń. Tożsamość zarządzana eliminuje konieczność zarządzania poświadczeniami uwierzytelniania przez deweloperów. Podstawowa architektura uwierzytelnia się w programie SQL Server za pomocą hasła w parametry połączenia. Rozważ użycie tożsamości zarządzanej do uwierzytelniania w programie Azure SQL Server.
Aby zapoznać się z innymi zagadnieniami dotyczącymi zabezpieczeń, zobacz Zabezpieczanie aplikacji w usłudze aplikacja systemu Azure Service.
Doskonałość operacyjna
Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Lista kontrolna projektu dotycząca doskonałości operacyjnej.
Poniższe sekcje zawierają wskazówki dotyczące konfiguracji, monitorowania i wdrażania aplikacji usługi App Service.
Konfiguracje aplikacji
Ponieważ podstawowa architektura nie jest przeznaczona do środowiska produkcyjnego, używa konfiguracji usługi App Service do przechowywania wartości konfiguracji i wpisów tajnych. Przechowywanie wpisów tajnych w konfiguracji usługi App Service jest odpowiednie dla fazy weryfikacji koncepcji. Nie używasz prawdziwych wpisów tajnych i nie wymagasz ładu wpisów tajnych, których wymagają obciążenia produkcyjne.
Poniżej przedstawiono zalecenia i zagadnienia dotyczące konfiguracji:
- Rozpocznij od użycia konfiguracji usługi App Service do przechowywania wartości konfiguracji i parametry połączenia w ramach weryfikacji wdrożeń koncepcji. Ustawienia aplikacji i parametry połączenia są szyfrowane i odszyfrowywane tuż przed wstrzyknięciem do aplikacji po jej uruchomieniu.
- Po przejściu do fazy produkcyjnej zapisz wpisy tajne w usłudze Azure Key Vault. Korzystanie z usługi Azure Key Vault usprawnia zarządzanie wpisami tajnymi na dwa sposoby:
- Zewnętrzne przechowywanie wpisów tajnych w usłudze Azure Key Vault umożliwia scentralizowanie magazynu wpisów tajnych. Masz jedno miejsce do zarządzania wpisami tajnymi.
- Za pomocą usługi Azure Key Vault można rejestrować każdą interakcję z wpisami tajnymi, w tym za każdym razem, gdy uzyskuje się dostęp do wpisu tajnego.
- Po przejściu do środowiska produkcyjnego możesz zachować użycie zarówno usługi Azure Key Vault, jak i konfiguracji usługi App Service przy użyciu odwołań usługi Key Vault.
Diagnostyka i monitorowanie
Podczas fazy weryfikacji koncepcji ważne jest, aby zrozumieć, jakie dzienniki i metryki są dostępne do przechwycenia. Poniżej przedstawiono zalecenia i zagadnienia dotyczące monitorowania w fazie weryfikacji koncepcji:
- Włącz rejestrowanie diagnostyczne dla wszystkich źródeł dzienników elementów. Skonfigurowanie używania wszystkich ustawień diagnostycznych pomaga zrozumieć, jakie dzienniki i metryki są udostępniane w całości, oraz wszelkie luki, które należy zamknąć przy użyciu struktury rejestrowania w kodzie aplikacji. Podczas przechodzenia do środowiska produkcyjnego należy wyeliminować źródła dzienników, które nie dodają wartości, i dodawać szumy i koszty do ujścia dziennika obciążenia.
- Konfigurowanie rejestrowania w celu korzystania z usługi Azure Log Analytics. Usługa Azure Log Analytics oferuje skalowalną platformę do scentralizowanego rejestrowania, które jest łatwe do wykonywania zapytań.
- Użyj usługi Application Insights lub innego narzędzia do zarządzania wydajnością aplikacji (APM), aby emitować dane telemetryczne i dzienniki w celu monitorowania wydajności aplikacji.
Wdrożenie
Poniżej wymieniono wskazówki dotyczące wdrażania aplikacji usługi App Service.
- Postępuj zgodnie ze wskazówkami w temacie Ciągła integracja/ciągłe wdrażanie dla usługi Azure Web Apps za pomocą usługi Azure Pipelines , aby zautomatyzować wdrażanie aplikacji. Rozpocznij tworzenie logiki wdrażania w fazie weryfikacji koncepcji. Zaimplementowanie ciągłej integracji/ciągłego wdrażania na wczesnym etapie procesu programowania umożliwia szybkie i bezpieczne iterowanie aplikacji podczas przechodzenia do środowiska produkcyjnego.
- Użyj szablonów usługi ARM, aby wdrożyć zasoby platformy Azure i ich zależności. Ważne jest, aby rozpocząć ten proces w fazie weryfikacji koncepcji. W miarę przechodzenia do środowiska produkcyjnego chcesz automatycznie wdrażać infrastrukturę.
- Użyj różnych szablonów usługi ARM i zintegruj je z usługami Azure DevOps. Ta konfiguracja umożliwia tworzenie różnych środowisk. Można na przykład replikować scenariusze przypominające środowisko produkcyjne lub środowiska testowania obciążenia tylko wtedy, gdy jest to konieczne, i zaoszczędzić na kosztach.
Aby uzyskać więcej informacji, zobacz sekcję DevOps w witrynie Azure Well-Architected Framework.
Kontenery
Podstawowa architektura może służyć do wdrażania obsługiwanego kodu bezpośrednio w wystąpieniach systemu Windows lub Linux. Alternatywnie usługa App Service jest również platformą hostingu kontenerów do uruchamiania konteneryzowanej aplikacji internetowej. Usługa App Service oferuje różne wbudowane kontenery. Jeśli używasz niestandardowych lub wielokontenerowych aplikacji do dalszego dostosowywania środowiska uruchomieniowego lub obsługi języka kodu, który nie jest natywnie obsługiwany, musisz wprowadzić rejestr kontenerów.
Płaszczyzna sterowania
W fazie weryfikacji koncepcji możesz poznać płaszczyznę sterowania usługi aplikacja systemu Azure, która jest uwidoczniona przez usługę Kudu. Ta usługa uwidacznia typowe interfejsy API wdrażania, takie jak wdrożenia ZIP, uwidacznia nieprzetworzone dzienniki i zmienne środowiskowe.
Jeśli korzystasz z kontenerów, pamiętaj, aby zrozumieć możliwość otwierania sesji SSH w kontenerze w celu obsługi zaawansowanych funkcji debugowania.
Efektywność wydajności
Efektywność wydajności to możliwość skalowania obciążenia w celu zaspokojenia zapotrzebowania użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu pod kątem wydajności.
Ponieważ ta architektura nie jest przeznaczona dla wdrożeń produkcyjnych, poniżej opisano niektóre krytyczne funkcje wydajności wydajności, które zostały pominięte w tej architekturze, wraz z innymi zaleceniami i zagadnieniami.
Wynikiem weryfikacji koncepcji powinien być wybór jednostki SKU, którą szacujesz, jest odpowiedni dla obciążenia. Obciążenie powinno być zaprojektowane tak, aby efektywnie spełniało zapotrzebowanie przez skalowanie w poziomie, dostosowując liczbę wystąpień obliczeniowych wdrożonych w planie usługi App Service. Nie należy projektować systemu, aby zależeć od zmiany jednostki SKU obliczeniowej w celu dopasowania do zapotrzebowania.
- Usługa App Service w tej podstawowej architekturze nie ma zaimplementowanego automatycznego skalowania. Usługa nie jest dynamicznie skalowana w poziomie ani w poziomie, aby wydajnie dopasować się do zapotrzebowania.
- Warstwa Standardowa obsługuje ustawienia skalowania automatycznego, aby umożliwić konfigurowanie skalowania automatycznego opartego na regułach. Częścią procesu weryfikacji koncepcji powinno być uzyskiwanie wydajnych ustawień skalowania automatycznego na podstawie potrzeb zasobów kodu aplikacji i oczekiwanych właściwości użycia.
- W przypadku wdrożeń produkcyjnych rozważ warstwy Premium, które obsługują automatyczne skalowanie automatyczne, gdzie platforma automatycznie obsługuje decyzje dotyczące skalowania.
- Postępuj zgodnie ze wskazówkami, aby skalować poszczególne bazy danych w górę bez przestojów aplikacji, jeśli potrzebujesz wyższej warstwy usługi lub poziomu wydajności dla usługi SQL Database.
Wdrażanie tego scenariusza
Wskazówki są wspierane przez przykładową implementację, która prezentuje podstawową implementację usługi App Service na platformie Azure.
Następne kroki
Powiązane zasoby
- Aplikacja internetowa strefowo nadmiarowa wg planu bazowego
- Aplikacja internetowa o wysokiej dostępności w wielu regionach
- Podejścia aplikacji usługi App Service z wieloma regionami do odzyskiwania po awarii
Dokumentacja produktu:
- Omówienie usługi App Service
- Omówienie usługi Azure Monitor
- Plan usługi Azure App Service — omówienie
- Omówienie usługi Log Analytics w usłudze Azure Monitor
- Czym jest usługa Microsoft Entra ID?
- Co to jest usługa Azure SQL Database?
Moduły microsoft Learn:
- Konfigurowanie usługi Azure Monitor i zarządzanie nią
- Konfigurowanie identyfikatora entra firmy Microsoft
- Konfigurowanie usługi Azure Monitor
- Wdrażanie i konfigurowanie serwerów, wystąpień i baz danych dla usługi Azure SQL
- Eksplorowanie usługi aplikacja systemu Azure
- Hostowanie aplikacji internetowej za pomocą usługi aplikacja systemu Azure Service
- Hostowanie domeny w usłudze Azure DNS
- Implementowanie usługi Azure Key Vault
- Zarządzanie użytkownikami i grupami w usłudze Microsoft Entra ID