Konteneryzacja aplikacji platformy ASP.NET i migracja do usługi Azure App Service

W tym artykule dowiesz się, jak konteneryzować aplikacje ASP.NET i migrować je do Azure App Service przy użyciu narzędzia konteneryzacji aplikacji usługi Azure Migrate. Proces konteneryzacji nie wymaga dostępu do bazy kodu i zapewnia łatwy sposób konteneryzacji istniejących aplikacji. Narzędzie działa przy użyciu stanu uruchamiania aplikacji na serwerze w celu określenia składników aplikacji. Następnie ułatwia spakuj je w obrazie kontenera. Następnie można wdrożyć konteneryzowaną aplikację na Azure App Service.

Narzędzie do konteneryzacji aplikacji usługi Azure Migrate obecnie obsługuje:

Narzędzie konteneryzacji aplikacji ułatwia:

  • Odnajdywanie składników aplikacji. Narzędzie zdalnie łączy się z serwerami aplikacji, które uruchamiają aplikację ASP.NET i odnajduje składniki aplikacji. Tworzy plik Dockerfile, którego można użyć do utworzenia obrazu kontenera dla aplikacji.
  • Skompiluj obraz kontenera. Możesz sprawdzić i dodatkowo dostosować plik Dockerfile na podstawie wymagań aplikacji i użyć go do skompilowania obrazu kontenera aplikacji. Obraz kontenera aplikacji jest wypychany do określonego rejestru kontenerów platformy Azure.
  • Wdróż w Azure App Service. Następnie narzędzie generuje pliki wdrożenia potrzebne do wdrożenia konteneryzowanej aplikacji w celu Azure App Service.

Uwaga

Narzędzie konteneryzacji aplikacji usługi Azure Migrate ułatwia odnajdywanie określonych typów aplikacji (ASP.NET i aplikacji internetowych Java w usłudze Apache Tomcat) oraz ich składników na serwerze aplikacji. Aby odnajdywać serwery i spis aplikacji, ról i funkcji działających na komputerach lokalnych, użyj narzędzia Azure Migrate Discovery i oceny.

Nie wszystkie aplikacje będą korzystać z prostego przejścia do kontenerów bez znaczącej zmiany architektury. Jednak niektóre zalety przenoszenia istniejących aplikacji do kontenerów bez ponownego zapisywania obejmują:

  • Ulepszone wykorzystanie infrastruktury. W przypadku korzystania z kontenerów wiele aplikacji może współużytkować zasoby i być hostowane w tej samej infrastrukturze. Może to pomóc w konsolidacji infrastruktury i poprawieniu wykorzystania.
  • Uproszczone zarządzanie. Hostując aplikacje na nowoczesnych platformach zarządzanych, takich jak AKS i App Service, możesz uprościć praktyki zarządzania. Można to uprościć, przechodząc na emeryturę lub zmniejszając procesy konserwacji infrastruktury i zarządzania, które tradycyjnie były wykonywane przy użyciu infrastruktury należącej do użytkownika.
  • Przenośność aplikacji. Dzięki zwiększonej wdrożeniu i standaryzacji formatów i platform specyfikacji kontenera przenośność aplikacji nie jest już problemem.
  • Wdrażanie nowoczesnego zarządzania przy użyciu metodyki DevOps. Używanie kontenerów ułatwia wdrażanie i standaryzację nowoczesnych rozwiązań dotyczących zarządzania i zabezpieczeń oraz przechodzenia do metodyki DevOps.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Konfigurowanie konta platformy Azure.
  • Zainstaluj narzędzie konteneryzacji aplikacji usługi Azure Migrate.
  • Odkryj aplikację ASP.NET.
  • Skompiluj obraz kontenera.
  • Wdróż konteneryzowaną aplikację na App Service.

Uwaga

Samouczki zawierają najprostszą ścieżkę wdrażania dla scenariusza, dzięki czemu można szybko skonfigurować weryfikację koncepcji. W samouczkach są używane opcje domyślne, jeśli to możliwe, i nie są wyświetlane wszystkie ustawienia i ścieżki.

Wymagania wstępne

