Ćwiczenia praktyczne: Witryny internetowe platformy Azure z możliwością obsługi: zarządzanie zmianami i skalowaniem

Autor: Web Camps Team

Pobierz zestaw szkoleniowy dla obozów internetowych

Platforma Microsoft Azure ułatwia tworzenie i wdrażanie witryn internetowych w środowisku produkcyjnym. Ale nie robisz, gdy aplikacja jest aktywna, dopiero zaczynasz! Musisz obsługiwać zmieniające się wymagania, aktualizacje bazy danych, skalowanie i nie tylko. Na szczęście, Azure App Service został omówiony, z dużą ilością funkcji, które ułatwiają bezproblemowe działanie witryn.

Platforma Azure oferuje bezpieczne i elastyczne opcje programowania, wdrażania i skalowania dla dowolnej aplikacji internetowej o dowolnym rozmiarze. Skorzystaj z istniejących narzędzi, aby tworzyć i wdrażać aplikacje bez problemów z zarządzaniem infrastrukturą.

Zaaprowizuj produkcyjną aplikację internetową w ciągu kilku minut, łatwo wdrażając zawartość utworzoną przy użyciu ulubionego narzędzia programistycznego. Istniejącą witrynę można wdrożyć bezpośrednio z poziomu kontroli źródła z obsługą usług Git, GitHub, Bitbucket, TFS, a nawet DropBox. Wdróż bezpośrednio z ulubionego środowiska IDE lub skryptów przy użyciu programu PowerShell w systemie Windows lub narzędziach interfejsu wiersza polecenia działających w dowolnym systemie operacyjnym. Po wdrożeniu zachowaj aktualność witryn dzięki obsłudze ciągłego wdrażania.

Platforma Azure udostępnia skalowalne, trwałe rozwiązania magazynu w chmurze, tworzenia kopii zapasowych i odzyskiwania dla dowolnych danych, dużych lub małych. Podczas wdrażania aplikacji w środowisku produkcyjnym usługi magazynu, takie jak tabele, obiekty blob i bazy danych SQL, ułatwiają skalowanie aplikacji w chmurze.

W przypadku baz danych SQL ważne jest, aby wydajna baza danych była aktualna podczas wdrażania nowych wersji aplikacji. Dzięki migracje Code First platformy Entity Framework programowanie i wdrażanie modelu danych zostało uproszczone w celu zaktualizowania środowisk w ciągu kilku minut. To praktyczne laboratorium pokazuje różne tematy, które można napotkać podczas wdrażania aplikacji internetowej w środowiskach produkcyjnych na platformie Microsoft Azure.

Cały przykładowy kod i fragmenty kodu są zawarte w zestawie szkoleniowym Web Camps dostępnym pod adresem https://aka.ms/webcamps-training-kit.

Aby uzyskać bardziej szczegółowy opis tego tematu, zobacz artykuł Building Real-World Cloud Apps with Azure e-book (Tworzenie aplikacji w chmurze Real-World w chmurze za pomocą usługi Azure e-book).

Omówienie

Cele

W tym praktycznym laboratorium dowiesz się, jak wykonywać następujące działania:

  • Włączanie migracji platformy Entity Framework przy użyciu istniejącego modelu
  • Odpowiednio zaktualizuj model obiektów i bazę danych przy użyciu migracji platformy Entity Framework
  • Wdrażanie w Azure App Service przy użyciu usługi Git
  • Wycofywanie do poprzedniego wdrożenia przy użyciu portalu zarządzania Azure
  • Skalowanie aplikacji internetowej przy użyciu usługi Azure Storage
  • Konfigurowanie automatycznego skalowania dla aplikacji internetowej przy użyciu portalu zarządzania Azure
  • Tworzenie i konfigurowanie projektu testu obciążeniowego w programie Visual Studio

Wymagania wstępne

Aby wykonać to praktyczne laboratorium, wymagane jest wykonanie następujących czynności:

Konfigurowanie

Aby uruchomić ćwiczenia w tym praktycznym laboratorium, należy najpierw skonfigurować środowisko.

  1. Otwórz Eksploratora Windows i przejdź do folderu Źródło laboratorium.
  2. Kliknij prawym przyciskiem myszy plik Setup.cmd i wybierz polecenie Uruchom jako administrator , aby uruchomić proces instalacji, który skonfiguruje środowisko i zainstaluj fragmenty kodu programu Visual Studio dla tego laboratorium.
  3. Jeśli zostanie wyświetlone okno dialogowe Kontrola konta użytkownika, potwierdź akcję, aby kontynuować.

Uwaga

Przed uruchomieniem konfiguracji upewnij się, że zostały sprawdzone wszystkie zależności dla tego laboratorium.

Używanie fragmentów kodu

W całym dokumencie laboratoryjnym zostanie wyświetlone polecenie wstawiania bloków kodu. Dla wygody większość tego kodu jest dostarczana jako fragmenty kodu Visual Studio Code, do których można uzyskać dostęp z poziomu Visual Studio 2013, aby uniknąć konieczności ręcznego dodawania go.

Uwaga

Każdemu ćwiczeniu towarzyszy rozwiązanie początkowe znajdujące się w folderze Begin ćwiczenia, które umożliwia wykonywanie poszczególnych ćwiczeń niezależnie od innych. Pamiętaj, że w tych rozwiązaniach początkowych brakuje fragmentów kodu dodanych podczas ćwiczenia i może nie działać do momentu ukończenia ćwiczenia. W kodzie źródłowym ćwiczenia znajdziesz również folder końcowy zawierający rozwiązanie programu Visual Studio z kodem, który wynika z wykonania kroków w odpowiednim ćwiczeniu. Możesz użyć tych rozwiązań jako wskazówek, jeśli potrzebujesz dodatkowej pomocy podczas pracy z tym praktycznym laboratorium.


Ćwiczenia

To praktyczne laboratorium obejmuje następujące ćwiczenia:

  1. Korzystanie z migracji platformy Entity Framework
  2. Wdrażanie aplikacji internetowej w środowisku przejściowym
  3. Wykonywanie wycofywania wdrożenia w środowisku produkcyjnym
  4. Skalowanie przy użyciu usługi Azure Storage
  5. Używanie automatycznego skalowania dla Web Apps (opcjonalne dla wersji Visual Studio 2013 Ultimate)

Szacowany czas ukończenia tego laboratorium: 75 minut

Uwaga

Po pierwszym uruchomieniu programu Visual Studio należy wybrać jedną ze wstępnie zdefiniowanych kolekcji ustawień. Każda wstępnie zdefiniowana kolekcja jest przeznaczona do dopasowania określonego stylu programowania i określa układy okien, zachowanie edytora, fragmenty kodu intelliSense i opcje okna dialogowego. Procedury w tym laboratorium opisują akcje niezbędne do wykonania danego zadania w programie Visual Studio podczas korzystania z kolekcji Ogólne ustawienia programowania . W przypadku wybrania innej kolekcji ustawień dla środowiska deweloperskiego mogą wystąpić różnice w krokach, które należy wziąć pod uwagę.

Ćwiczenie 1. Korzystanie z migracji platformy Entity Framework

Podczas tworzenia aplikacji model danych może ulec zmianie w czasie. Te zmiany mogą mieć wpływ na istniejący model w bazie danych (jeśli tworzysz nową wersję) i ważne jest, aby zapewnić aktualność bazy danych, aby zapobiec błędom.

Aby uprościć śledzenie tych zmian w modelu, migracje Code First platformy Entity Framework automatycznie wykrywać zmiany porównujące model ze schematem bazy danych i generuje konkretny kod w celu zaktualizowania bazy danych, tworząc nowe wersje bazy danych.

W tym ćwiczeniu pokazano, jak włączyć migracje dla aplikacji oraz jak można łatwo wykrywać i generować zmiany w celu zaktualizowania baz danych.

Zadanie 1 — włączanie migracji

