Wzorce aplikacji i strategie programowania dla programu SQL Server na maszynach wirtualnych platformy Azure

Dotyczy: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 internetowej frontonu i składnikach warstwy dostępu do danych na innej maszynie oraz warstwie bazy danych 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
Prezentacji 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 traktować warstwę terminową jako odnoszącą się do wzorców dystrybucji fizycznej, takich jak dwuwarstwowa, trójwarstwowa i n-warstwowa. 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 jednostkach DTU) i Model zakupów oparty na rdzeniach wirtualnych (wersja zapoznawcza).
    • 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 znajdują się 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 skaluje w poziomie, dodając więcej ról internetowych 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.

1-tier application pattern

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 w górę i skalowania w poziomie. 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.

3-tier application pattern

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 przechodzą 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 warstwą prezentacji skalowaną w poziomie

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ć warstwę prezentacji w poziomie z powodu zwiększonej liczby 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 skalować warstwę prezentacji w poziomie z powodu zwiększonej liczby przychodzących żądań 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 wystąpień serwerów internetowych za modułem równoważenia obciążenia zapewnia wysoką dostępność warstwy prezentacji.

Application pattern - presentation tier scale-out

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 wysokiej dostępności w oddzielnych domenach błędów i domenach uaktualniania.

Aby korzystać z wielu wystąpień maszyn wirtualnych w warstwie, należy skonfigurować usługę Azure Load Balancer między 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 wystąpień serwerów internetowych za modułem równoważenia obciążenia zapewnia wysoką dostępność warstwy prezentacji.

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 biznesowe o dużym obciążeniu lokalnym (biznesowych) logiki biznesowej 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 modułem równoważenia obciążenia zapewnia wysoką dostępność warstwy 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.

Application pattern with business tier scale-out

2-warstwowe i 3-warstwowe z warstwami prezentacji i warstwami biznesowymi skalowalnymi w poziomie i hadr

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 skalować warstwę prezentacji w poziomie i warstwę biznesową ze względu na większą liczbę przychodzących żądań klientów i 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.

Uruchamianie wielu kopii aplikacji na różnych maszynach wirtualnych upewnij się, że żądań równoważenia obciążenia 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 wystąpień serwerów internetowych i aplikacji za modułem równoważenia obciążenia zapewnia wysoką dostępność prezentacji i warstw biznesowych.

Scale-out and high availability

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 usług Azure Virtual Machines i Cloud Services

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 wystąpienie obliczeniowe uruchomione w usługach Cloud Services zapewnia łatwe zarządzanie, wdrażanie, monitorowanie i skalowanie w poziomie.

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 aplikacja wymaga opcji skalowania w poziomie, automatycznego i ręcznego skalowania w poziomie jest dostępna dla projektu usługi w chmurze przez zwiększenie lub zmniejszenie liczby wystąpień 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 wewnętrzna obejmuje rolę procesu roboczego, która jest składnikiem usług w chmurze działającym w środowisku wykonywania platformy Azure i 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 — składników roli procesu roboczego.

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 umieścisz warstwę prezentacji w rolach internetowych, warstwę biznesową w rolach procesu roboczego, ale 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 sieci wirtualnej platformy Azure zapewnia małe 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 aplikacji za modułem równoważenia obciążenia zapewnia wysoką dostępność warstwy prezentacji i warstwy biznesowej. Aby uzyskać więcej informacji, zobacz Najlepsze rozwiązania dotyczące wzorców aplikacji wymagających usługi SQL HADR.

Diagram shows on-premises physical or virtual machines connected to web role instances in an Azure virtual network through an Azure load balancer.

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 internetowych i procesów roboczych, zalecamy zaimplementowanie logiki do przechowywania stanu sesji przy użyciu jednej z następujących technologii: Azure Buforowanie, Azure Table Storage lub Azure SQL Database.

Diagram shows on-premises physical or virtual machines connected to consolidated web/worker role instances in an Azure virtual network.