Przed rozpoczęciem tego samouczka należy wykonać następujące elementy:

Wymaganie Szczegóły
Identyfikowanie maszyny, na której ma zostać zainstalowane narzędzie Potrzebujesz maszyny z systemem Windows, na której można zainstalować i uruchomić narzędzie konteneryzacji aplikacji usługi Azure Migrate. Komputer z systemem Windows może uruchomić serwer (Windows Server 2016 lub nowszy) lub system operacyjny klienta (Windows 10). (Narzędzie może działać na pulpicie).

Maszyna z systemem Windows z uruchomionym narzędziem powinna mieć łączność sieciową z serwerami lub maszynami wirtualnymi hostujących aplikacje ASP.NET, które będą konteneryzować.

Upewnij się, że 6 GB jest dostępne na maszynie z systemem Windows z uruchomionym narzędziem konteneryzacji aplikacji usługi Azure Migrate. To miejsce służy do przechowywania artefaktów aplikacji.

Komputer z systemem Windows powinien mieć dostęp do Internetu, bezpośrednio lub za pośrednictwem serwera proxy.

Jeśli narzędzie Microsoft web deployment nie jest jeszcze zainstalowane na maszynie z uruchomionym narzędziem konteneryzacji aplikacji i serwerem aplikacji, zainstaluj je. Możesz pobrać narzędzie.
Serwery aplikacji Włącz zdalne komunikacja zdalna programu PowerShell na serwerach aplikacji: zaloguj się do serwera aplikacji i postępuj zgodnie z tymi instrukcjami, aby włączyć zdalne komunikacja zdalna programu PowerShell.

Jeśli na serwerze aplikacji jest uruchomiony system Windows Server 2008 R2, upewnij się, że program PowerShell 5.1 jest zainstalowany na serwerze aplikacji. Postępuj zgodnie z instrukcjami dostępnymi tutaj, aby pobrać i zainstalować program PowerShell 5.1 na serwerze aplikacji.

Jeśli narzędzie Microsoft web deployment nie jest jeszcze zainstalowane na maszynie z uruchomionym narzędziem konteneryzacji aplikacji i serwerem aplikacji, zainstaluj je. Możesz pobrać narzędzie.
aplikacja ASP.NET Narzędzie obsługuje obecnie:
  • ASP.NET aplikacji korzystających z .NET Framework 3.5 lub nowszej.
  • Serwery aplikacji z systemem Windows Server 2008 R2 lub nowszym. (Serwery aplikacji powinny mieć uruchomiony program PowerShell 5.1).
  • Aplikacje uruchamiane w usługach Internet Information Services 7.5 lub nowszych.


Narzędzie obecnie nie obsługuje następujących funkcji:
  • Aplikacje wymagające uwierzytelniania systemu Windows. (Usługa AKS nie obsługuje obecnie konta gMSA).
  • Aplikacje zależne od innych usług systemu Windows hostowanych poza usługami Internet Information Services.

Przygotowywanie konta użytkownika platformy Azure

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto .

Po skonfigurowaniu subskrypcji potrzebne będzie konto użytkownika platformy Azure z:

  • Uprawnienia właściciela w subskrypcji platformy Azure.
  • Uprawnienia do rejestrowania aplikacji usługi Azure Active Directory.

