Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:program SQL Server na maszynie wirtualnej platformy Azure
Uwaga
Platforma Azure oferuje dwa różne modele wdrażania związane z tworzeniem zasobów i pracą z nimi: model wdrażania przy użyciu usługi Azure Resource Manager i model klasyczny. W tym artykule przedstawiono oba modele, ale firma Microsoft zaleca przeprowadzanie większości nowych wdrożeń z zastosowaniem modelu wdrażania przy użyciu usługi Azure Resource Manager.
Omówienie
Określenie, który wzorzec aplikacji lub wzorce mają być używane dla aplikacji opartych na programie SQL Server w środowisku platformy Azure, jest ważną decyzją projektową i wymaga solidnego zrozumienia sposobu współdziałania programu SQL Server i każdego składnika infrastruktury platformy Azure. Za pomocą programu SQL Server w usługach Azure Infrastructure Services można łatwo migrować, obsługiwać i monitorować istniejące aplikacje programu SQL Server oparte na systemie Windows Server na maszynach wirtualnych na platformie Azure.
Celem tego artykułu jest zapewnienie architektom rozwiązań i deweloperom podstaw dla dobrej architektury i projektowania aplikacji, które mogą śledzić podczas migrowania istniejących aplikacji na platformę Azure, a także tworzenia nowych aplikacji na platformie Azure.
Dla każdego wzorca aplikacji znajdziesz scenariusz lokalny, odpowiednie rozwiązanie z obsługą chmury i powiązane zalecenia techniczne. Ponadto w tym artykule omówiono strategie programowania specyficzne dla platformy Azure, aby umożliwić poprawne projektowanie aplikacji. Ze względu na wiele możliwych wzorców aplikacji zaleca się, aby architekci i deweloperzy wybierali najbardziej odpowiedni wzorzec dla swoich aplikacji i użytkowników.
Współautorzy techniczni: Luis Carlos Vargas Herring, Madhan Arumugam Ramakrishnan
Recenzenci techniczni: Corey Sanders, Drew McDaniel, Narayan Annamalai, Nir Mashkowski, Sanjay Mishra, Silvano Coriani, Stefan Schackow, Tim Hickey, Tim Wieman, Xin Jin
Wprowadzenie
Można opracowywać wiele typów aplikacji n-warstwowych, oddzielając składniki różnych warstw aplikacji na różnych maszynach, a także w oddzielnych składnikach. Można na przykład umieścić składniki aplikacji klienckiej i reguł biznesowych na jednej maszynie, warstwie frontowej sieci i składnikach warstwy dostępu do danych na innej maszynie oraz warstwie bazodanowej zaplecza na innej maszynie. Ten rodzaj struktury pomaga odizolować każdą warstwę od siebie. Jeśli zmienisz miejsce, z którego pochodzą dane, nie musisz zmieniać klienta ani aplikacji internetowej, ale tylko składników warstwy dostępu do danych.
Typowa aplikacja n-warstwowa obejmuje warstwę prezentacji, warstwę biznesową i warstwę danych:
Warstwa | opis |
---|---|
Prezentacja | Warstwa prezentacji (warstwa internetowa, warstwa frontonu) to warstwa, w której użytkownicy wchodzą w interakcję z aplikacją. |
Firma | Warstwa biznesowa (warstwa środkowa) to warstwa prezentacji i warstwa danych używana do komunikowania się ze sobą i obejmuje podstawowe funkcje systemu. |
Data | Warstwa danych to zasadniczo serwer, który przechowuje dane aplikacji (na przykład serwer z programem SQL Server). |
Warstwy aplikacji opisują logiczne grupowania funkcji i składników w aplikacji; natomiast warstwy opisują fizyczną dystrybucję funkcji i składników na oddzielnych serwerach fizycznych, komputerach, sieciach lub lokalizacjach zdalnych. Warstwy aplikacji mogą znajdować się na tym samym komputerze fizycznym (tej samej warstwie) lub mogą być rozproszone na oddzielnych komputerach (n-warstwowych), a składniki w każdej warstwie komunikują się ze składnikami w innych warstwach za pośrednictwem dobrze zdefiniowanych interfejsów. Możesz rozumieć termin "tier" jako odnoszący się do wzorców dystrybucji fizycznej, takich jak dwupoziomowa, trzypoziomowa i n-poziomowa. Wzorzec aplikacji dwuwarstwowej zawiera dwie warstwy aplikacji: serwer aplikacji i serwer bazy danych. Bezpośrednia komunikacja odbywa się między serwerem aplikacji a serwerem bazy danych. Serwer aplikacji zawiera składniki warstwy internetowej i warstwy biznesowej. We wzorcu aplikacji 3-warstwowej istnieją trzy warstwy aplikacji: serwer internetowy, serwer aplikacji, który zawiera warstwę logiki biznesowej i/lub składniki dostępu do danych warstwy biznesowej oraz serwer bazy danych. Komunikacja między serwerem internetowym a serwerem bazy danych odbywa się za pośrednictwem serwera aplikacji. Aby uzyskać szczegółowe informacje na temat warstw i warstw aplikacji, zobacz Przewodnik po architekturze aplikacji firmy Microsoft.
Przed rozpoczęciem czytania tego artykułu należy zapoznać się z podstawowymi pojęciami dotyczącymi programu SQL Server i platformy Azure. Aby uzyskać informacje, zobacz Sql Server Books Online, SQL Server on Azure Virtual Machines and Azure.com (Książki programu SQL Server Online, SQL Server w usłudze Azure Virtual Machines i Azure.com).
W tym artykule opisano kilka wzorców aplikacji, które mogą być odpowiednie dla prostych aplikacji, a także wysoce złożonych aplikacji dla przedsiębiorstw. Przed szczegółami każdego wzorca zalecamy zapoznanie się z dostępnymi usługami magazynu danych na platformie Azure, takimi jak Azure Storage, Azure SQL Database i SQL Server na maszynie wirtualnej platformy Azure. Aby podjąć najlepsze decyzje projektowe dla aplikacji, dowiedz się, kiedy należy wyraźnie używać usługi magazynu danych.
Wybierz program SQL Server na maszynach wirtualnych platformy Azure, gdy:
Potrzebna jest kontrola nad programem SQL Server i systemem Windows. Na przykład może to obejmować wersję programu SQL Server, specjalne poprawki, konfigurację wydajności itp.
Potrzebna jest pełna zgodność z programem SQL Server i chcesz przenieść istniejące aplikacje na platformę Azure zgodnie z potrzebami.
Chcesz wykorzystać możliwości środowiska platformy Azure, ale usługa Azure SQL Database nie obsługuje wszystkich funkcji, których wymaga aplikacja. Może to obejmować następujące obszary:
- Rozmiar bazy danych: w momencie aktualizacji tego artykułu usługa SQL Database obsługuje bazę danych o rozmiarze do 1 TB danych. Jeśli aplikacja wymaga więcej niż 1 TB danych i nie chcesz implementować niestandardowych rozwiązań fragmentowania, zaleca się użycie programu SQL Server na maszynie wirtualnej platformy Azure. Aby uzyskać najnowsze informacje, zobacz Scaling Out Azure SQL Database, DTU-Based Purchasing Model (Model zakupów oparty na rdzeniach wirtualnych) i vCore-Based Purchasing Model (Model zakupów oparty na rdzeniach wirtualnych).
- Zgodność z programem HIPAA: Klienci opieki zdrowotnej i niezależni dostawcy oprogramowania mogą wybrać program SQL Server na maszynach wirtualnych platformy Azure zamiast usługi Azure SQL Database , ponieważ program SQL Server na maszynach wirtualnych platformy Azure jest objęty umową HIPAA Business Associate Agreement (BAA). Aby uzyskać informacje na temat zgodności, zobacz Centrum zaufania platformy Microsoft Azure: zgodność.
- Funkcje na poziomie wystąpienia: Obecnie usługa SQL Database nie obsługuje funkcji, które działają poza bazą danych (na przykład serwery połączone, zadania agenta, FileStream, Service Broker itp.). Aby uzyskać więcej informacji, zobacz Wytyczne i ograniczenia usługi Azure SQL Database.
1-warstwowa (prosta): pojedyncza maszyna wirtualna
W tym wzorcu aplikacji wdrażasz aplikację i bazę danych programu SQL Server na autonomicznej maszynie wirtualnej na platformie Azure. Ta sama maszyna wirtualna zawiera aplikację kliencą/internetową, składniki biznesowe, warstwę dostępu do danych i serwer bazy danych. Kod dostępu do prezentacji, firmy i danych jest logicznie oddzielony, ale fizycznie znajduje się na maszynie z jednym serwerem. Większość klientów zaczyna od tego wzorca aplikacji, a następnie zwiększa skalę, dodając więcej ról sieciowych lub maszyn wirtualnych do systemu.
Ten wzorzec aplikacji jest przydatny, gdy:
- Chcesz przeprowadzić prostą migrację na platformę Azure, aby ocenić, czy platforma odpowiada na wymagania aplikacji, czy nie.
- Chcesz zachować wszystkie warstwy aplikacji hostowane na tej samej maszynie wirtualnej w tym samym centrum danych platformy Azure, aby zmniejszyć opóźnienie między warstwami.
- Chcesz szybko aprowizować środowiska programistyczne i testowe przez krótki czas.
- Chcesz przeprowadzić testy obciążeniowe dla różnych poziomów obciążenia, ale jednocześnie nie chcesz posiadać i obsługiwać wielu maszyn fizycznych przez cały czas.
Na poniższym diagramie przedstawiono prosty scenariusz lokalny i sposób wdrażania rozwiązania z obsługą chmury na jednej maszynie wirtualnej na platformie Azure.
Wdrażanie warstwy biznesowej (składników dostępu do logiki biznesowej i danych) w tej samej warstwie fizycznej co warstwa prezentacji może zmaksymalizować wydajność aplikacji, chyba że musisz użyć oddzielnej warstwy ze względu na skalowalność lub problemy z zabezpieczeniami.
Ponieważ jest to bardzo typowy wzorzec na początek, możesz znaleźć następujący artykuł na temat migracji przydatny do przenoszenia danych na maszynę wirtualną z programem SQL Server: Przewodnik migracji: SQL Server do programu SQL Server na maszynach wirtualnych platformy Azure.
3-warstwowy (prosty): wiele maszyn wirtualnych
W tym wzorcu aplikacji wdrażasz aplikację 3-warstwową na platformie Azure, umieszczając każdą warstwę aplikacji na innej maszynie wirtualnej. Zapewnia to elastyczne środowisko dla łatwych scenariuszy skalowania pionowego i poziomego. Gdy jedna maszyna wirtualna zawiera klienta/aplikację internetową, druga hostuje składniki biznesowe, a druga hostuje serwer bazy danych.
Ten wzorzec aplikacji jest przydatny, gdy:
- Chcesz przeprowadzić migrację złożonych aplikacji baz danych do usługi Azure Virtual Machines.
- Chcesz, aby różne warstwy aplikacji były hostowane w różnych regionach. Na przykład można udostępnić bazy danych, które są wdrażane w wielu regionach na potrzeby raportowania.
- Chcesz przenieść aplikacje dla przedsiębiorstw z lokalnych platform zwirtualizowanych do usługi Azure Virtual Machines. Aby zapoznać się ze szczegółowym omówieniem aplikacji dla przedsiębiorstw, zobacz Co to jest aplikacja dla przedsiębiorstw.
- Chcesz szybko aprowizować środowiska programistyczne i testowe przez krótki czas.
- Chcesz przeprowadzić testy obciążeniowe dla różnych poziomów obciążenia, ale jednocześnie nie chcesz posiadać i obsługiwać wielu maszyn fizycznych przez cały czas.
Na poniższym diagramie pokazano, jak można umieścić prostą aplikację 3-warstwową na platformie Azure, umieszczając każdą warstwę aplikacji na innej maszynie wirtualnej.
W tym wzorcu aplikacji istnieje tylko jedna maszyna wirtualna w każdej warstwie. Jeśli masz wiele maszyn wirtualnych na platformie Azure, zalecamy skonfigurowanie sieci wirtualnej. Usługa Azure Virtual Network tworzy zaufaną granicę zabezpieczeń, a także umożliwia maszynom wirtualnym komunikowanie się między sobą za pośrednictwem prywatnego adresu IP. Ponadto zawsze upewnij się, że wszystkie połączenia internetowe prowadzą tylko do warstwy prezentacji. W przypadku przestrzegania tego wzorca aplikacji zarządzaj regułami sieciowej grupy zabezpieczeń, aby kontrolować dostęp. Aby uzyskać więcej informacji, zobacz Zezwalanie na dostęp zewnętrzny do maszyny wirtualnej przy użyciu witryny Azure Portal.
Na diagramie protokoły internetowe mogą być tcp, UDP, HTTP lub HTTPS.
Uwaga
Konfigurowanie sieci wirtualnej na platformie Azure jest bezpłatne. Opłaty są jednak naliczane za bramę sieci VPN, która łączy się ze środowiskiem lokalnym. Ta opłata jest naliczana na podstawie czasu, przez jaki połączenie VPN jest obsługiwane i dostępne.
2-warstwowe i 3-warstwowe z poziomym skalowaniem warstwy prezentacji
W tym wzorcu aplikacji wdrażasz aplikację bazy danych w warstwie 2 lub 3-warstwowej w usłudze Azure Virtual Machines, umieszczając każdą warstwę aplikacji na innej maszynie wirtualnej. Ponadto można skalować poziomo warstwę prezentacji wskutek zwiększonego wolumenu przychodzących żądań klientów.
Ten wzorzec aplikacji jest przydatny, gdy:
- Chcesz przenieść aplikacje dla przedsiębiorstw z lokalnych platform zwirtualizowanych do usługi Azure Virtual Machines.
- Chcesz zwiększyć skalę warstwy prezentacji z powodu zwiększonej liczby przychodzących próśb od klientów.
- Chcesz szybko aprowizować środowiska programistyczne i testowe przez krótki czas.
- Chcesz przeprowadzić testy obciążeniowe dla różnych poziomów obciążenia, ale jednocześnie nie chcesz posiadać i obsługiwać wielu maszyn fizycznych przez cały czas.
- Chcesz posiadać środowisko infrastruktury, które może być skalowane w górę i w dół na żądanie.
Na poniższym diagramie pokazano, jak można umieścić warstwy aplikacji na wielu maszynach wirtualnych na platformie Azure, skalując warstwę prezentacji ze względu na większą liczbę przychodzących żądań klientów. Jak pokazano na diagramie, usługa Azure Load Balancer jest odpowiedzialna za dystrybucję ruchu między wieloma maszynami wirtualnymi, a także określenie, z którym serwerem internetowym ma nawiązać połączenie. Posiadanie wielu instancji serwerów internetowych za przełącznikiem obciążeń zapewnia wysoką dostępność warstwy prezentacji.
Najlepsze rozwiązania dotyczące wzorców 2-warstwowych, 3-warstwowych lub n-warstwowych, które mają wiele maszyn wirtualnych w jednej warstwie
Zaleca się umieszczenie maszyn wirtualnych należących do tej samej warstwy w tej samej usłudze w chmurze i w tym samym zestawie dostępności. Na przykład umieść zestaw serwerów internetowych w usłudze CloudService1 i AvailabilitySet1 oraz zestaw serwerów baz danych w usłudze CloudService2 i AvailabilitySet2. Zestaw dostępności na platformie Azure umożliwia umieszczenie węzłów o wysokiej dostępności w oddzielnych domenach awaryjnych i domenach aktualizacji.
Aby korzystać z wielu instancji maszyn wirtualnych w danej warstwie, należy skonfigurować usługę Azure Load Balancer pomiędzy poszczególnymi warstwami aplikacji. Aby skonfigurować usługę Load Balancer w każdej warstwie, utwórz punkt końcowy o zrównoważonym obciążeniu na maszynach wirtualnych każdej warstwy oddzielnie. W przypadku określonej warstwy najpierw utwórz maszyny wirtualne w tej samej usłudze w chmurze. Gwarantuje to, że mają ten sam publiczny wirtualny adres IP. Następnie utwórz punkt końcowy na jednej z maszyn wirtualnych w tej warstwie. Następnie przypisz ten sam punkt końcowy do innych maszyn wirtualnych w tej warstwie na potrzeby równoważenia obciążenia. Tworząc zestaw o zrównoważonym obciążeniu, dystrybuujesz ruch między wieloma maszynami wirtualnymi, a także zezwalasz modułowi równoważenia obciążenia na określenie węzła, który ma się łączyć, gdy węzeł maszyny wirtualnej zaplecza ulegnie awarii. Na przykład posiadanie wielu instancji serwerów internetowych za load balancerem gwarantuje wysoką dostępność warstwy prezentacyjnej.
Najlepszym rozwiązaniem jest zawsze upewnienie się, że wszystkie połączenia internetowe najpierw przechodzą do warstwy prezentacji. Warstwa prezentacji uzyskuje dostęp do warstwy biznesowej, a następnie warstwa biznesowa uzyskuje dostęp do warstwy danych. Aby uzyskać więcej informacji na temat zezwalania na dostęp do warstwy prezentacji, zobacz Zezwalanie na dostęp zewnętrzny do maszyny wirtualnej przy użyciu witryny Azure Portal.
Należy pamiętać, że moduł równoważenia obciążenia na platformie Azure działa podobnie jak moduły równoważenia obciążenia w środowisku lokalnym. Aby uzyskać więcej informacji, zobacz Równoważenie obciążenia dla usług infrastruktury platformy Azure.
Ponadto zalecamy skonfigurowanie sieci prywatnej dla maszyn wirtualnych przy użyciu usługi Azure Virtual Network. Dzięki temu mogą komunikować się między sobą za pośrednictwem prywatnego adresu IP. Aby uzyskać więcej informacji, zobacz Azure Virtual Network.
2-warstwowe i 3-warstwowe z skalowaniem w poziomie warstwy biznesowej
W tym wzorcu aplikacji wdrażasz aplikację bazy danych w warstwie 2 lub 3-warstwowej w usłudze Azure Virtual Machines, umieszczając każdą warstwę aplikacji na innej maszynie wirtualnej. Ponadto można dystrybuować składniki serwera aplikacji do wielu maszyn wirtualnych ze względu na złożoność aplikacji.
Ten wzorzec aplikacji jest przydatny, gdy:
- Chcesz przenieść aplikacje dla przedsiębiorstw z lokalnych platform zwirtualizowanych do usługi Azure Virtual Machines.
- Chcesz dystrybuować składniki serwera aplikacji do wielu maszyn wirtualnych ze względu na złożoność aplikacji.
- Chcesz przenieść aplikacje LOB (line-of-business) z dużym obciążeniem obliczeniowym, które są wdrożone lokalnie, do usługi Azure Virtual Machines. Aplikacje LOB to zestaw krytycznych aplikacji komputerowych, które są niezbędne do uruchamiania przedsiębiorstwa, takich jak księgowość, kadry, listy płac, zarządzanie łańcuchem dostaw i aplikacje do planowania zasobów.
- Chcesz szybko aprowizować środowiska programistyczne i testowe przez krótki czas.
- Chcesz przeprowadzić testy obciążeniowe dla różnych poziomów obciążenia, ale jednocześnie nie chcesz posiadać i obsługiwać wielu maszyn fizycznych przez cały czas.
- Chcesz posiadać środowisko infrastruktury, które może być skalowane w górę i w dół na żądanie.
Na poniższym diagramie przedstawiono scenariusz lokalny i rozwiązanie z obsługą chmury. W tym scenariuszu umieścisz warstwy aplikacji na wielu maszynach wirtualnych na platformie Azure, skalując warstwę biznesową, która zawiera warstwę logiki biznesowej i składniki dostępu do danych. Jak pokazano na diagramie, usługa Azure Load Balancer jest odpowiedzialna za dystrybucję ruchu między wieloma maszynami wirtualnymi, a także określenie, z którym serwerem internetowym ma nawiązać połączenie. Posiadanie wielu wystąpień serwerów aplikacji za równoważnikiem obciążenia zapewnia wysoką dostępność warstwy aplikacji biznesowej. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące wzorców aplikacji 2-warstwowych, 3-warstwowych lub n-warstwowych, które mają wiele maszyn wirtualnych w jednej warstwie.
2-warstwowe i 3-warstwowe systemy z warstwami prezentacji i biznesu, skalowalne w poziomie oraz z HADR (High Availability and Disaster Recovery)
W tym wzorcu aplikacji wdrażasz aplikację bazy danych w warstwie 2 lub 3-warstwowej do usługi Azure Virtual Machines, dystrybuując warstwę prezentacji (serwer internetowy) i składniki warstwy biznesowej (serwera aplikacji) do wielu maszyn wirtualnych. Ponadto wdrażasz rozwiązania wysokiej dostępności i odzyskiwania po awarii (HADR) dla baz danych w usłudze Azure Virtual Machines.
Ten wzorzec aplikacji jest przydatny, gdy:
- Chcesz przenieść aplikacje dla przedsiębiorstw ze zwirtualizowanych platform lokalnych na platformę Azure, implementując funkcje wysokiej dostępności i odzyskiwania po awarii programu SQL Server.
- Chcesz rozszerzać warstwę prezentacji oraz warstwę biznesową ze względu na zwiększoną liczbę przychodzących żądań klientów oraz złożoność aplikacji.
- Chcesz szybko aprowizować środowiska programistyczne i testowe przez krótki czas.
- Chcesz przeprowadzić testy obciążeniowe dla różnych poziomów obciążenia, ale jednocześnie nie chcesz posiadać i obsługiwać wielu maszyn fizycznych przez cały czas.
- Chcesz posiadać środowisko infrastruktury, które może być skalowane w górę i w dół na żądanie.
Na poniższym diagramie przedstawiono scenariusz lokalny i rozwiązanie z obsługą chmury. W tym scenariuszu przeskalujesz warstwę prezentacji i składniki warstwy biznesowej na wielu maszynach wirtualnych na platformie Azure. Ponadto implementujesz techniki wysokiej dostępności i odzyskiwania po awarii (HADR) dla baz danych programu SQL Server na platformie Azure.
Aby uruchamiać wiele kopii aplikacji na różnych maszynach wirtualnych, powinieneś upewnić się, że równoważysz obciążenie żądań między nimi. Jeśli masz wiele maszyn wirtualnych, musisz upewnić się, że wszystkie maszyny wirtualne są dostępne i działają w jednym momencie w czasie. Jeśli skonfigurujesz równoważenie obciążenia, usługa Azure Load Balancer śledzi kondycję maszyn wirtualnych i kieruje przychodzące wywołania do prawidłowo działających węzłów maszyny wirtualnej o dobrej kondycji. Aby uzyskać informacje na temat konfigurowania równoważenia obciążenia maszyn wirtualnych, zobacz Równoważenie obciążenia dla usług infrastruktury platformy Azure. Posiadanie wielu instancji serwerów webowych i aplikacyjnych za modułem load balancera zapewnia wysoką dostępność warstw prezentacji i biznesowych.
Najlepsze rozwiązania dotyczące wzorców aplikacji wymagających usługi SQL HADR
Podczas konfigurowania rozwiązań do wysokiej dostępności i odzyskiwania po awarii programu SQL Server w usłudze Azure Virtual Machines konfigurowanie sieci wirtualnej dla maszyn wirtualnych przy użyciu usługi Azure Virtual Network jest obowiązkowe. Maszyny wirtualne w ramach sieci wirtualnej będą miały stabilny prywatny adres IP nawet po przestoju usługi, dzięki czemu można uniknąć czasu aktualizacji wymaganego do rozpoznawania nazw DNS. Ponadto sieć wirtualna umożliwia rozszerzenie sieci lokalnej na platformę Azure i utworzenie zaufanej granicy zabezpieczeń. Jeśli na przykład aplikacja ma ograniczenia domeny firmowej (takie jak uwierzytelnianie systemu Windows, usługa Active Directory), konieczne jest skonfigurowanie usługi Azure Virtual Network .
Większość klientów, którzy uruchamiają kod produkcyjny na platformie Azure, utrzymuje zarówno repliki podstawowe, jak i pomocnicze na platformie Azure.
Aby uzyskać kompleksowe informacje i samouczki dotyczące technik wysokiej dostępności i odzyskiwania po awarii, zobacz Wysoka dostępność i odzyskiwanie po awarii dla programu SQL Server na maszynach wirtualnych platformy Azure.
2-warstwowe i 3-warstwowe przy użyciu maszyn wirtualnych Azure i usług chmurowych Azure
W tym wzorcu aplikacji wdrażasz aplikację 2-warstwową lub 3-warstwową na platformie Azure przy użyciu usług Azure Cloud Services (ról internetowych i procesów roboczych — Platforma jako usługa) i Azure Virtual Machines (Infrastruktura jako usługa) (IaaS). Korzystanie z usług Azure Cloud Services dla warstwy prezentacji/warstwy biznesowej i programu SQL Server w usłudze Azure Virtual Machines dla warstwy danych jest korzystne dla większości aplikacji działających na platformie Azure. Powodem jest to, że gdy uruchamia się wystąpienie obliczeniowe w usługach chmurowych, zapewnia łatwe zarządzanie, wdrażanie, monitorowanie i rozbudowę.
Dzięki usługom Cloud Services platforma Azure obsługuje infrastrukturę, wykonuje rutynową konserwację, poprawia systemy operacyjne i próbuje odzyskać sprawność po awariach usług i sprzętu. Gdy Twoja aplikacja wymaga skalowania w poziomie, dla projektu usługi w chmurze dostępne są opcje automatycznego i ręcznego skalowania poprzez zwiększenie lub zmniejszenie liczby instancji lub maszyn wirtualnych używanych przez aplikację. Ponadto możesz użyć lokalnego programu Visual Studio do wdrożenia aplikacji w projekcie usługi w chmurze na platformie Azure.
Podsumowując, jeśli nie chcesz posiadać obszernych zadań administracyjnych dla prezentacji/warstwy biznesowej, a aplikacja nie wymaga żadnej złożonej konfiguracji oprogramowania ani systemu operacyjnego, użyj usług Azure Cloud Services. Jeśli usługa Azure SQL Database nie obsługuje wszystkich funkcji, których szukasz, użyj programu SQL Server na maszynie wirtualnej platformy Azure dla warstwy danych. Uruchamianie aplikacji w usługach Azure Cloud Services i przechowywanie danych w usłudze Azure Virtual Machines łączy zalety obu usług. Aby uzyskać szczegółowe porównanie, zobacz sekcję w tym temacie dotyczącą porównywania strategii programowania na platformie Azure.
W tym wzorcu aplikacji warstwa prezentacji zawiera rolę internetową, która jest składnikiem usług Cloud Services uruchomionym w środowisku wykonywania platformy Azure i jest dostosowywana do programowania aplikacji internetowych obsługiwanych przez usługi IIS i ASP.NET. Warstwa biznesowa lub zaplecza obejmuje rolę roboczą, która jest składnikiem Cloud Services działającym w środowisku wykonywania platformy Azure. Jest przydatna do uogólnionego programowania i może wykonywać przetwarzanie w tle dla roli internetowej. Warstwa bazy danych znajduje się na maszynie wirtualnej z programem SQL Server na platformie Azure. Komunikacja między warstwą prezentacji a warstwą bazy danych odbywa się bezpośrednio lub za pośrednictwem warstwy biznesowej – komponentów roli pracownika.
Ten wzorzec aplikacji jest przydatny, gdy:
- Chcesz przenieść aplikacje dla przedsiębiorstw ze zwirtualizowanych platform lokalnych na platformę Azure, implementując funkcje wysokiej dostępności i odzyskiwania po awarii programu SQL Server.
- Chcesz posiadać środowisko infrastruktury, które może być skalowane w górę i w dół na żądanie.
- Usługa Azure SQL Database nie obsługuje wszystkich funkcji, których potrzebuje aplikacja lub baza danych.
- Chcesz przeprowadzić testy obciążeniowe dla różnych poziomów obciążenia, ale jednocześnie nie chcesz posiadać i obsługiwać wielu maszyn fizycznych przez cały czas.
Na poniższym diagramie przedstawiono scenariusz lokalny i rozwiązanie z obsługą chmury. W tym scenariuszu umieszczasz warstwę prezentacji w rolach internetowych, warstwę biznesową w rolach pracowników, a warstwę danych na maszynach wirtualnych na platformie Azure. Uruchomienie wielu kopii warstwy prezentacji w różnych rolach sieci Web zapewnia równoważenie obciążenia żądań między nimi. Podczas łączenia usług Azure Cloud Services z usługą Azure Virtual Machines zalecamy również skonfigurowanie usługi Azure Virtual Network . Dzięki usłudze Azure Virtual Network można mieć stabilne i trwałe prywatne adresy IP w ramach tej samej usługi w chmurze. Po zdefiniowaniu sieci wirtualnej dla maszyn wirtualnych i usług w chmurze mogą rozpocząć komunikację między sobą za pośrednictwem prywatnego adresu IP. Ponadto posiadanie maszyn wirtualnych i ról sieci Web/procesów roboczych platformy Azure w tej samej Azure Virtual Network zapewnia niskie opóźnienia i bezpieczniejszą łączność. Aby uzyskać więcej informacji, zobacz Co to jest usługa w chmurze.
Jak pokazano na diagramie, usługa Azure Load Balancer dystrybuuje ruch między wieloma maszynami wirtualnymi, a także określa, z którym serwerem internetowym lub serwerem aplikacji ma się łączyć. Posiadanie wielu wystąpień serwerów internetowych i aplikacyjnych za równoważeniem obciążenia gwarantuje wysoką dostępność warstwy prezentacyjnej i biznesowej. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące wzorców aplikacji wymagających usługi SQL HADR.
Innym podejściem do zaimplementowania tego wzorca aplikacji jest użycie skonsolidowanej roli sieci Web zawierającej zarówno warstwę prezentacji, jak i składniki warstwy biznesowej, jak pokazano na poniższym diagramie. Ten wzorzec aplikacji jest przydatny w przypadku aplikacji wymagających projektowania stanowego. Ponieważ platforma Azure udostępnia bezstanowe węzły obliczeniowe w rolach webowych i roboczych, zalecamy implementację logiki przechowywania stanu sesji za pomocą jednej z następujących technologii: Azure Caching, Azure Table Storage lub Azure SQL Database.
Wzorzec z usługami Azure Virtual Machines, Azure SQL Database i Azure App Service (Web Apps)
Głównym celem tego wzorca aplikacji jest pokazanie, jak połączyć składniki infrastruktury jako usługi (IaaS) platformy Azure z składnikami typu "platforma jako usługa" (PaaS) platformy Azure w rozwiązaniu. Ten wzorzec koncentruje się na usłudze Azure SQL Database na potrzeby magazynu danych relacyjnych. Nie obejmuje ona programu SQL Server na maszynie wirtualnej platformy Azure, która jest częścią oferty infrastruktury jako usługi platformy Azure.
W tym wzorcu aplikacji wdrażasz aplikację bazy danych na platformie Azure, umieszczając prezentację i warstwy biznesowe na tej samej maszynie wirtualnej i korzystając z bazy danych na serwerach usługi Azure SQL Database (SQL Database). Warstwę prezentacji można zaimplementować przy użyciu tradycyjnych rozwiązań internetowych opartych na usługach IIS. Możesz też zaimplementować połączoną prezentację i warstwę biznesową przy użyciu usługi Azure App Service.
Ten wzorzec aplikacji jest przydatny, gdy:
- Masz już istniejący serwer usługi SQL Database skonfigurowany na platformie Azure i chcesz szybko przetestować aplikację.
- Chcesz przetestować możliwości środowiska platformy Azure.
- Chcesz szybko aprowizować środowiska programistyczne i testowe przez krótki czas.
- Składniki logiki biznesowej i dostępu do danych mogą być samodzielnie zawarte w aplikacji internetowej.
Na poniższym diagramie przedstawiono scenariusz lokalny i rozwiązanie z obsługą chmury. W tym scenariuszu umieścisz warstwy aplikacji na jednej maszynie wirtualnej na platformie Azure i uzyskujesz dostęp do danych w usłudze Azure SQL Database.
Jeśli zdecydujesz się wdrożyć połączoną warstwę internetową i warstwę aplikacji przy użyciu usługi Azure Web Apps, zalecamy zachowanie warstwy środkowej lub warstwy aplikacji jako biblioteki linków dynamicznych (DLL) w kontekście aplikacji internetowej.
Ponadto zapoznaj się z zaleceniami podanymi w sekcji Porównanie strategii tworzenia aplikacji internetowych na platformie Azure na końcu tego artykułu, aby dowiedzieć się więcej na temat technik programowania.
Wzorzec aplikacji hybrydowej N-warstwowej
W n-warstwowym wzorcu aplikacji hybrydowej implementujesz aplikację w wielu warstwach rozproszonych między środowiskiem lokalnym i platformą Azure. W związku z tym tworzysz elastyczny i wielokrotnego użytku system hybrydowy, który można modyfikować lub dodawać określoną warstwę bez zmieniania innych warstw. Aby rozszerzyć sieć firmową na chmurę, należy użyć usługi Azure Virtual Network .
Ten wzorzec aplikacji hybrydowej jest przydatny, gdy:
- Chcesz tworzyć aplikacje działające częściowo w chmurze i częściowo lokalne.
- Chcesz przeprowadzić migrację niektórych lub wszystkich elementów istniejącej aplikacji lokalnej do chmury.
- Chcesz przenieść aplikacje dla przedsiębiorstw z lokalnych platform zwirtualizowanych na platformę Azure.
- Chcesz posiadać środowisko infrastruktury, które może być skalowane w górę i w dół na żądanie.
- Chcesz szybko aprowizować środowiska programistyczne i testowe przez krótki czas.
- Potrzebujesz ekonomicznego sposobu tworzenia kopii zapasowych dla aplikacji baz danych dla przedsiębiorstw.
Na poniższym diagramie przedstawiono n-warstwowy wzorzec aplikacji hybrydowej obejmujący wiele środowisk lokalnych i platformy Azure. Jak pokazano na diagramie, infrastruktura lokalna obejmuje kontroler domeny usług Active Directory do obsługi uwierzytelniania i autoryzacji użytkowników. Diagram przedstawia scenariusz, w którym niektóre części warstwy danych działają w lokalnym centrum danych, podczas gdy niektóre części warstwy danych działają na platformie Azure. W zależności od potrzeb aplikacji można zaimplementować kilka innych scenariuszy hybrydowych. Możesz na przykład zachować warstwę prezentacji i warstwę biznesową w środowisku lokalnym, ale warstwę danych na platformie Azure.
Na platformie Azure możesz użyć Identyfikatora Microsoft Entra (dawniej Azure Active Directory) do zarządzania tożsamościami i dostępem lub zintegrować istniejący lokalny Active Directory z Microsoft Entra ID. Jak pokazano na diagramie, składniki warstwy biznesowej mogą uwierzytelniać się w wielu źródłach danych, w tym: program SQL Server na maszynach wirtualnych platformy Azure za pośrednictwem prywatnego wewnętrznego adresu IP, lokalnego programu SQL Server za pośrednictwem usługi Azure Virtual Network lub usługi Azure SQL Database przy użyciu technologii dostawcy danych programu .NET Framework. Na tym diagramie usługa Azure SQL Database jest opcjonalną usługą magazynu danych.
W n-warstwowym wzorcu aplikacji hybrydowej można zaimplementować następujący przepływ pracy w określonej kolejności:
Zidentyfikuj aplikacje bazy danych dla przedsiębiorstw, które należy przenieść do chmury, korzystając z zestawu narzędzi Microsoft Assessment and Planning (MAP). Zestaw narzędzi MAP zbiera dane spisu i wydajności z komputerów, które rozważasz na potrzeby wirtualizacji, i udostępnia zalecenia dotyczące planowania wydajności i oceny.
Planowanie zasobów i konfiguracji wymaganych na platformie Azure, takich jak konta magazynu i maszyny wirtualne.
Konfigurowanie łączności sieciowej między siecią firmową lokalną a usługą Azure Virtual Network. Aby skonfigurować połączenie między siecią firmową lokalną a maszyną wirtualną na platformie Azure, użyj jednej z następujących dwóch metod:
Ustanów połączenie między środowiskiem lokalnym a platformą Azure za pośrednictwem publicznych punktów końcowych na maszynie wirtualnej na platformie Azure. Ta metoda zapewnia łatwą konfigurację i umożliwia korzystanie z uwierzytelniania programu SQL Server na maszynie wirtualnej. Ponadto skonfiguruj reguły sieciowej grupy zabezpieczeń, aby kontrolować ruch publiczny do maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Zezwalanie na dostęp zewnętrzny do maszyny wirtualnej przy użyciu witryny Azure Portal.
Ustanów połączenie między środowiskiem lokalnym i platformą Azure za pośrednictwem tunelu wirtualnej sieci prywatnej platformy Azure (VPN). Ta metoda umożliwia rozszerzenie zasad domeny na maszynę wirtualną na platformie Azure. Ponadto można skonfigurować reguły zapory i używać uwierzytelniania systemu Windows na maszynie wirtualnej. Obecnie platforma Azure obsługuje bezpieczne połączenia sieci VPN typu lokacja-lokacja oraz sieci VPN typu punkt-lokacja:
- Dzięki bezpiecznemu połączeniu typu lokacja-lokacja można ustanowić łączność sieciową między siecią lokalną a siecią wirtualną na platformie Azure. Zaleca się łączenie lokalnego środowiska centrum danych z platformą Azure.
- Dzięki bezpiecznemu połączeniu typu punkt-lokacja można ustanowić łączność sieciową między siecią wirtualną na platformie Azure a poszczególnymi komputerami z dowolnego miejsca. Jest to w większości zalecane do celów programistycznych i testowych.
Aby uzyskać informacje na temat nawiązywania połączenia z programem SQL Server na platformie Azure, zobacz Connect to a SQL Server virtual machine on Azure (Nawiązywanie połączenia z maszyną wirtualną z programem SQL Server na platformie Azure).
Skonfiguruj zaplanowane zadania i alerty, które tworzą kopię zapasową danych lokalnych na dysku maszyny wirtualnej na platformie Azure. Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowych i przywracanie bazy danych SQL Server z Azure Blob Storage oraz Tworzenie kopii zapasowych i przywracanie SQL Server na maszynach wirtualnych Azure.
W zależności od potrzeb aplikacji można zaimplementować jeden z następujących trzech typowych scenariuszy:
- Możesz zachować serwer internetowy, serwer aplikacji i dane niewrażliwe na serwerze bazy danych na platformie Azure, podczas gdy dane poufne są zachowywane lokalnie.
- Serwer internetowy i serwer aplikacji można przechowywać lokalnie, podczas gdy serwer bazy danych na maszynie wirtualnej na platformie Azure.
- Serwer bazy danych, serwer internetowy i serwer aplikacji można przechowywać lokalnie, podczas gdy repliki bazy danych są zachowywane na maszynach wirtualnych na platformie Azure. To ustawienie umożliwia lokalnym serwerom internetowym lub aplikacjom raportowania dostęp do replik bazy danych na platformie Azure. W związku z tym można zmniejszyć obciążenie w lokalnej bazie danych. Zalecamy zaimplementowanie tego scenariusza dla dużych obciążeń odczytu i celów rozwojowych. Aby uzyskać informacje na temat tworzenia replik baz danych na platformie Azure, zobacz 'Grupy dostępności Always On' w sekcji Wysoka dostępność i odzyskiwanie po awarii na platformie SQL Server na maszynach wirtualnych Azure.
Porównywanie strategii tworzenia aplikacji internetowych na platformie Azure
Aby zaimplementować i wdrożyć wielowarstwową aplikację opartą na programie SQL Server na platformie Azure, można użyć jednej z następujących dwóch metod programowania:
- Konfigurowanie tradycyjnego serwera internetowego (IIS — Internet Information Services) na platformie Azure i uzyskiwanie dostępu do baz danych w programie SQL Server na maszynach wirtualnych platformy Azure.
- Implementowanie i wdrażanie usługi w chmurze na platformie Azure. Następnie upewnij się, że ta usługa w chmurze może uzyskiwać dostęp do baz danych w programie SQL Server na maszynach wirtualnych platformy Azure. Usługa w chmurze może zawierać wiele ról internetowych i ról roboczych.
Poniższa tabela zawiera porównanie tradycyjnego tworzenia aplikacji internetowych z usługami Azure Cloud Services i Azure Web Apps w odniesieniu do programu SQL Server w usłudze Azure Virtual Machines. Tabela zawiera usługę Azure Web Apps, ponieważ można używać programu SQL Server na maszynie wirtualnej platformy Azure jako źródła danych dla usługi Azure Web Apps za pośrednictwem publicznego wirtualnego adresu IP lub nazwy DNS.
Tradycyjne tworzenie aplikacji internetowych w usłudze Azure Virtual Machines | Usługi w chmurze na platformie Azure | Hosting internetowy za pomocą usługi Azure Web Apps | |
---|---|---|---|
Migracja aplikacji ze środowiska lokalnego | Istniejące aplikacje w obecnej postaci. | Aplikacje potrzebują ról internetowych i roboczych. | Istniejące aplikacje jako takie, ale odpowiednie dla samodzielnych aplikacji internetowych i usług internetowych, które wymagają szybkiej skalowalności. |
Programowanie i wdrażanie | Visual Studio, WebMatrix, Visual Web Developer, WebDeploy, FTP, TFS, IIS Manager, PowerShell. | Visual Studio, Azure SDK, TFS, PowerShell. Każda usługa w chmurze ma dwa środowiska, w których można wdrożyć pakiet usługi i konfigurację: przejściowe i produkcyjne. Usługę w chmurze można wdrożyć w środowisku przejściowym, aby przetestować ją przed podwyższeniem poziomu do środowiska produkcyjnego. | Visual Studio, WebMatrix, Visual Web Developer, FTP, GIT, BitBucket, CodePlex, DropBox, GitHub, Mercurial, TFS, Web Deploy, PowerShell. |
Administracja i instalacja | Odpowiadasz za zadania administracyjne aplikacji, danych, reguł zapory, sieci wirtualnej i systemu operacyjnego. | Odpowiadasz za zadania administracyjne aplikacji, danych, reguł zapory i sieci wirtualnej. | Odpowiadasz za zadania administracyjne tylko w aplikacji i danych. |
Wysoka dostępność i odzyskiwanie po awarii (HADR) | Zalecamy umieszczenie maszyn wirtualnych w tym samym zestawie dostępności i w tej samej usłudze w chmurze. Utrzymywanie maszyn wirtualnych w tym samym zestawie dostępności umożliwia platformie Azure umieszczenie węzłów wysokiej dostępności w oddzielnych domenach błędów i domenach uaktualniania. Podobnie utrzymywanie maszyn wirtualnych w tej samej usłudze w chmurze umożliwia równoważenie obciążenia, a maszyny wirtualne mogą komunikować się bezpośrednio ze sobą za pośrednictwem sieci lokalnej w centrum danych platformy Azure. Odpowiadasz za zaimplementowanie rozwiązania wysokiej dostępności i odzyskiwania po awarii dla programu SQL Server na maszynach wirtualnych platformy Azure, aby uniknąć przestojów. Aby uzyskać informacje o obsługiwanych technologiach HADR, zobacz Wysoka dostępność i odzyskiwanie po awarii dla programu SQL Server na maszynach wirtualnych platformy Azure. Odpowiadasz za tworzenie kopii zapasowych własnych danych i aplikacji. Platforma Azure może przenieść maszyny wirtualne, jeśli maszyna hosta w centrum danych ulegnie awarii z powodu problemów sprzętowych. Ponadto może wystąpić planowany przestój maszyny wirtualnej po zaktualizowaniu maszyny hosta pod kątem zabezpieczeń lub aktualizacji oprogramowania. W związku z tym zalecamy utrzymywanie co najmniej dwóch maszyn wirtualnych w każdej warstwie aplikacji w celu zapewnienia ciągłej dostępności. Platforma Azure nie zapewnia umowy SLA dla jednej maszyny wirtualnej. |
Platforma Azure zarządza awariami wynikającymi z bazowego sprzętu lub oprogramowania systemu operacyjnego. Zalecamy zaimplementowanie wielu wystąpień roli sieciowej lub roboczej w celu zapewnienia wysokiej dostępności aplikacji. Aby uzyskać informacje, zobacz Cloud Services, Virtual Machines i Virtual Network Service Level Agreement. Odpowiadasz za tworzenie kopii zapasowych własnych danych i aplikacji. W przypadku baz danych znajdujących się w bazie danych programu SQL Server na maszynie wirtualnej platformy Azure odpowiadasz za zaimplementowanie rozwiązania wysokiej dostępności i odzyskiwania po awarii, aby uniknąć przestojów. Aby uzyskać informacje o obsługiwanych technologiach HADR, zobacz Wysoka dostępność i odzyskiwanie po awarii dla programu SQL Server na maszynach wirtualnych platformy Azure. Dublowanie bazy danych programu SQL Server: używanie z usługami Azure Cloud Services (role sieci Web/procesu roboczego). Maszyny wirtualne programu SQL Server i projekt usługi w chmurze mogą znajdować się w tej samej sieci wirtualnej platformy Azure. Jeśli maszyna wirtualna z programem SQL Server nie znajduje się w tej samej sieci wirtualnej, należy utworzyć alias programu SQL Server, aby kierować komunikację do wystąpienia programu SQL Server. Ponadto nazwa aliasu musi być zgodna z nazwą programu SQL Server. |
Wysoka dostępność jest dziedziczona z ról roboczych platformy Azure, usługi Azure Blob Storage i usługi Azure SQL Database. Na przykład usługa Azure Storage utrzymuje trzy repliki wszystkich danych blob, tabel i danych z kolejki. W dowolnym momencie usługa Azure SQL Database przechowuje trzy uruchomione repliki danych — jedną replikę podstawową i dwie repliki pomocnicze. Aby uzyskać więcej informacji, zobacz Azure Storage i Azure SQL Database. W przypadku korzystania z programu SQL Server na maszynie wirtualnej platformy Azure jako źródła danych dla usługi Azure Web Apps należy pamiętać, że usługa Azure Web Apps nie obsługuje usługi Azure Virtual Network. Innymi słowy, wszystkie połączenia z usługi Azure Web Apps do maszyn wirtualnych programu SQL Server na platformie Azure muszą przechodzić przez publiczne punkty końcowe maszyn wirtualnych. Może to spowodować pewne ograniczenia dotyczące scenariuszy wysokiej dostępności i odzyskiwania po awarii. Na przykład aplikacja kliencka w usłudze Azure Web Apps łącząca się z maszyną wirtualną z programem SQL Server z dublowaniem bazy danych nie będzie mogła nawiązać połączenia z nowym serwerem podstawowym, ponieważ dublowanie baz danych wymaga skonfigurowania usługi Azure Virtual Network między maszynami wirtualnymi hosta programu SQL Server na platformie Azure. W związku z tym korzystanie z funkcji dublowania bazy danych programu SQL Server z usługą Azure Web Apps nie jest obecnie obsługiwane. Grupy Dostępności Always On programu SQL Server: Można skonfigurować Grupy Dostępności Always On podczas korzystania z usługi Azure Web Apps z maszynami wirtualnymi programu SQL Server na platformie Azure. Należy jednak skonfigurować Always On Availability Group Listener, aby kierować komunikację do repliki podstawowej za pośrednictwem publicznych punktów końcowych o zrównoważonym obciążeniu. |
Łączność między lokalizacjami | Aby nawiązać połączenie ze środowiskiem lokalnym, możesz użyć usługi Azure Virtual Network. | Aby nawiązać połączenie ze środowiskiem lokalnym, możesz użyć usługi Azure Virtual Network. | Usługa Azure Virtual Network jest obsługiwana. |
Skalowalność | Skalowanie w górę jest dostępne przez zwiększenie rozmiarów maszyn wirtualnych lub dodanie większej liczby dysków. Aby uzyskać więcej informacji na temat rozmiarów maszyn wirtualnych, zobacz Rozmiary maszyn wirtualnych dla platformy Azure. W przypadku serwera bazy danych: skalowanie w poziomie jest dostępne za pośrednictwem technik partycjonowania bazy danych oraz grupy dostępności Always On programu SQL Server. Dla dużych obciążeń odczytu można używać Always On Availability Groups na wielu wtórnych węzłach, a także replikacji SQL Server. W przypadku dużych obciążeń zapisu można zaimplementować partycjonowanie danych poziome na wielu serwerach fizycznych w celu zapewnienia skalowania aplikacji poziomo. Ponadto można zaimplementować skalowanie w poziomie przy użyciu programu SQL Server z zależnym od danych routingiem. W przypadku routingu zależnego od danych (DDR) należy zaimplementować mechanizm partycjonowania w aplikacji klienckiej, zazwyczaj w warstwie warstwy biznesowej, aby kierować żądania bazy danych do wielu węzłów programu SQL Server. Warstwa biznesowa zawiera mapowania sposobu partycjonowania danych i węzła zawierającego dane. Aplikacje z uruchomionymi maszynami wirtualnymi można skalować. Aby uzyskać więcej informacji, zobacz Jak skalować aplikację. Ważna uwaga: funkcja autoskalowania na platformie Azure umożliwia automatyczne zwiększanie lub zmniejszanie maszyn wirtualnych używanych przez aplikację. Ta funkcja gwarantuje, że środowisko użytkownika końcowego nie ma negatywnego wpływu w okresach szczytowych, a maszyny wirtualne są zamykane, gdy zapotrzebowanie jest niskie. Zaleca się, aby nie ustawiać opcji autoskalowania dla usługi w chmurze, jeśli zawiera ona maszyny wirtualne programu SQL Server. Przyczyną jest to, że funkcja autoskalowania umożliwia platformie Azure włączenie maszyny wirtualnej, gdy użycie procesora CPU na tej maszynie wirtualnej jest wyższe niż jakiś próg, i wyłączenie maszyny wirtualnej, gdy użycie procesora CPU będzie niższe niż. Funkcja autoskalowania jest przydatna w przypadku aplikacji bezstanowych, takich jak serwery internetowe, gdzie każda maszyna wirtualna może zarządzać obciążeniem bez żadnych odwołań do poprzedniego stanu. Jednak funkcja autoskalowania nie jest przydatna w przypadku aplikacji stanowych, takich jak SQL Server, gdzie tylko jedno wystąpienie umożliwia zapisywanie w bazie danych. |
Skalowanie w górę jest dostępne przy użyciu wielu ról sieciowych i roboczych. Aby uzyskać więcej informacji na temat rozmiarów maszyn wirtualnych dla ról sieci Web i ról procesów roboczych, zobacz Konfigurowanie rozmiarów dla usług Cloud Services. W przypadku korzystania z usług Cloud Services można zdefiniować wiele ról w celu dystrybucji przetwarzania, a także uzyskać elastyczne skalowanie aplikacji. Każda usługa w chmurze zawiera co najmniej jedną rolę internetową i/lub rolę procesu roboczego, z których każda ma własne pliki aplikacji i konfigurację. Usługę w chmurze można skalować w górę, zwiększając liczbę wystąpień ról (maszyn wirtualnych) wdrożonych dla roli i skalowając w dół usługę w chmurze przez zmniejszenie liczby wystąpień ról. Aby uzyskać szczegółowe informacje, zobacz Modele wykonywania platformy Azure. Skalowanie w poziomie jest możliwe dzięki wbudowanej obsłudze wysokiej dostępności platformy Azure poprzez Usługi w Chmurze, Maszyny Wirtualne, Umowę o Poziomie Świadczenia Usług Sieci Wirtualnej oraz Równoważenie Obciążenia. W przypadku aplikacji wielowarstwowej zalecamy połączenie aplikacji ról internetowych/procesów roboczych z maszynami wirtualnymi serwera bazy danych za pośrednictwem usługi Azure Virtual Network. Ponadto platforma Azure zapewnia równoważenie obciążenia maszyn wirtualnych w tej samej usłudze w chmurze, rozdzielając żądania użytkowników między nimi. Maszyny wirtualne połączone w ten sposób mogą komunikować się bezpośrednio ze sobą za pośrednictwem sieci lokalnej w centrum danych platformy Azure. Można skonfigurować AutoScale na portalu Azure, a także ustawienia harmonogramu. Aby uzyskać więcej informacji, zobacz Jak skonfigurować automatyczne skalowanie dla usługi w chmurze w portalu. |
Skalowanie w górę i w dół: Możesz zwiększyć/zmniejszyć rozmiar instancji maszyny wirtualnej (VM) zarezerwowanej dla swojej witryny internetowej. Skalowanie w poziomie: możesz dodać więcej zarezerwowanych instancji (maszyn wirtualnych) do swojej witryny internetowej. Skonfigurować AutoScale można w portalu, a także ustawić czasy harmonogramu. Aby uzyskać więcej informacji, zobacz How to Scale Web Apps (Jak skalować aplikacje internetowe). |
Aby uzyskać więcej informacji na temat wybierania między tymi metodami programowania, zobacz Azure Web Apps, Cloud Services i VMs: When to use which (Aplikacje internetowe platformy Azure, usługi Cloud Services i maszyny wirtualne: kiedy należy używać).
Następny krok
Aby uzyskać więcej informacji na temat uruchamiania programu SQL Server na maszynach wirtualnych platformy Azure, zobacz SQL Server on Azure Virtual Machines Overview (Omówienie programu SQL Server na maszynach wirtualnych platformy Azure).