W tym zadaniu przejdziesz przez kroki włączania migracje Code First platformy Entity Framework do bazy danych Geek Quiz, zmiany modelu i zrozumienia, jak te zmiany są odzwierciedlane w bazie danych.

  1. Otwórz program Visual Studio i otwórz plik rozwiązania GeekQuiz.sln z folderu Source\Ex1-UsingEntityFrameworkMigrations\Begin.

  2. Skompiluj rozwiązanie, aby pobrać i zainstalować zależności pakietu NuGet . W tym celu kliknij rozwiązanie prawym przyciskiem myszy i kliknij polecenie Kompiluj rozwiązanie lub naciśnij klawisze Ctrl + Shift + B.

  3. W menu Narzędzia w programie Visual Studio wybierz pozycję Menedżer pakietów NuGet, a następnie kliknij pozycję Konsola menedżera pakietów.

  4. W konsoli Menedżera pakietów wprowadź następujące polecenie, a następnie naciśnij klawisz Enter. Zostanie utworzona początkowa migracja oparta na istniejącym modelu.

    Enable-Migrations -ContextTypeName GeekQuiz.Models.TriviaContext
    

    Włączanie migracji

    Włączanie migracji

    Uwaga

    To polecenie dodaje folder Migrations do projektu Geek Quiz, który zawiera plik o nazwie Configuration.cs. Klasa Configuration umożliwia skonfigurowanie zachowania migracji dla kontekstu.

  5. Po włączeniu migracji należy zaktualizować klasę Configuration , aby wypełnić bazę danych danymi początkowymi wymaganymi przez narzędzie Geek Quiz . W obszarze Migracje zastąp plik Configuration.cs plikiem znajdującym się w folderze Source\Assets tego laboratorium.

    Uwaga

    Ponieważ migracje będą wywoływać metodę Seed z każdą aktualizacją bazy danych, należy upewnić się, że rekordy nie są zduplikowane w bazie danych. Metoda AddOrUpdate pomoże zapobiec zduplikowaniu danych.

  6. Aby dodać migrację początkową, wprowadź następujące polecenie, a następnie naciśnij klawisz Enter.

    Uwaga

    Upewnij się, że w wystąpieniu bazy danych LocalDB nie ma bazy danych o nazwie "GeekQuizProd".

    Add-Migration InitialSchema
    

    Dodawanie migracji schematu podstawowego Dodawanie migracji schematu

    Dodawanie migracji schematu podstawowego

    Uwaga

    Dodatek Migracja utworzy szkielet następnej migracji na podstawie zmian wprowadzonych w modelu od czasu utworzenia ostatniej migracji. W takim przypadku, ponieważ jest to pierwsza migracja projektu, doda skrypty, aby utworzyć wszystkie tabele zdefiniowane w klasie TriviaContext .

  7. Wykonaj migrację, aby zaktualizować bazę danych, uruchamiając następujące polecenie. Dla tego polecenia określ flagę Pełne , aby wyświetlić instrukcje SQL stosowane do docelowej bazy danych.

    Update-Database -Verbose
    

    Tworzenie początkowej bazy danych Tworzenie

    Tworzenie początkowej bazy danych

    Uwaga

    Usługa Update-Database będzie stosować wszystkie oczekujące migracje do bazy danych. W takim przypadku baza danych zostanie utworzona przy użyciu parametry połączenia zdefiniowanego w pliku web.config.

  8. Przejdź do menu Widok i otwórz SQL Server Eksplorator obiektów.

    Otwórz w SQL Server Eksplorator obiektów

    Otwórz w SQL Server Eksplorator obiektów

  9. W oknie SQL Server Eksplorator obiektów połącz się z wystąpieniem usługi LocalDB, klikając prawym przyciskiem myszy węzeł SQL Server i wybierając opcję Dodaj SQL Server....

    Dodawanie wystąpienia SQL Server

    Dodawanie wystąpienia SQL Server do SQL Server Eksplorator obiektów

  10. Ustaw nazwę serwera na (localdb)\v11.0 i pozostaw opcję Uwierzytelnianie systemu Windows jako tryb uwierzytelniania. Kliknij pozycję Połącz, aby kontynuować.

    Nawiązywanie połączenia z bazą danych

    Nawiązywanie połączenia z bazą danych LocalDB

  11. Otwórz bazę danych GeekQuizProd i rozwiń węzeł Tabele . Jak widać, polecenie Update-Database wygenerowało wszystkie tabele zdefiniowane w klasie TriviaContext . Znajdź bazę danych. TriviaQuestions tabela i otwórz węzeł kolumn. W następnym zadaniu dodasz nową kolumnę do tej tabeli i zaktualizujesz bazę danych przy użyciu funkcji Migrations.

    Trivia Questions Columns Trivia Questions Columns (Pytania dotyczące kolumn trywii)

    Kolumny pytań trywii

Zadanie 2 — aktualizowanie schematu bazy danych przy użyciu migracji

W tym zadaniu użyjesz migracje Code First platformy Entity Framework, aby wykryć zmianę modelu i wygenerować niezbędny kod do zaktualizowania bazy danych. Zaktualizujesz jednostkę TriviaQuestions , dodając do niej nową właściwość. Następnie uruchomisz polecenia, aby utworzyć nową migrację w celu uwzględnienia nowej kolumny w tabeli.

  1. W Eksplorator rozwiązań kliknij dwukrotnie plik TriviaQuestion.cs znajdujący się w folderze Models.

  2. Dodaj nową właściwość o nazwie Hint, jak pokazano w poniższym fragmencie kodu.

    public class TriviaQuestion
    {
         public int Id { get; set; }
    
         [Required]
         public string Title { get; set; }
    
         public virtual List<TriviaOption> Options { get; set; }
    
         public string Hint { get; set; }
    }
    
  3. W konsoli menedżera pakietów wprowadź następujące polecenie, a następnie naciśnij klawisz Enter. Zostanie utworzona nowa migracja odzwierciedlająca zmianę w naszym modelu.

    Add-Migration QuestionHint
    

    Add-Migration

    Dodawanie migracji

    Uwaga

    Plik migracji składa się z dwóch metod: w górę i w dół.

    • Metoda Up zostanie użyta do określenia zmian w bieżącej wersji aplikacji, które należy zastosować do bazy danych.
    • Wartość Down służy do odwrócenia zmian dodanych do metody Up .

    Po zaktualizowaniu bazy danych przez usługę Database Migration zostaną uruchomione wszystkie migracje w kolejności znacznika czasu i tylko te, które nie zostały użyte od ostatniej aktualizacji (tabela _MigrationHistory śledzi, które migracje zostały zastosowane). Metoda Up wszystkich migracji zostanie wywołana i wprowadzi zmiany określone w bazie danych. Jeśli zdecydujemy się wrócić do poprzedniej migracji, metoda Down zostanie wywołana w celu ponownego wykonania zmian w odwrotnej kolejności.

  4. W konsoli menedżera pakietów wprowadź następujące polecenie, a następnie naciśnij klawisz Enter.

    Update-Database -Verbose
    
  5. Dane wyjściowe polecenia Update-Database wygenerowały instrukcję Alter Table SQL, aby dodać nową kolumnę do tabeli TriviaQuestions , jak pokazano na poniższej ilustracji.

    Dodano kolumnę wygenerowaną instrukcję SQL

    Dodano kolumnę wygenerowaną instrukcję SQL

  6. W SQL Server Eksplorator obiektów odśwież dbo. TriviaQuestions tabela i sprawdź, czy jest wyświetlana nowa kolumna Hint.

    Wyświetlanie nowej kolumny wskazówek

    Wyświetlanie nowej kolumny wskazówek

  7. W edytorze TriviaQuestion.cs dodaj ograniczenie StringLength do właściwości Hint , jak pokazano w poniższym fragmencie kodu.

    public class TriviaQuestion
    {
         public int Id { get; set; }
    
         [Required]
         public string Title { get; set; }
    
         public virtual List<TriviaOption> Options { get; set; }
    
         [StringLength(150)]
         public string Hint { get; set; }
    }
    
  8. W konsoli menedżera pakietów wprowadź następujące polecenie, a następnie naciśnij klawisz Enter.

    Add-Migration QuestionHintLength
    
  9. W konsoli menedżera pakietów wprowadź następujące polecenie, a następnie naciśnij klawisz Enter.

    Update-Database -Verbose
    
  10. Dane wyjściowe polecenia Update-Database wygenerowały instrukcję Alter Table SQL, aby zaktualizować typ kolumny hint tabeli TriviaQuestions , jak pokazano na poniższej ilustracji.

    Alter column SQL statement generated

    Alter column SQL statement generated (Alter column— instrukcja SQL wygenerowana)

  11. W SQL Server Eksplorator obiektów odśwież dbo. TriviaQuestions tabela i sprawdź, czy typ kolumny Hint to nvarchar(150).

    Wyświetlanie nowego ograniczenia

    Wyświetlanie nowego ograniczenia