Jeśli bezpłatne konto platformy Azure zostało właśnie utworzone, jesteś właścicielem subskrypcji. Jeśli nie jesteś właścicielem subskrypcji, skontaktuj się z właścicielem, aby przypisać uprawnienia w następujący sposób:

  1. W Azure Portal wyszukaj ciąg "subskrypcje". W obszarze Usługi wybierz pozycję Subskrypcje:

    Zrzut ekranu przedstawiający pole wyszukiwania pod kątem wyszukiwania subskrypcji platformy Azure.

  2. Na stronie Subskrypcje wybierz subskrypcję, w której chcesz utworzyć projekt usługi Azure Migrate.

  3. W subskrypcji w okienku po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami).

  4. Na karcie Sprawdzanie dostępu wyszukaj odpowiednie konto użytkownika.

  5. W obszarze Dodaj przypisanie roli wybierz pozycję Dodaj:

    Zrzut ekranu przedstawiający wyszukiwanie konta użytkownika w celu sprawdzenia dostępu i przypisania roli.

  6. Na stronie Dodawanie przypisania roli wybierz rolę Właściciel , a następnie wybierz konto (azmigrateuser w naszym przykładzie). Następnie wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający stronę Dodawanie przypisania roli.

    Konto platformy Azure wymaga również uprawnień do rejestrowania aplikacji usługi Azure Active Directory.

  7. W Azure Portal przejdź do pozycjiUstawienia użytkownikaużytkowników>usługi Azure Active Directory>.

  8. W obszarze Ustawienia użytkownika sprawdź, czy użytkownicy Azure AD mogą rejestrować aplikacje. (Ta opcja jest domyślnie ustawiona na Wartość Tak ).

    Zrzut ekranu przedstawiający stronę Ustawienia użytkownika.

  9. Jeśli opcja Rejestracje aplikacji jest ustawiona na Nie, poproś administratora dzierżawy/administratora globalnego o przypisanie wymaganych uprawnień. Alternatywnie administrator dzierżawy/administratora globalnego może przypisać rolę dewelopera aplikacji do konta, aby umożliwić rejestrację aplikacji usługi Azure Active Directory. Aby uzyskać więcej informacji, zobacz Przypisywanie ról do użytkowników.

Pobieranie i instalowanie narzędzia konteneryzacji aplikacji usługi Azure Migrate

  1. Pobierz instalator konteneryzacji aplikacji usługi Azure Migrate na maszynie z systemem Windows.

  2. Otwórz program PowerShell w trybie administratora i zmień katalog programu PowerShell na folder zawierający instalator.

  3. Uruchom skrypt instalacji przy użyciu tego polecenia:

    .\AppContainerizationInstaller.ps1
    

Otwieranie narzędzia konteneryzacji aplikacji

  1. Otwórz przeglądarkę na dowolnej maszynie, która może nawiązać połączenie z maszyną z systemem Windows, na którym jest uruchomione narzędzie Konteneryzacja aplikacji. Przejdź do adresu URL narzędzia: https:// nazwa maszyny lub adres IP: 44369.

    Alternatywnie możesz otworzyć aplikację z poziomu pulpitu przy użyciu skrótu do aplikacji.

  2. Jeśli zostanie wyświetlone ostrzeżenie informujące, że połączenie nie jest prywatne, wybierz pozycję Zaawansowane i przejdź do witryny internetowej. To ostrzeżenie jest wyświetlane, ponieważ interfejs internetowy używa certyfikatu TLS/SSL z podpisem własnym.

  3. Na ekranie logowania zaloguj się przy użyciu konta administratora lokalnego komputera.

  4. Wybierz ASP.NET aplikacje internetowe jako typ aplikacji, którą chcesz konteneryzować.

  5. Na liście Docelowa usługa platformy Azure wybierz pozycję Kontenery w Azure App Service:

    Zrzut ekranu przedstawiający typ aplikacji i listy docelowe.

Spełnij wymagania wstępne dotyczące narzędzi

  1. Zaakceptuj postanowienia licencyjne i przeczytaj informacje innych firm.
  2. W narzędziu aplikacja internetowa Skonfiguruj wymagania wstępne wykonaj następujące kroki:
    • Łączność. Narzędzie sprawdza, czy komputer z systemem Windows ma dostęp do Internetu. Jeśli maszyna używa serwera proxy:

      1. Wybierz pozycję Skonfiguruj serwer proxy , aby określić adres serwera proxy (w postaci adres IP lub nazwa FQDN) i port nasłuchiwania.

      2. Jeśli serwer proxy wymaga uwierzytelnienia, wprowadź poświadczenia.

      3. Jeśli dodano szczegóły serwera proxy lub wyłączono serwer proxy lub uwierzytelnianie, wybierz pozycję Zapisz , aby ponownie wyzwolić sprawdzanie łączności.

      Obsługiwane są tylko serwery proxy HTTP.

    • Instalowanie aktualizacji. Narzędzie automatycznie sprawdza dostępność najnowszych aktualizacji i instaluje je. Możesz również ręcznie zainstalować najnowszą wersję narzędzia.

    • Zainstaluj narzędzie Microsoft Web Deploy. Narzędzie sprawdza, czy narzędzie Microsoft Web Deployment jest zainstalowane na maszynie z systemem Windows z uruchomionym narzędziem konteneryzacji aplikacji usługi Azure Migrate.

    • Włącz zdalną obsługę zdalną programu PowerShell. Narzędzie wyświetla monit o upewnienie się, że komunikacja zdalna programu PowerShell jest włączona na serwerach aplikacji z uruchomionymi aplikacjami ASP.NET, które chcesz konteneryzować.