Wzorzec z usługami Azure Virtual Machines, Azure SQL Database i aplikacja systemu Azure 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 aplikacja systemu Azure 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.

Mixed application pattern

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 domena usługi Active Directory Services do obsługi uwierzytelniania i autoryzacji użytkownika. 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.

N-tier application pattern

Na platformie Azure możesz użyć identyfikatora entra firmy Microsoft (dawniej Azure Active Directory) do zarządzania tożsamościami i dostępem lub zintegrować istniejącą lokalna usługa Active Directory z identyfikatorem Entra firmy Microsoft. 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:

  1. 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.

  2. Planowanie zasobów i konfiguracji wymaganych na platformie Azure, takich jak konta magazynu i maszyny wirtualne.

  3. 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:

    1. 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.

    2. 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 pomoc techniczna platformy Azure zabezpiecza sieć VPN typu lokacja-lokacja i połączenia 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 Połączenie z maszyną wirtualną z programem SQL Server na platformie Azure.

  4. 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 Sql Server Backup and Restore with Azure Blob Storage and Backup and Restore for SQL Server on Azure Virtual Machines (Tworzenie kopii zapasowych i przywracanie kopii zapasowych i przywracania programu SQL Server na maszynach wirtualnych platformy Azure).

  5. W zależności od potrzeb aplikacji można zaimplementować jeden z następujących trzech typowych scenariuszy:

    1. 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.
    2. Serwer internetowy i serwer aplikacji można przechowywać lokalnie, podczas gdy serwer bazy danych na maszynie wirtualnej na platformie Azure.
    3. 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 programistycznych. Aby uzyskać informacje na temat tworzenia replik baz danych na platformie Azure, zobacz Always On Availability Groups at High Availability and Disaster Recovery for SQL Server on Azure Virtual Machines (Zawsze włączone grupy dostępności i odzyskiwania po awarii dla programu SQL Server na maszynach wirtualnych platformy 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 sieci Web i procesów 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 sieci Web i procesów roboczych. Istniejące aplikacje zgodnie z rzeczywistymi wymaganiami są odpowiednie dla samodzielnie zawartych 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 konfiguracja 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 sieci Web lub procesu roboczego 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 HDAR, 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 procesów roboczych platformy Azure, usługi Azure Blob Storage i usługi Azure SQL Database. Na przykład usługa Azure Storage obsługuje trzy repliki wszystkich obiektów blob, tabel i danych 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.

Zawsze włączone grupy dostępności programu SQL Server: zawsze włączone grupy dostępności można skonfigurować podczas korzystania z usługi Azure Web Apps z maszynami wirtualnymi programu SQL Server na platformie Azure. Należy jednak skonfigurować odbiornik zawsze włączonej grupy dostępności, 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 i zawsze włączonych grup dostępności programu SQL Server.

W przypadku dużych obciążeń odczytu można używać zawsze włączonych grup dostępności w wielu węzłach pomocniczych, a także replikacji programu SQL Server.

W przypadku dużych obciążeń zapisu można zaimplementować dane partycjonowania poziomego na wielu serwerach fizycznych w celu zapewnienia skalowania aplikacji w poziomie.

Ponadto można zaimplementować skalowanie w poziomie przy użyciu programu SQL Server z routingiem zależnym od danych. 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 sieci Web i procesów 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 dostępne za pośrednictwem wbudowanej obsługi wysokiej dostępności platformy Azure za pośrednictwem usług w chmurze, maszyn wirtualnych i umowy dotyczącej poziomu usług sieci wirtualnej i modułu równoważenia 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.

Skalowanie automatyczne można skonfigurować w witrynie Azure Portal, a także czasy 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 wystąpienia zarezerwowanego dla witryny internetowej.

Skalowanie w poziomie: możesz dodać więcej wystąpień zarezerwowanych (maszyn wirtualnych) dla witryny internetowej.

Skalowanie automatyczne można skonfigurować w portalu, a także 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).