Ćwiczenie 2. Wdrażanie aplikacji internetowej w środowisku przejściowym

Web Apps w Azure App Service umożliwia przeprowadzanie publikowania etapowego. Publikowanie etapowe tworzy przejściowe miejsce lokacji dla każdej domyślnej lokacji produkcyjnej i umożliwia zamianę tych miejsc bez czasu awarii. Jest to naprawdę przydatne do weryfikowania zmian przed udostępnieniem ich publicznie, przyrostowej integracji zawartości witryny i wycofywania, jeśli zmiany nie działają zgodnie z oczekiwaniami.

W tym ćwiczeniu wdrożysz aplikację Geek Quiz w środowisku przejściowym aplikacji internetowej przy użyciu kontroli źródła git. W tym celu utworzysz aplikację internetową i zaaprowizujesz wymagane składniki w portalu zarządzania, skonfigurujesz repozytorium Git i wypchniesz kod źródłowy aplikacji z komputera lokalnego do miejsca przejściowego. Za pomocą Migracje Code First utworzonej w poprzednim ćwiczeniu zaktualizujesz również produkcyjną bazę danych. Następnie uruchomisz aplikację w tym środowisku testowym, aby zweryfikować jej działanie. Po spełnieniu, że działa zgodnie z oczekiwaniami, podwyższ poziom aplikacji do środowiska produkcyjnego.

Uwaga

Aby włączyć publikowanie etapowe, aplikacja internetowa musi być w trybie standardowym. Pamiętaj, że dodatkowe opłaty będą naliczane, jeśli zmienisz aplikację internetową na tryb standardowy. Aby uzyskać więcej informacji na temat cen, zobacz App Service Cennik.

Zadanie 1 — tworzenie aplikacji internetowej w Azure App Service

W tym zadaniu utworzysz aplikację internetową w Azure App Service z poziomu portalu zarządzania. Skonfigurujesz również SQL Database w celu utrwalania danych aplikacji i konfigurowania lokalnego repozytorium Git na potrzeby kontroli źródła.

  1. Przejdź do portalu zarządzania platformy Azure i zaloguj się przy użyciu konta Microsoft skojarzonego z subskrypcją.

    Zaloguj się do portalu zarządzania platformy Azure

    Zaloguj się do portalu zarządzania platformy Azure

  2. Kliknij pozycję Nowy na pasku poleceń w dolnej części strony.

    Tworzenie nowej aplikacji internetowej Tworzenie

    Tworzenie nowej aplikacji internetowej

  3. Kliknij pozycję Obliczenia, witryna internetowa , a następnie pozycję Utwórz niestandardowe.

    Tworzenie nowej aplikacji internetowej przy użyciu tworzenia niestandardowego

    Tworzenie nowej aplikacji internetowej przy użyciu tworzenia niestandardowego

  4. W oknie dialogowym Nowa witryna internetowa — tworzenie niestandardowe podaj dostępny adres URL (np. geek-quiz), wybierz lokalizację z listy rozwijanej Region i wybierz pozycję Utwórz nową bazę danych SQL na liście rozwijanej Baza danych . Na koniec zaznacz pole wyboru Publikuj z kontroli źródła i kliknij przycisk Dalej.

    Dostosowywanie nowej aplikacji internetowej

    Dostosowywanie nowej aplikacji internetowej

  5. Określ następujące informacje dotyczące ustawień bazy danych:

    • W polu tekstowym Nazwa wprowadź nazwę bazy danych (np. geekquiz_db)

    • Z listy rozwijanej Serwer wybierz pozycję Nowy serwer bazy danych SQL. Alternatywnie możesz wybrać istniejący serwer.

    • W polach Nazwa użytkownika bazy danych i Hasło bazy danych wprowadź nazwę użytkownika i hasło administratora serwera bazy danych SQL. Jeśli wybierzesz już utworzony serwer, zostanie wyświetlony monit o podanie hasła.

      Określanie ustawień bazy danych

      Określanie ustawień bazy danych

  6. Kliknij pozycję Next (Dalej), aby kontynuować.

  7. Wybierz pozycję Lokalne repozytorium Git , aby użyć kontroli źródła, a następnie kliknij przycisk Dalej.

    Uwaga

    Może zostać wyświetlony monit o podanie poświadczeń wdrożenia (nazwy użytkownika i hasła).

    Tworzenie repozytorium Git

    Tworzenie repozytorium Git

  8. Poczekaj na utworzenie nowej aplikacji internetowej.

    Uwaga

    Domyślnie platforma Azure udostępnia domeny w azurewebsites.net , ale także umożliwia ustawianie domen niestandardowych przy użyciu witryny Azure Management Portal. Można jednak zarządzać domenami niestandardowymi tylko wtedy, gdy używasz określonych trybów Azure App Service.

    Azure App Service jest dostępna w wersjach Bezpłatna, Współdzielona, Podstawowa, Standardowa i Premium. W trybie bezpłatnym i udostępnionym wszystkie aplikacje internetowe działają w środowisku wielodostępnym i mają limity przydziału użycia procesora CPU, pamięci i sieci. Maksymalna liczba bezpłatnych aplikacji może się różnić w zależności od planu. W trybie standardowym wybierasz aplikacje uruchamiane na dedykowanych maszynach wirtualnych, które odpowiadają standardowym zasobom obliczeniowym platformy Azure. Konfigurację trybu aplikacji internetowej można znaleźć w menu Skalowanie aplikacji internetowej.

    tryby Azure App Service

    Jeśli używasz trybu udostępnionego lub standardowego , możesz zarządzać domenami niestandardowymi dla aplikacji internetowej, przechodząc do menu Konfigurowanie aplikacji i klikając pozycję Zarządzaj domenami w obszarze Nazwy domen.

    Zarządzanie domenami — zarządzanie domenami

    Zarządzanie domenami niestandardowymi — zarządzanie domenami

  9. Po utworzeniu aplikacji internetowej kliknij link w kolumnie ADRES URL , aby sprawdzić, czy nowa aplikacja internetowa jest uruchomiona.

    Przechodzenie do nowej aplikacji internetowej

    Przechodzenie do nowej aplikacji internetowej

    uruchomiona aplikacja internetowa

    uruchomiona aplikacja internetowa

Zadanie 2 — tworzenie SQL Database produkcyjnej

W tym zadaniu użyjesz migracje Code First platformy Entity Framework do utworzenia bazy danych przeznaczonej dla wystąpienia usługi Azure SQL Database utworzonego w poprzednim zadaniu.

  1. W portalu zarządzania przejdź do aplikacji internetowej utworzonej w poprzednim zadaniu i przejdź do pulpitu nawigacyjnego.

  2. Na stronie Pulpit nawigacyjny kliknij link Wyświetl parametry połączenia w sekcji Szybki rzut oka .

    Wyświetlanie parametrów połączenia Wyświetlanie parametrów

    Wyświetlanie parametrów połączenia

  3. Skopiuj wartość parametry połączenia i zamknij okno dialogowe.

    Parametry połączenia w witrynie Azure Management Portal

    Parametry połączenia w witrynie Azure Management Portal

  4. Kliknij pozycję Bazy danych SQL, aby wyświetlić listę baz danych SQL na platformie Azure

    menu SQL Database

    menu SQL Database

  5. Znajdź bazę danych utworzoną w poprzednim zadaniu i kliknij pozycję Serwer.

    serwer SQL Database

    Serwer usługi SQL Database

  6. Na stronie Szybki start serwera kliknij pozycję Konfiguruj.

    Menu Konfigurowanie Menu

    Menu Konfiguracja

  7. W sekcji Dozwolone adresy IP kliknij link Dodaj do dozwolonych adresów IP, aby umożliwić adresowi IP nawiązywanie połączenia z serwerem SQL Database.

    Dozwolone adresy IP dozwolone adresy IP

    Dozwolone adresy IP

  8. Kliknij przycisk Zapisz w dolnej części strony, aby ukończyć krok.

  9. Wróć do programu Visual Studio.

  10. W konsoli Menedżera pakietów wykonaj następujące polecenie, zastępując symbol zastępczy [YOUR-CONNECTION-STRING] symbolem zastępczym parametry połączenia skopiowanym z platformy Azure

    Update-Database -Verbose -ConnectionString "[YOUR-CONNECTION-STRING]" -ConnectionProviderName "System.Data.SqlClient"
    

    Aktualizowanie bazy danych przeznaczonej dla bazy danych windows Azure SQL Database

    Aktualizowanie bazy danych docelowej Azure SQL Database