Logowanie do platformy Azure

  1. Wybierz pozycję Zaloguj się , aby zalogować się do konta platformy Azure.

    Do uwierzytelniania za pomocą platformy Azure potrzebny jest kod urządzenia. Wybranie pozycji Zaloguj powinno spowodować otwarcie okna zawierającego kod urządzenia. Jeśli okno nie zostanie wyświetlone, upewnij się, że w przeglądarce wyłączono blokowanie wyskakujących okienek.

  2. Wybierz pozycję Kopiuj kod i Zaloguj się, aby skopiować kod urządzenia i otworzyć monit logowania platformy Azure na nowej karcie przeglądarki:

    Zrzut ekranu przedstawiający okno Kod urządzenia dla logowania do platformy Azure.

  3. Na nowej karcie wklej kod urządzenia i ukończ logowanie przy użyciu poświadczeń konta platformy Azure. Po zalogowaniu możesz zamknąć kartę przeglądarki i wrócić do interfejsu internetowego narzędzia konteneryzacji aplikacji.

  4. Wybierz dzierżawę platformy Azure , której chcesz użyć.

  5. Określ subskrypcję platformy Azure , której chcesz użyć.

Odnajdywanie aplikacji ASP.NET

Narzędzie Konteneryzacja aplikacji łączy się zdalnie z serwerami aplikacji przy użyciu podanych poświadczeń i próbuje odnaleźć ASP.NET aplikacji hostowanych na serwerach aplikacji.

  1. Określ adres IP serwera/nazwę FQDN oraz poświadczenia serwera z uruchomioną aplikacją ASP.NET, która powinna być używana do zdalnego łączenia się z serwerem na potrzeby odnajdywania aplikacji.

    • Należy podać poświadczenia administratora lokalnego (Windows) na serwerze aplikacji.
    • W przypadku kont domeny (użytkownik musi być administratorem na serwerze aplikacji) przedrostek nazwy użytkownika o nazwie domeny w następującym formacie: <domena\nazwa> użytkownika.
    • W przypadku kont lokalnych (użytkownik musi być administratorem na serwerze aplikacji) prefiks nazwy użytkownika o nazwie hosta w następującym formacie: <nazwa hosta\nazwa> użytkownika.
    • Odnajdywanie aplikacji można uruchamiać dla nawet pięciu serwerów jednocześnie.
  2. Wybierz pozycję Weryfikuj , aby sprawdzić, czy serwer aplikacji jest osiągalny na maszynie z uruchomionym narzędziem i czy poświadczenia są prawidłowe. Po pomyślnej weryfikacji w kolumnie Stan zostanie wyświetlony stan Mapowany:

    Zrzut ekranu przedstawiający stan serwera jako zamapowany.

  3. Wybierz pozycję Kontynuuj , aby rozpocząć odnajdywanie aplikacji na wybranych serwerach aplikacji.

  4. Po zakończeniu odnajdywania aplikacji wybierz aplikacje, które chcesz konteneryzować:

    Zrzut ekranu przedstawiający odnalezioną aplikację ASP.NET.

  5. Określ nazwę kontenera docelowego dla każdej wybranej aplikacji. Określ nazwę kontenera jako <name:tag>, gdzie tag jest używany dla obrazu kontenera. Można na przykład określić docelową nazwę kontenera jako appname:v1.

Parametryzowanie konfiguracji aplikacji

