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 usługi aplikacja systemu Azure 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 konteneryzowania istniejących aplikacji. Narzędzie działa przy użyciu stanu działania aplikacji na serwerze w celu określenia składników aplikacji. Następnie ułatwia pakowanie ich w obrazie kontenera. Następnie można wdrożyć konteneryzowaną aplikację w usłudze aplikacja systemu Azure 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, na których działa aplikacja 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.
  • Wdrażanie w usłudze aplikacja systemu Azure. Następnie narzędzie generuje pliki wdrożenia potrzebne do wdrożenia konteneryzowanej aplikacji w usłudze aplikacja systemu Azure 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 odnaleźć serwery i spis aplikacji, ról i funkcji działających na komputerach lokalnych, użyj narzędzia Do odnajdywania i oceny usługi Azure Migrate.

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

  • 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 poprawienia 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. To uproszczenie można osiągnąć, przechodząc na emeryturę lub zmniejszając procesy konserwacji infrastruktury i zarządzania, które tradycyjnie były wykonywane z infrastrukturą własnością.
  • Przenośność aplikacji. Dzięki zwiększonej wdrożeniu i standaryzacji formatów i platform specyfikacji kontenerów przenośność aplikacji nie jest już problemem.
  • Wdrażanie nowoczesnego zarządzania przy użyciu metodyki DevOps. Korzystanie z 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.
  • Odnajdź aplikację ASP.NET.
  • Skompiluj obraz kontenera.
  • Wdróż konteneryzowaną aplikację w usłudze 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 jest 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 klienta (Windows 10) systemu operacyjnego. (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 na maszynie z systemem Windows z uruchomionym narzędziem konteneryzacji aplikacji usługi Azure Migrate jest dostępne 6 GB. To miejsce na przechowywanie 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 zostało jeszcze zainstalowane na maszynie z uruchomionym narzędziem konteneryzacji aplikacji i serwerem aplikacji, zainstaluj je. Narzędzie można pobrać.
Serwery aplikacji Włącz zdalną obsługę zdalną programu PowerShell na serwerach aplikacji: zaloguj się do serwera aplikacji i postępuj zgodnie z tymi instrukcjami, aby włączyć zdalną obsługę zdalną programu PowerShell.

Upewnij się, że na serwerze aplikacji jest zainstalowany program PowerShell 5.1. Postępuj zgodnie z instrukcjami w temacie Instalowanie i konfigurowanie programu WMF 5.1 na serwerze aplikacji.

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


Narzędzie obecnie nie obsługuje następujących funkcji:
  • Aplikacje wymagające uwierzytelniania systemu Windows. (Usługa AKS nie obsługuje obecnie usługi 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 subskrypcji platformy Azure.
  • Uprawnienia do rejestrowania aplikacji Microsoft Entra.

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 witrynie Azure Portal wyszukaj frazę "subskrypcje". W obszarze Usługi wybierz pozycję Subskrypcje:

    Screenshot that shows the search box for searching for an Azure subscription.

  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 Sprawdź dostęp wyszukaj odpowiednie konto użytkownika.

  5. W obszarze Dodawanie przypisania roli wybierz pozycję Dodaj:

    Screenshot that shows searching for a user account to check access and assign a role.

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

    Screenshot that shows the Add role assignment page.

    Twoje konto platformy Azure wymaga również uprawnień do rejestrowania aplikacji firmy Microsoft Entra.

  7. W witrynie Azure Portal przejdź do witryny Microsoft Entra ID>User>Ustawienia.

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

    Screenshot that shows the User settings page.

  9. Jeśli opcja Rejestracje aplikacji jest ustawiona na Nie, poproś dzierżawcę/administratora globalnego o przypisanie wymaganych uprawnień. Alternatywnie dzierżawa/administrator globalny może przypisać rolę dewelopera aplikacji do konta, aby zezwolić na rejestrację aplikacji Firmy Microsoft Entra. 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
    

Uwaga

W systemie Windows Server 2022 edytuj wiersz 135 i usuń PowerShell-ISE z listy funkcji, ponieważ nie jest już obsługiwany.

Otwieranie narzędzia konteneryzacji aplikacji

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

    Alternatywnie możesz otworzyć aplikację z poziomu pulpitu przy użyciu skrótu 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 usłudze aplikacja systemu Azure:

    Screenshot that shows the application type and target lists.

Ukończenie wymagań wstępnych narzędzia

  1. Zaakceptuj postanowienia licencyjne i przeczytaj informacje innych firm.
  2. W aplikacji internetowej narzędzia Konfigurowanie wymagań wstępnych 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 się do platformy Azure

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

    Potrzebny jest kod urządzenia do uwierzytelniania za pomocą platformy Azure. 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:

    Screenshot that shows the Device code for Azure Sign in window.

  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 konteneryzacji 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 nawiązywania połączenia 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) prefiks nazwy użytkownika o nazwie domeny w tym 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 tym formacie: <nazwa hosta\nazwa> użytkownika.
    • Odnajdywanie aplikacji można uruchamiać dla 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:

    Screenshot that shows the server status as Mapped.

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

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

    Screenshot that shows the discovered ASP.NET application.

  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 on zakodowany 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:

    Screenshot that shows the list of detected configurations.

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 lub powinny być zewnętrznie przechowywane 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, rozdziel wartości przecinkami.

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

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

    Screenshot that shows the Edit application folders window.

  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:

    Screenshot that shows the Build images window.

    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 w usłudze aplikacja systemu Azure 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żliwi przejście do następnego kroku po zakończeniu kompilacji.

  4. Postęp kompilacji można monitorować, wybierając pozycję Kompilacja w toku w kolumnie 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:

    Screenshot that shows the Review link, the container image status, and the Build and Continue buttons.

Wdrażanie konteneryzowanej aplikacji w usłudze aplikacja systemu Azure

Po utworzeniu obrazu kontenera następnym krokiem jest wdrożenie aplikacji jako kontenera w usłudze aplikacja systemu Azure Service.

  1. Wybierz plan usługi aplikacja systemu Azure, który ma być używany przez aplikację.

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

  2. Po wybraniu planu usługi 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 usługi Azure Key Vault lub aplikacji usługi App Service, aby zarządzać wpisami tajnymi aplikacji. Aby uzyskać więcej informacji, zobacz Konfigurowanie parametry połączenia.

    • Jeśli wybrano ustawienia aplikacji usługi App Service 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 niezbędne uprawnienia 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 konteneryzacji aplikacji podczas wdrażania. Narzędzie skopiuje foldery aplikacji skonfigurowane dla usługi 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:

    • Name. Określ unikatową nazwę aplikacji. Ta nazwa będzie używana do generowania adresu URL aplikacji. Będzie on również używany 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 dotyczące wszystkich folderów aplikacji skonfigurowanych do przechowywania trwałego.

    Screenshot that shows the deployment configuration.

  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 dla aplikacji.

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

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

      Screenshot that shows the Deploy button.

    • 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 maszynie z systemem Windows, na której jest uruchomione narzędzie. Pliki dziennika narzędzia znajdują się w folderze C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.

Następne kroki