Zadanie 3 — wdrażanie testu geeka w środowisku przejściowym przy użyciu narzędzia Git

W tym zadaniu włączysz publikowanie etapowe w aplikacji internetowej. Następnie użyjesz usługi Git, aby opublikować aplikację Geek Quiz bezpośrednio z komputera lokalnego do środowiska przejściowego aplikacji internetowej.

  1. Wstecz do portalu i kliknij nazwę aplikacji internetowej w kolumnie Nazwa, aby wyświetlić strony zarządzania.

    Otwieranie stron zarządzania aplikacjami internetowymi

    Otwieranie stron zarządzania aplikacjami internetowymi

  2. Przejdź do strony Skalowanie . W sekcji ogólne wybierz pozycję Standardowa dla konfiguracji, a następnie kliknij przycisk Zapisz na pasku poleceń.

    Uwaga

    Aby uruchomić wszystkie aplikacje internetowe w bieżącym regionie i subskrypcji w trybie standardowym , pozostaw pole wyboru Zaznacz wszystko zaznaczone w konfiguracji Wybierz witryny . W przeciwnym razie wyczyść pole wyboru Zaznacz wszystko .

    Uaktualnianie aplikacji internetowej do trybu standardowego Uaktualnianie aplikacji internetowej

    Uaktualnianie aplikacji internetowej do trybu standardowego

  3. Kliknij przycisk Tak , aby potwierdzić zmiany.

    Potwierdzanie zmiany w trybie standardowym

    Potwierdzanie zmiany w trybie standardowym

  4. Przejdź do strony Pulpit nawigacyjny i kliknij pozycję Włącz publikowanie etapowe w sekcji Szybki rzut oka .

    Włączanie publikowania etapowego

    Włączanie publikowania etapowego

  5. Kliknij przycisk Tak , aby włączyć publikowanie etapowe.

    Potwierdzanie publikowania etapowego

    Potwierdzanie publikowania etapowego

  6. Na liście aplikacji internetowych rozwiń znacznik po lewej stronie nazwy aplikacji internetowej, aby wyświetlić przejściowe miejsce witryny. Ma ona nazwę aplikacji internetowej, po której następuje (przejściowe). Kliknij witrynę przejściową, aby przejść do strony zarządzania.

    Przechodzenie do przejściowej aplikacji internetowej

    Przechodzenie do aplikacji przejściowej

  7. Zwróć uwagę, że strona zarządzania wygląda jak każda inna strona zarządzania aplikacją internetową. Przejdź do strony Wdrożenia i skopiuj wartość adresu URL usługi Git . Będzie on używany w dalszej części tego ćwiczenia.

    Kopiowanie wartości adresu URL usługi Git

    Kopiowanie wartości adresu URL usługi Git

  8. Otwórz nową konsolę powłoki Git Bash i wykonaj następujące polecenia. Zaktualizuj symbol zastępczy [YOUR-APPLICATION-PATH] ścieżką do rozwiązania GeekQuiz znajdującym się w folderze Source\Ex1-DeployingWebSiteToStaging\Begin tego laboratorium.

    cd "[YOUR-APPLICATION-PATH]"
    git init
    git config --global user.email "{username@example.com}"
    git config --global user.name "{your-user-name}"
    git add .
    git commit -m "Initial commit"
    

    Inicjowanie i pierwsze zatwierdzenie usługi Git

    Inicjowanie i pierwsze zatwierdzenie usługi Git

  9. Uruchom następujące polecenie, aby wypchnąć aplikację internetową do zdalnego repozytorium Git . Zastąp symbol zastępczy adresem URL uzyskanym z portalu zarządzania. Zostanie wyświetlony monit o podanie hasła wdrożenia.

    git remote add azure [GIT-CLONE-URL]
    git push azure master
    

    Wypychanie do platformy Windows Azure

    Wypychanie na platformę Azure

    Uwaga

    Podczas wdrażania zawartości na hoście FTP lub repozytorium GIT aplikacji internetowej należy uwierzytelnić się przy użyciu poświadczeń wdrożenia utworzonych na stronach szybkiego startu lub pulpitu nawigacyjnego aplikacji internetowej. Jeśli nie znasz poświadczeń wdrożenia, możesz je łatwo zresetować przy użyciu portalu zarządzania. Otwórz stronę Pulpit nawigacyjny aplikacji internetowej i kliknij link Resetuj poświadczenia wdrożenia . Podaj nowe hasło i kliknij przycisk OK. Poświadczenia wdrożenia są prawidłowe do użycia ze wszystkimi aplikacjami internetowymi skojarzonymi z subskrypcją.

  10. Aby sprawdzić, czy aplikacja internetowa została pomyślnie wypchnięta na platformę Azure, wróć do portalu zarządzania i kliknij pozycję Witryny internetowe.

  11. Znajdź aplikację internetową i rozwiń wpis, aby wyświetlić przejściowe miejsce witryny. Kliknij jego nazwę , aby przejść do strony zarządzania.

  12. Kliknij pozycję Wdrożenia , aby wyświetlić historię wdrożenia. Sprawdź, czy istnieje aktywne wdrożenie przy użyciu zatwierdzenia początkowego.

    Aktywne wdrażanie

    Aktywne wdrażanie

  13. Na koniec kliknij przycisk Przeglądaj na pasku poleceń, aby przejść do aplikacji internetowej.

    Przeglądanie aplikacji internetowej

    Przeglądanie aplikacji internetowej

  14. Jeśli aplikacja została pomyślnie wdrożona, zostanie wyświetlona strona logowania Geek Quiz.

    Uwaga

    Adres URL wdrożonej aplikacji zawiera nazwę aplikacji internetowej, po której następuje -staging.

    Aplikacja uruchomiona w środowisku przejściowym

    Aplikacja uruchomiona w środowisku przejściowym

  15. Jeśli chcesz eksplorować aplikację, kliknij pozycję Zarejestruj , aby zarejestrować nowego użytkownika. Wypełnij szczegóły konta, wprowadzając nazwę użytkownika, adres e-mail i hasło. Następnie aplikacja wyświetla pierwsze pytanie testu. Odpowiedz na kilka pytań, aby upewnić się, że działa zgodnie z oczekiwaniami.

    Aplikacja gotowa do użycia

    Aplikacja gotowa do użycia

Zadanie 4 — promowanie aplikacji internetowej do środowiska produkcyjnego