Parametryzacja konfiguracji udostępnia ją jako parametr czasu wdrożenia. Parametryzacja umożliwia skonfigurowanie ustawienia podczas wdrażania aplikacji, w przeciwieństwie do tego, że jest ona zakodowana na określonej wartości w obrazie kontenera. Na przykład ta opcja jest przydatna w przypadku parametrów, takich jak parametry połączenia bazy danych.

  1. Wybierz konfiguracje aplikacji , aby przejrzeć wykryte konfiguracje.

  2. Wybierz parametry, które chcesz sparametryzować, a następnie wybierz pozycję Zastosuj:

    Zrzut ekranu przedstawiający listę wykrytych konfiguracji.

Externalize file system dependencies (Zewnętrzne zależności systemu plików)

Możesz dodać inne foldery używane przez aplikację. Określ, czy powinny one być częścią obrazu kontenera, czy powinny być zewnętrzne w magazynie trwałym za pośrednictwem udziału plików platformy Azure. Korzystanie z zewnętrznego magazynu trwałego doskonale sprawdza się w przypadku aplikacji stanowych, które przechowują stan poza kontenerem lub mają inną zawartość statyczną przechowywaną w systemie plików.

  1. Wybierz pozycję Edytuj w obszarze Foldery aplikacji , aby przejrzeć wykryte foldery aplikacji. Te foldery zostały zidentyfikowane jako obowiązkowe artefakty wymagane przez aplikację. Zostaną one skopiowane do obrazu kontenera.

  2. Wybierz pozycję Dodaj folder i określ ścieżki folderów, które chcesz dodać.

  3. Aby dodać wiele folderów do tego samego woluminu, oddziel wartości przecinkami.

  4. Wybierz pozycję Udział plików platformy Azure jako opcję magazynu, jeśli chcesz, aby foldery przechowywane poza kontenerem w magazynie trwałym.

  5. Po przejrzeniu folderów aplikacji wybierz pozycję Zapisz :

    Zrzut ekranu przedstawiający okno Edytowanie folderów aplikacji.

  6. Wybierz pozycję Kontynuuj , aby przejść do fazy kompilacji obrazu kontenera.

Tworzenie obrazu kontenera

  1. Z listy rozwijanej wybierz rejestr kontenerów platformy Azure , który będzie używany do kompilowania i przechowywania obrazów kontenerów dla aplikacji. Możesz użyć istniejącego rejestru kontenerów platformy Azure lub utworzyć nowy, wybierając pozycję Utwórz nowy rejestr:

    Zrzut ekranu przedstawiający okno Kompilowanie obrazów.

    Uwaga

    Wyświetlane są tylko rejestry kontenerów platformy Azure z włączonym kontem użytkownika administratora. Konto użytkownika administratora jest obecnie wymagane do wdrożenia obrazu z rejestru kontenerów platformy Azure do Azure App Service. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie za pomocą rejestru kontenerów platformy Azure.

  2. Pliki Dockerfile potrzebne do skompilowania obrazów kontenerów dla każdej wybranej aplikacji są generowane na początku kroku kompilacji. Wybierz pozycję Przejrzyj , aby przejrzeć plik Dockerfile. Możesz również dodać wszelkie niezbędne dostosowania do pliku Dockerfile w kroku przeglądu i zapisać zmiany przed rozpoczęciem procesu kompilacji.

  3. Wybierz aplikacje, dla których chcesz skompilować obrazy, a następnie wybierz pozycję Kompiluj. Wybranie pozycji Kompilacja spowoduje uruchomienie kompilacji obrazu kontenera dla każdej aplikacji. Narzędzie monitoruje stan kompilacji i umożliwia przejście do następnego kroku po zakończeniu kompilacji.

  4. Postęp kompilacji można monitorować, wybierając pozycję Build in Progress (Kompilacja w toku ) w kolumnie status (Stan). Link stanie się aktywny kilka minut po wyzwoleniu procesu kompilacji.

  5. Po zakończeniu kompilacji wybierz pozycję Kontynuuj , aby określić ustawienia wdrożenia:

    Zrzut ekranu przedstawiający link Przegląd, stan obrazu kontenera oraz przyciski Build and Continue (Kompiluj i kontynuuj).

Wdrażanie aplikacji konteneryzowanej na Azure App Service

Po utworzeniu obrazu kontenera następnym krokiem jest wdrożenie aplikacji jako kontenera na Azure App Service.

  1. Wybierz plan Azure App Service, którego aplikacja powinna używać.

    Jeśli nie masz planu App Service lub chcesz utworzyć nowy plan App Service do użycia, możesz go utworzyć, wybierając pozycję Utwórz nowy plan App Service.

  2. Po wybraniu planu App Service wybierz pozycję Kontynuuj.

  3. W przypadku sparametryzowanych konfiguracji aplikacji określ magazyn wpisów tajnych do użycia dla aplikacji. Możesz wybrać ustawienia aplikacji azure Key Vault lub App Service, aby zarządzać wpisami tajnymi aplikacji. Aby uzyskać więcej informacji, zobacz Konfigurowanie parametrów połączenia.

    • Jeśli wybrano App Service ustawienia aplikacji do zarządzania wpisami tajnymi, wybierz pozycję Kontynuuj.
    • Jeśli chcesz użyć magazynu kluczy platformy Azure do zarządzania wpisami tajnymi aplikacji, określ magazyn kluczy, którego chcesz użyć.
      • Jeśli nie masz magazynu kluczy platformy Azure lub chcesz utworzyć nowy magazyn kluczy, możesz go utworzyć, wybierając pozycję Utwórz nową usługę Azure Key Vault.
      • Narzędzie automatycznie przypisze uprawnienia niezbędne do zarządzania wpisami tajnymi za pośrednictwem magazynu kluczy.
  4. Jeśli dodano więcej folderów i wybrano opcję Udziału plików platformy Azure dla magazynu trwałego, określ udział plików platformy Azure, który ma być używany przez narzędzie Konteneryzacja aplikacji podczas wdrażania. Narzędzie skopiuje foldery aplikacji skonfigurowane pod kątem Azure Files i zainstaluje je w kontenerze aplikacji podczas wdrażania. 

    Jeśli nie masz udziału plików platformy Azure lub chcesz utworzyć nowy udział plików platformy Azure, możesz go utworzyć, wybierając pozycję Utwórz nowe konto magazynu i udział plików.

  5. Teraz należy określić konfigurację wdrożenia dla aplikacji. Wybierz pozycję Konfiguruj , aby dostosować wdrożenie aplikacji. W kroku konfigurowania można podać następujące dostosowania:

    • Nazwa. Określ unikatową nazwę aplikacji. Ta nazwa będzie używana do generowania adresu URL aplikacji. Będzie ona również używana jako prefiks dla innych zasobów utworzonych w ramach wdrożenia.
    • Konfiguracja aplikacji. W przypadku wszystkich konfiguracji aplikacji, które są sparametryzowane, podaj wartości do użycia dla bieżącego wdrożenia.
    • Konfiguracja magazynu. Przejrzyj informacje o folderach aplikacji skonfigurowanych dla magazynu trwałego.

    Zrzut ekranu przedstawiający konfigurację wdrożenia.

  6. Po zapisaniu konfiguracji wdrożenia dla aplikacji narzędzie wygeneruje kod YAML wdrożenia kubernetes dla aplikacji.

    • Wybierz pozycję Przejrzyj , aby przejrzeć konfigurację wdrożenia aplikacji.

    • Wybierz aplikacje, które chcesz wdrożyć.

    • Wybierz pozycję Wdróż , aby rozpocząć wdrażanie wybranych aplikacji.

      Zrzut ekranu przedstawiający przycisk Wdróż.

    • Po wdrożeniu aplikacji możesz wybrać kolumnę Stan wdrożenia , aby śledzić zasoby wdrożone dla aplikacji.

Rozwiązywanie problemów

Aby rozwiązać problemy z narzędziem Konteneryzacja aplikacji, możesz przyjrzeć się plikom dziennika na komputerze z systemem Windows, na którym jest uruchomione narzędzie. Pliki dziennika narzędzia znajdują się w folderze C:\ProgramData\Microsoft Kontenerization\Logs aplikacji usługi Azure Migrate.

Następne kroki