Po sprawdzeniu, czy aplikacja internetowa działa prawidłowo w środowisku przejściowym, możesz przystąpić do promowania jej do środowiska produkcyjnego. W tym zadaniu zamienisz miejsce lokacji przejściowej na miejsce lokacji produkcyjnej.

  1. Wstecz do portalu zarządzania i wybierz przejściowe miejsce lokacji. Kliknij pozycję Zamień na pasku poleceń.

    Zamiana na środowisko produkcyjne

    Zamiana na środowisko produkcyjne

  2. Kliknij przycisk Tak w oknie dialogowym potwierdzenia, aby kontynuować operację zamiany. Platforma Azure natychmiast zamieni zawartość witryny produkcyjnej na zawartość witryny przejściowej.

    Uwaga

    Niektóre ustawienia z wersji etapowej zostaną automatycznie skopiowane do wersji produkcyjnej (np. parametry połączenia przesłonięcia, mapowania programu obsługi itp.), ale inne ustawienia nie zostaną zmienione (np. punkty końcowe DNS, powiązania SSL itp.).

    Potwierdzanie operacji zamiany

    Potwierdzanie operacji zamiany

  3. Po zakończeniu zamiany wybierz miejsce produkcyjne i kliknij przycisk Przeglądaj na pasku poleceń, aby otworzyć lokację produkcyjną. Zwróć uwagę na adres URL na pasku adresu.

    Uwaga

    Może być konieczne odświeżenie przeglądarki w celu wyczyszczenia pamięci podręcznej. W programie Internet Explorer możesz to zrobić, naciskając klawisze CTRL+R.

    Aplikacja internetowa działająca w środowisku produkcyjnym

  4. W konsoli GitBash zaktualizuj zdalny adres URL lokalnego repozytorium Git, aby było przeznaczone dla miejsca produkcyjnego. W tym celu uruchom następujące polecenie, zastępując symbole zastępcze nazwą użytkownika wdrożenia i nazwą aplikacji internetowej.

    Uwaga

    W poniższych ćwiczeniach wypchniesz zmiany do lokacji produkcyjnej zamiast przemieszczania tylko dla uproszczenia laboratorium. W rzeczywistym scenariuszu zaleca się zweryfikowanie zmian w środowisku przejściowym przed podwyższeniem poziomu do środowiska produkcyjnego.

    git remote set-url azure https://<your-user>@<your-web-site>.scm.azurewebsites.net:443/<your-web-site>.git
    

Ćwiczenie 3. Wykonywanie wycofywania wdrożenia w środowisku produkcyjnym

Istnieją scenariusze, w których nie masz miejsca przejściowego do wykonywania gorącej zamiany między środowiskiem przejściowym a środowiskiem produkcyjnym, na przykład w przypadku pracy z trybem bezpłatnym lub udostępnionym . W tych scenariuszach należy przetestować aplikację w środowisku testowym — lokalnie lub w lokacji zdalnej — przed wdrożeniem w środowisku produkcyjnym. Istnieje jednak możliwość, że w lokacji produkcyjnej może wystąpić problem, który nie został wykryty w fazie testowania. W takim przypadku ważne jest, aby mieć mechanizm łatwego przełączania się do poprzedniej i bardziej stabilnej wersji aplikacji tak szybko, jak to możliwe.

W Azure App Service ciągłe wdrażanie z kontroli źródła umożliwia to dzięki akcji ponownego wdrażania dostępnej w portalu zarządzania. Platforma Azure śledzi wdrożenia skojarzone z zatwierdzeniami wypychanymi do repozytorium i udostępnia opcję ponownego wdrożenia aplikacji przy użyciu dowolnego z poprzednich wdrożeń w dowolnym momencie.

W tym ćwiczeniu przeprowadzisz zmianę kodu w aplikacji Geek Quiz , która celowo wprowadza usterkę. Wdrożysz aplikację w środowisku produkcyjnym, aby zobaczyć błąd, a następnie skorzystasz z funkcji ponownego wdrażania, aby wrócić do poprzedniego stanu.

Zadanie 1 — aktualizowanie aplikacji Quiz geek

W tym zadaniu refaktoryzujesz mały fragment kodu klasy TriviaController , aby wyodrębnić część logiki, która pobiera wybraną opcję testu z bazy danych do nowej metody.

  1. Przejdź do wystąpienia programu Visual Studio przy użyciu rozwiązania GeekQuiz z poprzedniego ćwiczenia.

  2. W Eksplorator rozwiązań otwórz plik TriviaController.cs w folderze Controllers.

  3. Znajdź metodę StoreAsync i wybierz kod wyróżniony na poniższym rysunku.

    Wybieranie kodu

    Wybieranie kodu

  4. Kliknij prawym przyciskiem myszy wybrany kod, rozwiń menu Refaktoryzacja i wybierz polecenie Wyodrębnij metodę....

    Wyodrębnianie kodu jako nowej metody

    Wybieranie metody Wyodrębnij

  5. W oknie dialogowym Wyodrębnij metodę nadaj nowej metodzie nazwę MatchesOption i kliknij przycisk OK.

    Określanie nazwy metody

    Określanie nazwy wyodrębnionej metody

  6. Wybrany kod jest następnie wyodrębniany do metody MatchesOption . Wynikowy kod jest wyświetlany w poniższym fragmencie kodu.

    private async Task<bool> StoreAsync(TriviaAnswer answer)
    {
        this.db.TriviaAnswers.Add(answer);
    
        await this.db.SaveChangesAsync();
        var selectedOption = await this.db.TriviaOptions.FirstOrDefaultAsync(o => MatchesOption(answer, o));
    
        return selectedOption.IsCorrect;
    }
    
    private static bool MatchesOption(TriviaAnswer answer, TriviaOption o)
    {
        return o.Id == answer.OptionId
                && o.QuestionId == answer.QuestionId;
    }
    
  7. Naciśnij klawisze CTRL + S , aby zapisać zmiany.

Zadanie 2 — Ponowne wdrażanie aplikacji Quiz Geek

Teraz wypchniesz zmiany wprowadzone w poprzednim zadaniu do repozytorium, co spowoduje wyzwolenie nowego wdrożenia w środowisku produkcyjnym. Następnie wystąpi problem przy użyciu narzędzi programistycznych F12 udostępnianych przez program Internet Explorer, a następnie wykonasz wycofanie poprzedniego wdrożenia z portalu zarządzania Platformy Azure.

  1. Otwórz nową konsolę powłoki Git Bash, aby wdrożyć zaktualizowaną aplikację w celu Azure App Service.

  2. Wykonaj następujące polecenia, aby wypchnąć zmiany na platformę Azure. Zaktualizuj symbol zastępczy [YOUR-APPLICATION-PATH] ścieżką do rozwiązania GeekQuiz . Zostanie wyświetlony monit o hasło wdrożenia.

    cd "[YOUR-APPLICATION-PATH]"
    git add .
    git commit -m "Refactored answer check"
    git push azure master
    

    Wypychanie refaktoryzowanego kodu na platformę Azure

    Wypychanie refaktoryzowanego kodu na platformę Azure

  3. Otwórz program Internet Explorer i przejdź do aplikacji internetowej (np. http://<your-web-site>.azurewebsites.net). Zaloguj się przy użyciu wcześniej utworzonych poświadczeń.

  4. Naciśnij klawisz F12 , aby uruchomić narzędzia programistyczne, wybierz kartę Sieć i kliknij przycisk Odtwarzania , aby rozpocząć nagrywanie.

    Zrzut ekranu przedstawia aplikację internetową z greckim quizem z wskaźnikiem wybierającym pozycję Włącz przechwytywanie ruchu sieciowego w ramach wycofywania wdrożenia.

    Uruchamianie rejestrowania sieci

  5. Wybierz dowolną opcję testu. Zobaczysz, że nic się nie dzieje.

  6. W oknie F12 wpis odpowiadający żądaniu HTTP POST pokazuje wynik HTTP 500 .

    Błąd HTTP 500

    Błąd HTTP 500

  7. Wybierz kartę Konsola . Błąd jest rejestrowany ze szczegółami przyczyny.

    Zarejestrowany błąd

    Zarejestrowany błąd

  8. Znajdź część szczegółów błędu. Oczywiście ten błąd jest spowodowany refaktoryzowaniem kodu zatwierdzonym w poprzednich krokach.

    Details: LINQ to Entities does not recognize the method 'Boolean MatchesOption ....

  9. Nie zamykaj przeglądarki.

  10. W nowym wystąpieniu przeglądarki przejdź do witryny [Azure Management Portal](/azure/azure-portal/azure-portal-overview i zaloguj się przy użyciu konta Microsoft skojarzonego z subskrypcją.

  11. Wybierz pozycję Witryny internetowe i kliknij aplikację internetową utworzoną w ćwiczeniu 2.

  12. Przejdź do strony Wdrożenia . Zwróć uwagę, że wszystkie wykonane zatwierdzenia są wymienione w historii wdrażania.

    Lista istniejących wdrożeń

    Lista istniejących wdrożeń

  13. Wybierz poprzednie zatwierdzenie i kliknij pozycję Wdróż ponownie na pasku poleceń.

    Ponowne wdrażanie poprzedniego zatwierdzenia

    Ponowne wdrażanie poprzedniego zatwierdzenia

  14. Po wyświetleniu monitu o potwierdzenie kliknij przycisk Tak.

    Potwierdzanie ponownego wdrożenia

  15. Po zakończeniu wdrażania wróć do wystąpienia przeglądarki za pomocą aplikacji internetowej i naciśnij klawisze CTRL + F5.

  16. Kliknij dowolną z opcji. Animacja przerzucania zostanie teraz utworzona, a wynik (poprawny/nieprawidłowy) zostanie wyświetlony.

  17. (Opcjonalnie) Przejdź do konsoli powłoki Git Bash i wykonaj następujące polecenia, aby przywrócić poprzednie zatwierdzenie.

    Uwaga

    Te polecenia tworzą nowe zatwierdzenie, które cofa wszystkie zmiany w repozytorium Git, które zostały wprowadzone w nieprawidłowym zatwierdzaniu. Platforma Azure ponownie wdroży aplikację przy użyciu nowego zatwierdzenia.

    git revert HEAD --no-edit
    git push azure master
    

Ćwiczenie 4. Skalowanie przy użyciu usługi Azure Storage

Obiekty blob to najprostszy sposób przechowywania dużych ilości tekstu bez struktury lub danych binarnych, takich jak wideo, audio i obrazy. Przeniesienie zawartości statycznej aplikacji do usługi Storage pomaga skalować aplikację, obsługując obrazy lub dokumenty bezpośrednio w przeglądarce.

W tym ćwiczeniu przeniesiesz zawartość statyczną aplikacji do kontenera obiektów blob. Następnie skonfigurujesz aplikację, aby dodać regułę ponownego zapisywania adresu URL ASP.NET w Web.config w celu przekierowania zawartości do kontenera obiektów blob.

Zadanie 1 — tworzenie konta usługi Azure Storage

W tym zadaniu dowiesz się, jak utworzyć nowe konto magazynu przy użyciu portalu zarządzania.

  1. Przejdź do witryny Azure Management Portal i zaloguj się przy użyciu konta Microsoft skojarzonego z subskrypcją.

  2. Wybierz pozycję Nowy | Usługi danych | Magazyn | Szybkie tworzenie , aby rozpocząć tworzenie nowego konta magazynu. Wprowadź unikatową nazwę konta i wybierz region z listy. Kliknij pozycję Utwórz konto magazynu , aby kontynuować.

    Tworzenie nowego konta magazynu Tworzenie nowego konta magazynu

    Tworzenie nowego konta magazynu

  3. W sekcji Magazyn zaczekaj, aż stan nowego konta magazynu zmieni się na Online , aby kontynuować pracę z następującym krokiem.

    Utworzone konto magazynu

    Utworzone konto magazynu

  4. Kliknij nazwę konta magazynu, a następnie kliknij link Pulpit nawigacyjny w górnej części strony. Strona Pulpit nawigacyjny zawiera informacje o stanie konta i punktach końcowych usługi, które mogą być używane w aplikacjach.

    Wyświetlanie pulpitu nawigacyjnego konta magazynu

    Wyświetlanie pulpitu nawigacyjnego konta magazynu

  5. Kliknij przycisk Zarządzaj kluczami dostępu na pasku nawigacyjnym.

    Przycisk Zarządzaj kluczami dostępu Przycisk Zarządzaj

    Przycisk Zarządzaj kluczami dostępu

  6. W oknie dialogowym Zarządzanie kluczami dostępu skopiuj nazwę konta magazynu i klucz dostępu podstawowego , ponieważ będą one potrzebne w poniższym ćwiczeniu. Następnie zamknij okno dialogowe.

    Okno dialogowe Zarządzanie kluczem dostępu Okno

    Okno dialogowe Zarządzanie kluczem dostępu

Zadanie 2 — przekazywanie elementu zawartości do Azure Blob Storage

W tym zadaniu użyjesz okna Eksploratora serwera z programu Visual Studio, aby nawiązać połączenie z kontem magazynu. Następnie utworzysz kontener obiektów blob i przekażesz plik z logo Geek Quiz do kontenera.

  1. Przejdź do wystąpienia programu Visual Studio przy użyciu rozwiązania GeekQuiz z poprzedniego ćwiczenia.

  2. Na pasku menu wybierz pozycję Widok , a następnie kliknij pozycję Eksplorator serwera.

  3. W Eksploratorze serwera kliknij prawym przyciskiem myszy węzeł platformy Azure i wybierz pozycję Połącz z platformą Azure.... Zaloguj się przy użyciu konta Microsoft skojarzonego z subskrypcją.

    Nawiązywanie połączenia z platformą Windows Azure

    Łączenie się z platformą Azure

  4. Rozwiń węzeł platformy Azure , kliknij prawym przyciskiem myszy pozycję Magazyn i wybierz pozycję Dołącz magazyn zewnętrzny....

  5. W oknie dialogowym Dodawanie nowego konta magazynu wprowadź nazwę konta i klucz konta uzyskany w poprzednim zadaniu i kliknij przycisk OK.

    Okno dialogowe Dodawanie nowego konta magazynu

    Okno dialogowe Dodawanie nowego konta magazynu

  6. Konto magazynu powinno pojawić się w węźle Magazyn . Rozwiń swoje konto magazynu, kliknij prawym przyciskiem myszy pozycję Obiekty blob i wybierz pozycję Utwórz kontener obiektów blob....

    Tworzenie kontenera obiektów blob — tworzenie

    Tworzenie kontenera obiektów blob

  7. W oknie dialogowym Tworzenie kontenera obiektów blob wprowadź nazwę kontenera obiektów blob i kliknij przycisk OK.

    Okno dialogowe Tworzenie kontenera obiektów blob okno

    Okno dialogowe Tworzenie kontenera obiektów blob

  8. Nowy kontener obiektów blob należy dodać do węzła Obiekty blob . Zmień uprawnienia dostępu w kontenerze, aby ustawić kontener jako publiczny. W tym celu kliknij prawym przyciskiem myszy kontener images i wybierz polecenie Właściwości.

    images container properties)

    Właściwości kontenera obrazów

  9. W oknie Właściwości ustaw publiczny dostęp do odczytu do kontenera.

    Zmiana właściwości publicznego dostępu do odczytu Zmiana

    Zmiana właściwości dostępu do odczytu publicznego

  10. Po wyświetleniu monitu, jeśli na pewno chcesz zmienić właściwość dostępu publicznego, kliknij przycisk Tak.

    Ostrzeżenie programu Microsoft Visual Studio dla programu Microsoft Visual Studio

    Ostrzeżenie programu Microsoft Visual Studio

  11. W Eksploratorze serwera kliknij prawym przyciskiem myszy kontener obiektów blob images i wybierz pozycję Wyświetl kontener obiektów blob.

    Wyświetlanie kontenera obiektów blob w widoku kontenera obiektów blob

    Wyświetlanie kontenera obiektów blob

  12. Kontener images powinien zostać otwarty w nowym oknie, a legenda bez wpisów nie powinna być wyświetlana. Kliknij ikonę przekazywania, aby przekazać plik do kontenera obiektów blob.

    Kontener obrazów bez wpisów Kontener

    Kontener obrazów bez wpisów

  13. W oknie dialogowym Przekazywanie obiektu blob przejdź do folderu Assets laboratorium. Wybierz plik logo-big.png i kliknij przycisk Otwórz.

  14. Zaczekaj na przekazanie pliku. Po zakończeniu przekazywania plik powinien być wymieniony w kontenerze images. Kliknij prawym przyciskiem myszy wpis pliku i wybierz pozycję Kopiuj adres URL.

    Adres URL kopiowania

    Kopiowanie adresu URL obiektu blob

  15. Otwórz program Internet Explorer i wklej adres URL. Poniższa ilustracja powinna być wyświetlana w przeglądarce.

     obrazlogo-big.png z usługi Windows Blob Storage

    obrazlogo-big.png z Azure Blob Storage

Zadanie 3 — aktualizowanie rozwiązania w celu korzystania z zawartości statycznej z Azure Blob Storage

W tym zadaniu skonfigurujesz rozwiązanie GeekQuiz, aby używać obrazu przekazanego do Azure Blob Storage (zamiast obrazu znajdującego się w aplikacji internetowej), dodając regułę ponownego zapisywania adresu URL ASP.NET w pliku web.config.

  1. W programie Visual Studio otwórz plik Web.config w projekcie GeekQuiz i znajdź <element system.webServer> .

  2. Dodaj następujący kod, aby dodać regułę ponownego zapisywania adresu URL, aktualizując symbol zastępczy przy użyciu nazwy konta magazynu.

    (Fragment kodu — WebSitesInProduction — Ex4 — UrlRewriteRule)

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="redirect-images" stopProcessing="true">
                    <match url="img/(.*)"/>
                    <action type="Redirect" url="http://[YOUR-STORAGE-ACCOUNT].blob.core.windows.net/images/{R:1}"></action>
                </rule>
            </rules>
        </rewrite>
    

    Uwaga

    Ponowne zapisywanie adresów URL to proces przechwytywania przychodzącego żądania sieci Web i przekierowywania żądania do innego zasobu. Reguły ponownego zapisywania adresów URL informują aparat ponownego zapisywania, gdy żądanie musi zostać przekierowane i gdzie należy je przekierować. Reguła ponownego zapisywania składa się z dwóch ciągów: wzorzec do wyszukania w żądanym adresie URL (zwykle przy użyciu wyrażeń regularnych) i ciąg do zastąpienia wzorca, jeśli zostanie znaleziony. Aby uzyskać więcej informacji, zobacz Ponowne zapisywanie adresów URL w ASP.NET.

  3. Naciśnij klawisze CTRL + S , aby zapisać zmiany.

  4. Otwórz nową konsolę powłoki Git Bash, aby wdrożyć zaktualizowaną aplikację w celu Azure App Service.

  5. Wykonaj następujące polecenia, aby wypchnąć zmiany na platformę Azure. Zaktualizuj symbol zastępczy [YOUR-APPLICATION-PATH] ścieżką do rozwiązania GeekQuiz . Zostanie wyświetlony monit o podanie hasła wdrożenia.

    cd "[YOUR-APPLICATION-PATH]"
    git add .
    git commit -m "Added URL rewrite rule in web.config file"
    git push azure master
    

    Wdrażanie aktualizacji na platformie Azure

    Wdrażanie aktualizacji na platformie Azure

Zadanie 4 — weryfikacja

W tym zadaniu użyjesz programu Internet Explorer do przeglądania aplikacji Geek Quiz i sprawdzisz, czy reguła ponownego zapisywania adresów URL dla obrazów działa i nastąpi przekierowanie do obrazu hostowanego na Azure Blob Storage.

  1. Otwórz program Internet Explorer i przejdź do aplikacji internetowej (np. http://<your-web-site>.azurewebsites.net). Zaloguj się przy użyciu wcześniej utworzonych poświadczeń.

    Wyświetlanie aplikacji internetowej Geek Quiz z obrazem Przedstawiający

    Wyświetlanie aplikacji internetowej Geek Quiz z obrazem

  2. Naciśnij klawisz F12, aby uruchomić narzędzia programistyczne, wybierz kartę Sieć i rozpocznij nagrywanie.

    Zrzut ekranu przedstawia grecką aplikację internetową Quiz z wskaźnikiem, wybierając pozycję Włącz przechwytywanie ruchu sieciowego w ramach weryfikacji procedury skalowania.

    Uruchamianie nagrywania sieci

  3. Naciśnij klawisze CTRL + F5 , aby odświeżyć stronę internetową.

  4. Po zakończeniu ładowania strony powinno zostać wyświetlone żądanie HTTP dla adresu URL /img/logo-big.png z wynikiem HTTP 301 (przekierowanie) i innym żądaniem http://[YOUR-STORAGE-ACCOUNT].blob.core.windows.net/images/logo-big.png adresu URL z wynikiem HTTP 200 .

    Weryfikowanie przekierowania adresu URL

    Weryfikowanie przekierowania adresu URL

Ćwiczenie 5. Używanie autoskalu dla Web Apps

Uwaga

To ćwiczenie jest opcjonalne, ponieważ wymaga obsługi funkcji Web Load & Performance Testing, która jest dostępna tylko dla wersji Visual Studio 2013 Ultimate Edition. Aby uzyskać więcej informacji na temat konkretnych funkcji Visual Studio 2013, porównaj wersje tutaj.

Azure App Service Web Apps udostępnia funkcję autoskalowania dla aplikacji internetowych działających w trybie standardowym. Automatyczne skalowanie umożliwia platformie Azure automatyczne skalowanie liczby wystąpień aplikacji internetowej w zależności od obciążenia. Po włączeniu automatycznego skalowania platforma Azure sprawdza procesor aplikacji internetowej co pięć minut i dodaje wystąpienia zgodnie z potrzebami w tym momencie w czasie. Jeśli użycie procesora CPU jest niskie, platforma Azure usunie wystąpienia co dwie godziny, aby upewnić się, że wydajność aplikacji internetowej nie jest obniżona.

W tym ćwiczeniu wykonasz kroki wymagane do skonfigurowania funkcji autoskalowania dla aplikacji internetowej Geek Quiz . Zweryfikujesz tę funkcję, uruchamiając test obciążeniowy programu Visual Studio w celu wygenerowania wystarczającego obciążenia procesora CPU w aplikacji w celu wyzwolenia uaktualnienia wystąpienia.

Zadanie 1 — konfigurowanie autoskalowania na podstawie metryki procesora CPU

W tym zadaniu użyjesz witryny Azure Management Portal, aby włączyć funkcję autoskalowania dla aplikacji internetowej utworzonej w ćwiczeniu 2.

  1. W witrynie Azure Management Portal wybierz pozycję Witryny internetowe i kliknij aplikację internetową utworzoną w ćwiczeniu 2.

  2. Przejdź do strony Skalowanie . W sekcji Pojemność wybierz pozycję Procesor CPU dla konfiguracji Skalowanie według metryk .

    Uwaga

    Podczas skalowania według procesora CPU platforma Azure dynamicznie dostosowuje liczbę wystąpień używanych przez aplikację, jeśli użycie procesora CPU ulegnie zmianie.

    Wybieranie do skalowania według procesora CPU

    Wybieranie do skalowania według procesora CPU

  3. Zmień konfigurację docelowego procesora CPU na 20-40 procent.

    Uwaga

    Ten zakres reprezentuje średnie użycie procesora CPU dla aplikacji internetowej. Platforma Azure doda lub usunie wystąpienia, aby zachować aplikację internetową w tym zakresie. Minimalna i maksymalna liczba wystąpień używanych do skalowania jest określona w konfiguracji Liczba wystąpień . Platforma Azure nigdy nie przekroczy tego limitu ani nie przekroczy tego limitu.

    Domyślne wartości docelowego procesora CPU są modyfikowane tylko na potrzeby tego laboratorium. Konfigurując zakres procesora CPU z małymi wartościami, zwiększasz prawdopodobieństwo wyzwolenia autoskalowania, gdy w aplikacji zostanie umieszczone umiarkowane obciążenie.

    Zmiana docelowego procesora CPU na wartość z zakresu od 20 do 40 procent

    Zmiana docelowego procesora CPU na wartość od 20 do 40 procent

  4. Kliknij przycisk Zapisz na pasku poleceń, aby zapisać zmiany.

Zadanie 2 — testowanie obciążenia za pomocą programu Visual Studio

Po skonfigurowaniu automatycznego skalowania utworzysz projekt web performance and Load Test w programie Visual Studio w celu wygenerowania obciążenia procesora CPU w aplikacji internetowej.

  1. Otwórz Visual Studio Ultimate 2013 i wybierz pozycję Plik | Nowy | Projektu... aby rozpocząć nowe rozwiązanie.

    Tworzenie nowego projektu Tworzenie

    Tworzenie nowego projektu

  2. W oknie dialogowym Nowy projekt wybierz pozycję Projekt testu wydajności i obciążenia sieci Web w obszarze Visual C# | Karta Testuj. Upewnij się, że wybrano .NET Framework 4.5, nadaj projektowi nazwę WebAndLoadTestProject, wybierz lokalizację i kliknij przycisk OK.

    Tworzenie nowego projektu internetowego i testu obciążeniowego Tworzenie

    Tworzenie nowego projektu internetowego i testu obciążeniowego

  3. W narzędziu WebTest1.webtest kliknij prawym przyciskiem myszy węzeł WebTest1 i kliknij pozycję Dodaj żądanie.

    Dodawanie żądania do webTest1

    Zmienianie właściwości Adresu URL

  4. W oknie WebTest1.webtest kliknij prawym przyciskiem myszy pozycję WebTest1 i kliknij polecenie Dodaj pętlę....

    Dodawanie pętli do elementu WebTest1

    Dodawanie pętli do platformy WebTest1

  5. W oknie dialogowym Dodawanie reguły warunkowej i elementów do pętli wybierz regułę Dla pętli i zmodyfikuj następujące właściwości.

    1. Wartość zakończenia: 1000

    2. Nazwa parametru kontekstu: Sterująca

    3. Wartość przyrostowa: 1

      Wybieranie reguły pętli for i aktualizowanie właściwości

      Wybieranie reguły pętli for i aktualizowanie właściwości

  6. W sekcji Elementy w pętli wybierz utworzone wcześniej żądanie jako pierwszy i ostatni element pętli. Kliknij przycisk OK, aby kontynuować.

    Wybieranie pierwszych i ostatnich elementów pętli

    Wybieranie pierwszych i ostatnich elementów dla pętli

  7. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt WebAndLoadTestProject, rozwiń menu Dodaj i wybierz pozycję Test obciążeniowy....

    Dodawanie testu obciążeniowego do projektu WebAndLoadTestProject

    Dodawanie testu obciążeniowego do projektu WebAndLoadTestProject

  8. W oknie dialogowym Kreator nowego testu obciążeniowego kliknij przycisk Dalej.

    Kreator nowego testu obciążeniowego —

    Kreator nowego testu obciążeniowego

  9. Na stronie Scenariusz wybierz pozycję Nie używaj czasów myślenia i kliknij przycisk Dalej.

    Wybieranie, aby nie używać czasów myślenia

    Wybieranie, aby nie używać czasów myślenia

  10. Na stronie Wzorzec obciążenia upewnij się, że wybrano opcję Stałe obciążenie . Zmień ustawienie Liczba użytkowników na 250 użytkowników, a następnie kliknij przycisk Dalej.

    Zmiana liczby użytkowników na 250

    Zmiana liczby użytkowników na 250

  11. Na stronie Test Mix Model wybierz pozycję Na podstawie kolejności testu sekwencyjnego , a następnie kliknij przycisk Dalej.

    Wybieranie modelu mieszanki testów

    Wybieranie modelu mieszanki testów

  12. Na stronie Test Mix Model kliknij przycisk Dodaj... aby dodać test do mieszanki.

    Dodawanie testu do mieszanki testowej

    Dodawanie testu do mieszanki testowej

  13. W oknie dialogowym Dodawanie testów kliknij dwukrotnie pozycję WebTest1 , aby dodać test do listy Wybrane testy . Kliknij przycisk OK, aby kontynuować.

    Dodawanie testu WebTest1

    Dodawanie testu WebTest1

  14. Ponownie na stronie Test Mix kliknij przycisk Dalej.

    Kończenie strony Test Mix

    Kończenie strony Test Mix

  15. Na stronie Połączenie sieciowe kliknij przycisk Dalej.

    Kliknięcie przycisku Dalej na stronie Połączenie sieciowe Kliknij

    Kliknięcie przycisku Dalej na stronie Połączenie sieciowe

  16. Na stronie Kombinacja przeglądarki wybierz pozycję Internet Explorer 10.0 jako typ przeglądarki, a następnie kliknij przycisk Dalej.

    Wybieranie typu przeglądarki

    Wybieranie typu przeglądarki

  17. Na stronie Zestawy liczników kliknij przycisk Dalej.

    Kliknięcie przycisku Dalej na stronie Zestawy liczników

    Kliknięcie przycisku Dalej na stronie Zestawy liczników

  18. Na stronie Ustawienia uruchamiania ustaw czas trwania testu obciążeniowego na 5 minut , a następnie kliknij przycisk Zakończ.

    Ustawianie czasu trwania testu obciążeniowego na 5 minut

    Ustawianie czasu trwania testu obciążeniowego na 5 minut

  19. W Eksplorator rozwiązań kliknij dwukrotnie plik Local.settings, aby zapoznać się z ustawieniami testu. Domyślnie program Visual Studio używa komputera lokalnego do uruchamiania testów.

    Uwaga

    Alternatywnie możesz skonfigurować projekt testowy tak, aby uruchamiał testy obciążeniowe w chmurze przy użyciu Azure Test Plans. Azure Test Plans zapewnia opartą na chmurze usługę testowania obciążenia, która symuluje bardziej realistyczne obciążenie, unikając ograniczeń środowiska lokalnego, takich jak pojemność procesora CPU, dostępna pamięć i przepustowość sieci. Aby uzyskać więcej informacji na temat używania Azure Test Plans do uruchamiania testów obciążeniowych, zobacz Load testing scenarios (Scenariusze testowania obciążenia).

    Ustawienia testu

Zadanie 3 — weryfikacja automatycznego skalowania

Teraz wykonasz test obciążeniowy utworzony w poprzednim zadaniu i zobaczysz, jak działa aplikacja internetowa pod obciążeniem.

  1. W Eksplorator rozwiązań kliknij dwukrotnie plik LoadTest1.loadtest, aby otworzyć test obciążeniowy.

    Otwieranie pliku LoadTest1.loadtest otwierającego

    Otwieranie pliku LoadTest1.loadtest

  2. W oknie LoadTest1.loadtest kliknij pierwszy przycisk w przyborniku, aby uruchomić test obciążeniowy.

    Uruchamianie testu obciążeniowego Uruchamianie testu

    Uruchamianie testu obciążeniowego

  3. Poczekaj na zakończenie testu obciążeniowego.

    Uwaga

    Test obciążeniowy symuluje wielu użytkowników, którzy jednocześnie wysyłają żądania do aplikacji internetowej. Po uruchomieniu testu można monitorować dostępne liczniki w celu wykrywania błędów, ostrzeżeń lub innych informacji związanych z przebiegiem testu obciążeniowego.

    Test obciążeniowy z

    Uruchomiony test obciążeniowy

  4. Po zakończeniu testu wróć do portalu zarządzania i przejdź do strony Skalowanie aplikacji internetowej. W sekcji pojemność powinna zostać wyświetlona na wykresie, że nowe wystąpienie zostało wdrożone automatycznie.

    Nowe wystąpienie zostało wdrożone automatycznie

    Nowe wystąpienie zostało wdrożone automatycznie

    Uwaga

    Może upłynąć kilka minut, aby zmiany pojawiały się na wykresie (okresowo naciśnij klawisze CTRL + F5 , aby odświeżyć stronę). Jeśli nie widzisz żadnych zmian, możesz spróbować wykonać następujące czynności:

    • Zwiększ czas trwania testu obciążeniowego (np. do 10 minut)
    • Zmniejsz maksymalne i minimalne wartości zakresu procesora DOCELOWEGO w konfiguracji autoskalowania aplikacji internetowej
    • Uruchom test obciążeniowy w chmurze przy użyciu Azure Test Plans. Więcej informacji można znaleźć tutaj

Podsumowanie

W tym praktycznym laboratorium przedstawiono sposób konfigurowania i wdrażania aplikacji w produkcyjnych aplikacjach internetowych na platformie Azure. Rozpoczęto od wykrywania i aktualizowania baz danych przy użyciu migracje Code First platformy Entity Framework, a następnie ciągłego wdrażania nowych wersji witryny przy użyciu narzędzia Git i wycofywania do najnowszej stabilnej wersji witryny. Ponadto przedstawiono sposób skalowania aplikacji przy użyciu usługi Storage w celu przeniesienia zawartości statycznej do kontenera obiektów blob.