Migrowanie aplikacji do Azure App Service i SQL DatabaseMigrate an application to Azure App Service and SQL Database

W tym artykule pokazano, w jaki sposób fikcyjna firma firmy Contoso refaktoryzację aplikacji platformy Windows .NET działającej na maszynach wirtualnych VMware w ramach migracji na platformę Azure.This article demonstrates how the fictional company Contoso refactors a two-tier Windows .NET application that's running on VMware VMs as part of a migration to Azure. Zespół firmy Contoso migruje maszynę wirtualną aplikacji (VM) do Azure App Service aplikacji sieci Web i bazy danych aplikacji, aby Azure SQL Database.The Contoso team migrates the application front-end virtual machine (VM) to an Azure App Service web app and the application database to Azure SQL Database.

Aplikacja SmartHotel360 używana w tym przykładzie jest świadczona jako Open Source.The SmartHotel360 application that we use in this example is provided as open source. Jeśli chcesz używać go do celów testowych, możesz go pobrać z witryny GitHub.If you want to use it for your own testing purposes, you can download it from GitHub.

Biznesowa siła napędowaBusiness drivers

Zespół liderów IT firmy Contoso w ścisłej współpracy z partnerami biznesowymi firmy ustalił, co firma będzie chciała osiągnąć dzięki migracji:The Contoso IT leadership team has worked closely with business partners to understand what they want to achieve with this migration:

  • Reagowanie na rosnące potrzeby biznesowe.Address business growth. Firma Contoso rośnie i ma nacisk na lokalne systemy i infrastrukturę.Contoso is growing, and there is pressure on their on-premises systems and infrastructure.
  • Zwiększenie wydajności.Increase efficiency. Firma Contoso musi usunąć niepotrzebne procedury i usprawnić procesy dla deweloperów i użytkowników.Contoso needs to remove unnecessary procedures and streamline processes for developers and users. Firma chce, aby dział IT był szybki i nie tracił czasu ani pieniędzy, co pozwoli szybciej realizować wymagania klientów.The business needs IT to be fast and not waste time or money, thus delivering faster on customer requirements.
  • Zwiększenie elastyczności.Increase agility. Aby umożliwić ich pomyślne w globalnej gospodarce, firma Contoso musi być bardziej odpowiadać potrzebom firmy.To enable their success in a global economy, Contoso IT needs to be more responsive to the needs of the business. Musi być w stanie szybciej reagować na zmiany w portalu Marketplace.It must be able to react more quickly to changes in the marketplace. Nie może ona zostać zabrana w sposób ani być zablokowanym firmą.IT must not get in the way or become a business blocker.
  • Zasięgu.Scale. W miarę pomyślnego rozwoju firmy dział IT firmy Contoso musi zapewnić systemy, które będą mogły rosnąć w tym samym tempie.As the business grows successfully, Contoso IT must provide systems that are able to grow at the same pace.
  • Obniżyć koszty.Reduce costs. Firma Contoso chce zminimalizować koszty licencjonowania.Contoso wants to minimize licensing costs.

Cele migracjiMigration goals

Aby pomóc w ustaleniu najlepszej metody migracji, zespół w chmurze firmy Contoso przypięty do następujących celów:To help determine the best migration method, the Contoso cloud team pinned down the following goals:

WymaganiaRequirements SzczegółyDetails
AplikacjaApplication Aplikacja na platformie Azure pozostanie jako krytyczna, ponieważ jest już obecna w środowisku lokalnym.The application in Azure will remain as critical as it is today on-premises.

Powinna ona mieć takie same możliwości związane z wydajnością, jak w przypadku programu VMware.It should have the same performance capabilities as it currently does in VMware.

Zespół nie chce inwestować w aplikację.The team doesn't want to invest in the application. Na razie administratorzy będą po prostu bezpiecznie przenieść aplikację do chmury.For now, admins will simply move the application safely to the cloud.

Zespół chce przestać obsługiwać system Windows Server 2008 R2, w którym aplikacja jest obecnie uruchomiona.The team wants to stop supporting Windows Server 2008 R2, which the application currently runs on.

Zespół chce również przejść od SQL Server 2008 R2 do nowoczesnej bazy danych platformy jako usługi (PaaS), co minimalizuje potrzebę zarządzania.The team also wants to move away from SQL Server 2008 R2 to a modern platform as a service (PaaS) database, which will minimize the need for management.

Firma Contoso chce skorzystać z inwestycji w licencjonowanie programu SQL Server Licencjonowanie i pakiet Software Assurance, o ile jest to możliwe.Contoso wants to take advantage of its investment in SQL Server licensing and Software Assurance where possible.

Ponadto firma Contoso chce wyeliminować pojedynczy punkt awarii w warstwie internetowej.In addition, Contoso wants to mitigate the single point of failure on the web tier.
OgraniczeniaLimitations Aplikacja składa się z aplikacji ASP.NET i usługi Windows Communication Foundation (WCF) uruchomionej na tej samej maszynie wirtualnej.The application consists of an ASP.NET application and a Windows Communication Foundation (WCF) service running on the same VM. Chcą rozłożyć te składniki na dwie aplikacje sieci Web przy użyciu Azure App Service.They want to spread these components across two web apps using the Azure App Service.
AzureAzure Firma Contoso chce przenieść aplikację na platformę Azure, ale nie chce uruchamiać jej na maszynach wirtualnych.Contoso wants to move the application to Azure, but they don't want to run it on VMs. Firma Contoso chce korzystać z usług Azure w warstwie internetowej i warstwie danych.Contoso wants to use Azure PaaS services for both the web and data tiers.
DevOpsDevOps Firma Contoso chce przenieść się do modelu DevOps, który korzysta z usługi Azure DevOps w przypadku kompilacji i potoków wydań.Contoso wants to move to a DevOps model that uses Azure DevOps for their builds and release pipelines.

Projekt rozwiązaniaSolution design

Po przypięciu swoich celów i wymagań firma Contoso projektuje i przegląda rozwiązanie wdrożeniowe.After pinning down their goals and requirements, Contoso designs and reviews a deployment solution. Identyfikują one również proces migracji, w tym usługi platformy Azure, które będą używane do migracji.They also identify the migration process, including the Azure services that they'll use for the migration.

Bieżąca aplikacjaCurrent application

  • Aplikacja lokalna SmartHotel360 jest warstwą obejmującą dwie maszyny wirtualne WEBVM i SQLVM .The SmartHotel360 on-premises application is tiered across two VMs, WEBVM and SQLVM.
  • Maszyny wirtualne znajdują się na VMware ESXi hoście contosohost1.contoso.com w wersji 6,5.The VMs are located on VMware ESXi host contosohost1.contoso.com version 6.5.
  • Środowisko VMware jest zarządzane przez vCenter Server 6,5 (vcenter.contoso.com), które działa na maszynie wirtualnej.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), which runs on a VM.
  • Firma Contoso ma lokalne centrum danych (contoso-Datacenter) z lokalnym kontrolerem domeny (ContosoDC1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).
  • Lokalne maszyny wirtualne w centrum danych firmy Contoso zostaną zlikwidowane po zakończeniu migracji.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Proponowane rozwiązanieProposed solution

  • W przypadku warstwy bazy danych aplikacji firma Contoso porównana Azure SQL Database SQL Server, odwołując się do porównania funkcji: Azure SQL Database i wystąpienia zarządzanego Azure SQL.For the database tier of the application, Contoso compared Azure SQL Database to SQL Server by referring to Features comparison: Azure SQL Database and Azure SQL Managed Instance. Firma Contoso zdecydowała się użyć Azure SQL Database z kilku powodów:Contoso decided to use Azure SQL Database for a few reasons:
    • Azure SQL Database to zarządzana usługa relacyjnej bazy danych.Azure SQL Database is a managed relational database service. Zapewnia ona przewidywalną wydajność na wielu poziomach usługi z niemal zerową liczbą czynności administracyjnych.It delivers predictable performance at multiple service levels, with near-zero administration. Zalety obejmują dynamiczną skalowalność bez przestojów, wbudowaną inteligentną optymalizację oraz globalną skalowalność i dostępność.Advantages include dynamic scalability with no downtime, built-in intelligent optimization, and global scalability and availability.
    • Firma Contoso może użyć uproszczonej Data Migration Assistant do oceny migracji lokalnej bazy danych do usługi Azure SQL.Contoso can use the lightweight Data Migration Assistant to assess the on-premises database migration to Azure SQL.
    • Firma Contoso może używać Azure Database Migration Service do migrowania lokalnej bazy danych do usługi Azure SQL.Contoso can use Azure Database Migration Service to migrate the on-premises database to Azure SQL.
    • Dzięki programowi Software Assurance firma Contoso może wymieniać istniejące licencje dla obniżonych stawek w bazie danych w SQL Database przy użyciu Korzyść użycia hybrydowego platformy Azure do SQL Server.With Software Assurance, Contoso can exchange existing licenses for discounted rates on a database in SQL Database by using the Azure Hybrid Benefit for SQL Server. Takie podejście może zapewnić oszczędności do 30% kosztów.This approach could provide a cost saving of up to 30 percent.
    • SQL Database udostępnia funkcje zabezpieczeń, takie jak Always Encrypted, dynamiczne maskowanie danych, zabezpieczenia na poziomie wiersza i wykrywanie zagrożeń SQL.SQL Database provides security features such as Always Encrypted, dynamic data masking, row-level security, and SQL threat detection.
  • W przypadku warstwy sieci Web aplikacji firma Contoso zdecydowała się użyć Azure App Service.For the application web tier, Contoso has decided to use Azure App Service. Ta usługa PaaS umożliwia wdrażanie aplikacji przy użyciu zaledwie kilku zmian konfiguracji.This PaaS service enables them to deploy the application with just a few configuration changes. Firma Contoso użyje programu Visual Studio, aby wprowadzić tę zmianę i wdrożyć dwie aplikacje sieci Web, jedną dla witryny sieci Web i jedną dla usługi WCF.Contoso will use Visual Studio to make the change, and they'll deploy two web apps, one for the website and one for the WCF service.
  • Aby spełnić wymagania dotyczące potoku DevOps, firma Contoso będzie używać usługi Azure DevOps do zarządzania kodem źródłowym przy użyciu repozytoriów Git.To meet requirements for a DevOps pipeline, Contoso will use Azure DevOps for source code management with Git repos. Będą używać zautomatyzowanych kompilacji i wersji do kompilowania kodu i wdrażania go w Azure App Service.They'll use automated builds and release to build the code and deploy it to the Azure App Service.

Przegląd rozwiązaniaSolution review

Firma Contoso oblicza proponowany projekt, umieszczając listę specjalistów i wad, jak pokazano w poniższej tabeli:Contoso evaluates their proposed design by putting together a pros and cons list, as shown in the following table:

Kwestie do rozważeniaConsideration SzczegółyDetails
ZaletyPros Kod aplikacji SmartHotel360 nie wymaga zmian migracji na platformę Azure.The SmartHotel360 application code doesn't require changes for migration to Azure.

Firma Contoso może korzystać z inwestycji w program Software Assurance przy użyciu Korzyść użycia hybrydowego platformy Azure zarówno dla SQL Server, jak i systemu Windows Server.Contoso can take advantage of their investment in Software Assurance by using the Azure Hybrid Benefit for both SQL Server and Windows Server.

Po migracji system Windows Server 2008 R2 nie będzie musiał być obsługiwany.After the migration, Windows Server 2008 R2 won't need to be supported. Aby uzyskać więcej informacji, zobacz Zasady cyklu życia firmy Microsoft.For more information, see the Microsoft Lifecycle Policy.

Firma Contoso może skonfigurować warstwę sieci Web aplikacji z wieloma wystąpieniami, dzięki czemu warstwa sieci Web nie będzie już single point of failure.Contoso can configure the web tier of the application with multiple instances, so that the web tier is no longer a single point of failure.

Baza danych nie będzie już zależeć od wieku programu SQL Server 2008 R2.The database will no longer depend on the aging SQL Server 2008 R2.

Baza danych SQL Database obsługuje wymagania techniczne.SQL Database supports the technical requirements. Firma Contoso oceniła lokalną bazę danych przy użyciu Data Migration Assistant i stwierdziła, że jest ona zgodna.Contoso assessed the on-premises database by using Data Migration Assistant and found that it's compatible.

Azure SQL Database ma wbudowaną odporność na uszkodzenia, której firma Contoso nie musi skonfigurować.Azure SQL Database has built-in fault tolerance that Contoso doesn't have to set up. Gwarantuje to, że warstwa danych nie jest już pojedynczym punktem awarii.This ensures that the data tier is no longer a single point of failover.

Jeśli firma Contoso używa Azure Database Migration Service do migrowania swojej bazy danych, będzie miała gotową infrastrukturę do migrowania baz danych na dużą skalę.If Contoso uses Azure Database Migration Service to migrate their database, it will have the infrastructure ready for migrating databases at scale.
WadyCons Azure App Service obsługuje tylko jedno wdrożenie aplikacji dla każdej aplikacji sieci Web.Azure App Service supports only one application deployment for each web app. Oznacza to, że wymagane jest zainicjowanie obsługi dwóch aplikacji sieci Web, jednej dla witryny sieci Web i jednej dla usługi WCF.This means that two web apps must be provisioned, one for the website and one for the WCF service.

Proponowana architekturaProposed architecture

Diagram proponowanej architektury.

Proces migracjiMigration process

  1. Firma Contoso inicjuje Zarządzanie wystąpieniem usługi Azure SQL, a następnie migruje bazę danych SmartHotel360 do niej przy użyciu Azure Database Migration Service.Contoso provisions an Azure SQL managed instance and then migrates the SmartHotel360 database to it by using Azure Database Migration Service.

  2. Firma Contoso inicjuje i konfiguruje aplikacje sieci Web oraz wdraża do nich aplikację SmartHotel360.Contoso provisions and configures web apps, and deploys the SmartHotel360 application to them.

    Diagram procesu migracji.

Usługi platformy AzureAzure services

UsługaService OpisDescription KosztyCost
Asystent migracji usługi Azure App ServiceAzure App Service Migration Assistant Bezpłatna i prosta ścieżka umożliwiająca bezproblemową migrację aplikacji sieci Web platformy .NET ze środowiska lokalnego do chmury przy minimalnym braku zmian w kodzie.A free and simple path to seamlessly migrate .NET web applications from on-premises to the cloud with minimal to no code changes. Jest to narzędzie do pobrania bezpłatnie.It's a downloadable tool, free of charge.
Data Migration AssistantData Migration Assistant Firma Contoso będzie używać Data Migration Assistant do oceny i wykrywania problemów ze zgodnością, które mogą mieć wpływ na funkcjonalność bazy danych na platformie Azure.Contoso will use Data Migration Assistant to assess and detect compatibility issues that might affect database functionality in Azure. Data Migration Assistant ocenia parzystość funkcji między źródłami i obiektami docelowymi SQL i zaleca ulepszenia wydajności i niezawodności.Data Migration Assistant assesses feature parity between SQL sources and targets, and it recommends performance and reliability improvements. Jest to narzędzie do pobrania bezpłatnie.It's a downloadable tool, free of charge.
Azure Database Migration ServiceAzure Database Migration Service Azure Database Migration Service umożliwia bezproblemowe Migrowanie z wielu źródeł baz danych do platform danych platformy Azure z minimalnym przestojem.Azure Database Migration Service enables seamless migration from multiple database sources to Azure data platforms with minimal downtime. Dowiedz się więcej o obsługiwanych regionach i cenniku usługi Database Migration Service.Learn about supported regions and Database Migration Service pricing.
Azure SQL DatabaseAzure SQL Database Usługa inteligentnej, w pełni zarządzanej relacyjnej bazy danych w chmurze.An intelligent, fully managed relational cloud database service. Koszt jest oparty na funkcjach, przepływności i rozmiarze.Cost is based on features, throughput, and size. Dowiedz się więcej.Learn more.
Azure App ServiceAzure App Service Pomaga tworzyć zaawansowane aplikacje w chmurze korzystające z w pełni zarządzanej platformy.Helps create powerful cloud applications that use a fully managed platform. Ceny są ustalane na podstawie rozmiaru, lokalizacji i czasu użytkowania.Pricing is based on size, location, and usage duration. Dowiedz się więcej.Learn more.
Azure DevOpsAzure DevOps Zapewnia potok ciągłej integracji i ciągłego wdrażania (CI/CD) na potrzeby tworzenia aplikacji.Provides a continuous integration and continuous deployment (CI/CD) pipeline for application development. Potok rozpoczyna się od repozytorium git do zarządzania kodem aplikacji, system kompilacji do produkcji pakietów i innych artefaktów kompilacji oraz system zarządzania wersjami do wdrażania zmian w środowiskach deweloperskich, testowych i produkcyjnych.The pipeline starts with a Git repository for managing application code, a build system for producing packages and other build artifacts, and a release management system to deploy changes in dev, test, and production environments.

Wymagania wstępnePrerequisites

Aby można było uruchomić ten scenariusz, firma Contoso musi spełniać następujące wymagania wstępne:To run this scenario, Contoso must meet the following prerequisites:

WymaganiaRequirements SzczegółyDetails
Subskrypcja platformy AzureAzure subscription Firma Contoso utworzyła subskrypcje wcześniej w tej serii artykułów.Contoso created subscriptions earlier in this article series. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.If you don't have an Azure subscription, create a free account.

Jeśli bezpłatne konto właśnie zostało utworzone, jesteś administratorem subskrypcji i możesz wykonywać wszystkie akcje.If you create a free account, you're the administrator of your subscription and can perform all actions.

Jeśli używasz istniejącej subskrypcji i nie jesteś jej administratorem, musisz skontaktować się z administratorem w celu uzyskania uprawnień właściciela lub współautora.If you use an existing subscription and you're not the administrator, you need to work with the admin to assign you Owner or Contributor permissions.
Infrastruktura platformy AzureAzure infrastructure Firma Contoso skonfigurowała infrastrukturę platformy Azure zgodnie z opisem w artykule Azure infrastructure for Migration (Infrastruktura platformy Azure wymagana do migracji).Contoso set up their Azure infrastructure as described in Azure infrastructure for migration.

Etapy scenariuszaScenario steps

Firma Contoso przeprowadzi migrację w następujący sposób:Here's how Contoso will run the migration:

  • Krok 1. Ocena i migracja aplikacji sieci Web..Step 1: Assess and migrate the web apps.. Firma Contoso używa narzędzia Asystent migracji Azure App Service , aby uruchomić sprawdzanie zgodności przed migracją i migrować swoje aplikacje sieci web do Azure App Service.Contoso uses the Azure App Service Migration Assistant tool to run pre-migration compatibility checks and migrate their web apps to Azure App Service.
  • Krok 2. Inicjowanie obsługi administracyjnej bazy danych w Azure SQL Database.Step 2: Provision a database in Azure SQL Database. Firma Contoso inicjuje obsługę Azure SQL Database wystąpienia.Contoso provisions an Azure SQL Database instance. Po przeprowadzeniu migracji witryny sieci Web do platformy Azure aplikacja internetowa usługi WCF wskaże to wystąpienie.After the application website is migrated to Azure, the WCF service web app will point to this instance.
  • Krok 3. Ocena bazy danych.Step 3: Assess the database. Firma Contoso ocenia bazę danych do migracji przy użyciu Data Migration Assistant, a następnie migruje ją za pośrednictwem Azure Database Migration Service.Contoso assesses the database for migration by using Data Migration Assistant and then migrates it via Azure Database Migration Service.
  • Krok 4. Konfigurowanie usługi Azure DevOps.Step 4: Set up Azure DevOps. Firma Contoso tworzy nowy projekt usługi Azure DevOps i importuje repozytorium usługi Git.Contoso creates a new Azure DevOps project, and imports the Git repo.
  • Krok 5. Konfigurowanie parametrów połączenia.Step 5: Configure connection strings. Firma Contoso konfiguruje parametry połączenia tak, aby aplikacja internetowa warstwy internetowej, aplikacja internetowa usługi WCF i wystąpienie programu SQL mogły się komunikować.Contoso configures connection strings so that the web tier web app, the WCF service web app, and the SQL instance can communicate.
  • Krok 6. Konfigurowanie potoków kompilacji i wydania na platformie Azure DevOps.Step 6: Set up build and release pipelines in Azure DevOps. W ostatnim kroku firma Contoso konfiguruje potoki kompilacji i wydań w usłudze Azure DevOps, aby utworzyć aplikację, a następnie wdraża je w dwóch oddzielnych aplikacjach sieci Web.As a final step, Contoso sets up build and release pipelines in Azure DevOps to create the application, and then deploys them to two separate web apps.

Krok 1. Ocena i migracja aplikacji sieci WebStep 1: Assess and migrate the web apps

Administratorzy firmy Contoso oceniają i migrują swoją aplikację sieci Web przy użyciu narzędzia Asystent migracji Azure App Service .Contoso admins assess and migrate their web app using the Azure App Service Migration Assistant tool. Korzystają one z funkcji Migrowanie aplikacji ASP.NET do usługi Azure Learning Path jako wskazówki w trakcie procesu.They use the Migrate ASP.NET Apps to Azure learning path as a guide during the process. Administratorzy wykonują następujące akcje:The admins perform these actions:

  • Używają narzędzia do oceny migracji App Service platformy Azure do oceny wszelkich zależności między swoimi aplikacjami sieci Web i ustalenia, czy istnieją jakiekolwiek niezgodności między lokalnymi aplikacjami sieci Web i co jest obsługiwane w programie Azure App Service.They use the Azure App Service Migration Assessment tool to evaluate any dependencies between their web apps and to determine if there are any incompatibilities between their on-premises web apps and what's supported on Azure App Service.

  • Pobierają Asystent migracji Azure App Service i logują się na koncie platformy Azure.They download the Azure App Service Migration Assistant and sign in to their Azure account.

  • Wybierają one subskrypcję, grupę zasobów i nazwę domeny witryny sieci Web.They choose a subscription, a resource group, and the website's domain name.

Krok 2. Inicjowanie obsługi administracyjnej bazy danych w Azure SQL DatabaseStep 2: Provision a database in Azure SQL Database

  1. Administratorzy contoso decydują się utworzyć wystąpienie Azure SQL Database.Contoso admins decide to create an Azure SQL Database instance.

    Zrzut ekranu przedstawiający łącze SQL Database.

  2. Określają one nazwę bazy danych zgodną z bazą danych, SmartHotel.Registration która jest uruchomiona na lokalnej maszynie wirtualnej.They specify a database name to match the database, SmartHotel.Registration, that's running on the on-premises VM. Umieszczają bazę danych w grupie zasobów ContosoRG.They place the database in the ContosoRG resource group. Jest to grupa zasobów, której używają na potrzeby zasobów produkcyjnych na platformie Azure.This is the resource group they use for production resources in Azure.

    Zrzut ekranu przedstawiający szczegóły wystąpienia SQL Database.

  3. Skonfigurujemy nowe wystąpienie SQL Server SQL-Smarthotel-eus2 w regionie podstawowym.They set up a new SQL Server instance, sql-smarthotel-eus2, in the primary region.

    Zrzut ekranu przedstawiający nowe wystąpienie SQL Server.

  4. Ustawiają warstwę cenową, aby odpowiadała potrzebom dotyczącym serwera i bazy danych.They set the pricing tier to match their server and database needs. Następnie wybierają opcję oszczędzania pieniędzy dzięki korzyści użycia hybrydowego platformy Azure, ponieważ mają już licencję programu SQL Server.And they select to save money with Azure Hybrid Benefit because they already have a SQL Server license.

  5. W przypadku ustalania wielkości korzystają z zakupu opartego na rdzeń wirtualnyach i ustalają limity dla ich oczekiwanych wymagań.For sizing, they use vCore-based purchasing and set the limits for their expected requirements.

    Zrzut ekranu przedstawiający wymagania dotyczące zmiany wielkości rdzeń wirtualny.

  6. Tworzą one wystąpienie bazy danych.They create the database instance.

    Zrzut ekranu przedstawiający tworzenie wystąpienia SQL Database.

  7. Otwierają bazę danych i zanotujemy szczegóły, których potrzebują, gdy używają Data Migration Assistant do migracji.They open the database and note the details they'll need when they use Data Migration Assistant for migration.

    Zrzut ekranu przedstawiający plik tekstowy wystąpienia bazy danych.

Potrzebujesz dodatkowej pomocy?Need more help?

Krok 3. Ocena bazy danychStep 3: Assess the database

Administratorzy firmy Contoso oceniają bazę danych przy użyciu Data Migration Assistant, a następnie migruje ją przy użyciu Azure Database Migration Service, odwołując się do samouczka dotyczącego migracji krok po kroku.Contoso admins assess the database by using Data Migration Assistant and then migrate it by using Azure Database Migration Service by referring to the step-by-step migration tutorial. Mogą wykonywać migracje w trybie online, offline i hybrydowym (wersja zapoznawcza).They can perform online, offline, and hybrid (preview) migrations.

W skrócie Administratorzy wykonują następujące czynności:In brief, the admins do the following:

  • Używają Data Migration Assistant do wykrywania i rozwiązywania problemów z migracją bazy danych.They use Data Migration Assistant to discover and resolve any database migration issues.
  • Tworzą one wystąpienie Azure Database Migration Service z jednostką SKU Premium, która jest połączona z siecią wirtualną.They create an Azure Database Migration Service instance with a Premium SKU that's connected to the virtual network.
  • Zapewniają one, że wystąpienie może uzyskać dostęp do zdalnego SQL Server za pośrednictwem sieci wirtualnej.They ensure that the instance can access the remote SQL Server via the virtual network. Dzięki temu można upewnić się, że wszystkie porty przychodzące są dozwolone z platformy Azure do SQL Server na poziomie sieci wirtualnej, sieci VPN sieciowej i na komputerze, który hostuje SQL Server.This entails ensuring that all incoming ports are allowed from Azure to SQL Server at the virtual network level, the network VPN, and the machine that hosts SQL Server.
  • Konfiguruje wystąpienie:They configure the instance:
    • Utwórz projekt migracji.Create a migration project.
    • Dodaj źródło (lokalna baza danych).Add a source (on-premises database).
    • Wybierz element docelowy.Select a target.
    • Wybierz bazy danych do migracji.Select the databases to migrate.
    • Skonfiguruj ustawienia zaawansowane.Configure advanced settings.
    • Rozpocznij replikację.Start the replication.
    • Usuń wszelkie błędy.Resolve any errors.
    • Wykonaj ostateczną uruchomienie produkcyjne.Perform the final cutover.

Krok 4. Konfigurowanie usługi Azure DevOpsStep 4: Set up Azure DevOps

Firma Contoso musi utworzyć infrastrukturę metodyki DevOps i potoki dla aplikacji.Contoso needs to build the DevOps infrastructure and pipelines for the application. W tym celu administratorzy firmy Contoso tworzą nowy projekt DevOps, importują kod, a następnie konfigurują potoki kompilacji i wydania.To do this, Contoso admins create a new DevOps project, import the code, and then set up build and release pipelines.

  1. Na koncie contoso Azure DevOps Utwórz nowy projekt, ContosoSmartHotelRefactor, a następnie wybierz pozycję git na potrzeby kontroli wersji.In the Contoso Azure DevOps account, they create a new project, ContosoSmartHotelRefactor, and then select Git for version control.

    Zrzut ekranu przedstawiający tworzenie nowego projektu w usłudze Azure DevOps.

  2. Importuje repozytorium git, które aktualnie przechowuje swój kod aplikacji.They import the Git repo that currently holds their application code. Pobierają je z publicznego repozytorium GitHub.They download it from the public GitHub repository.

    Zrzut ekranu przedstawiający okienko "Importowanie repozytorium git".

  3. Połączą się z programem Visual Studio z repozytorium, a następnie Sklonuj kod na komputerze dewelopera przy użyciu Team Explorer.They connect Visual Studio to the repo and then clone the code to the developer machine by using Team Explorer.

    Zrzut ekranu przedstawiający okienko "Połącz z projektem".

  4. Otwierają one plik rozwiązania dla aplikacji.They open the solution file for the application. Aplikacja sieci Web i usługa WCF mają oddzielne projekty w pliku.The web app and the WCF service have separate projects within the file.

    Zrzut ekranu przedstawiający Eksplorator rozwiązań, zawierający listę projektów aplikacji sieci Web i usług WCF.

Krok 5. Konfigurowanie parametrów połączeniaStep 5: Configure connection strings

Administratorzy firmy Contoso upewnij się, że aplikacje sieci Web i baza danych mogą komunikować się ze sobą.The Contoso admins make sure that the web apps and database can communicate with each other. W tym celu konfigurują parametry połączenia w kodzie i w aplikacjach internetowych.To do this, they configure connection strings in the code and in the web apps.

  1. W aplikacji sieci Web dla usługi WCF w SHWCF-EUS2 obszarze Ustawienia > aplikacji Dodaj nowe parametry połączenia o nazwie DefaultConnection.In the web app for the WCF service, SHWCF-EUS2, under Settings > Application settings, they add a new connection string named DefaultConnection.

  2. Pobierają parametry połączenia z bazy danych SmartHotel-Registration, a następnie aktualizują je przy użyciu poprawnych poświadczeń.They pull the connection string from the SmartHotel-Registration database and then update it with the correct credentials.

    Zrzut ekranu przedstawiający okienko ustawienia parametrów połączenia.

  3. W programie Visual Studio Administratorzy otwierają SmartHotel.Registration.wcf projekt z pliku rozwiązania.In Visual Studio, the admins open the SmartHotel.Registration.wcf project from the solution file. W projekcie aktualizuje connectionStrings sekcję web.config pliku przy użyciu parametrów połączenia.In the project, they update the connectionStrings section of the web.config file with the connection string.

    Zrzut ekranu przedstawiający sekcję connectionStrings pliku web.config w projekcie SmartHotel. Registration. WCF.

  4. Zmieniają client sekcję web.config pliku na, SmartHotel.Registration.Web aby wskazywała nową lokalizację usługi WCF.They change the client section of the web.config file for SmartHotel.Registration.Web to point to the new location of the WCF service. Jest to adres URL aplikacji sieci Web WCF, która hostuje punkt końcowy usługi.This is the URL of the WCF web app that hosts the service endpoint.

    Zrzut ekranu przedstawiający sekcję Client pliku web.config w projekcie SmartHotel. Registration. WCF.

  5. Po wprowadzeniu zmian w kodzie, Administratorzy zatwierdzają i synchronizują je za pomocą Team Explorer w programie Visual Studio.With the code changes now in place, the admins commit and sync them by using Team Explorer in Visual Studio.

Krok 6. Konfigurowanie potoków kompilacji i wydania na platformie Azure DevOpsStep 6: Set up build and release pipelines in Azure DevOps

Administratorzy contoso teraz konfigurują usługę Azure DevOps w celu wykonywania procesu kompilacji i wydawania.The Contoso admins now configure Azure DevOps to perform the build and release process.

  1. W usłudze Azure DevOps wybierają pozycję kompilacja i wydanie > nowego potoku.In Azure DevOps, they select Build and release > New pipeline.

    Zrzut ekranu przedstawiający link "nowe potoku" w usłudze Azure DevOps.

  2. Wybierają one Azure Repos git , a na liście rozwijanej repozytorium wybierają odpowiednie repozytorium.They select Azure Repos Git and, in the Repository drop-down list, they select the relevant repo.

    Zrzut ekranu przedstawiający przycisk "Azure Repos git" i wybrane repozytorium.

  3. W obszarze Wybierz szablon wybierz szablon ASP.NET dla swojej kompilacji.Under Select a template, they select the ASP.NET template for their build.

    Zrzut ekranu przedstawiający okienko "Wybierz szablon" służący do wybierania szablonu ASP.NET.

  4. Używają one nazwy ContosoSmartHotelRefactor-ASP.NET-Ci dla kompilacji, a następnie wybieramy pozycję Zapisz & kolejkę, która rozpoczyna się od pierwszej kompilacji.They use the name ContosoSmartHotelRefactor-ASP.NET-CI for the build and then select Save & queue, which kicks off the first build.

    Zrzut ekranu przedstawiający przycisk "Zapisz i zaqueue" dla kompilacji.

  5. Wybierają numer kompilacji, aby obserwować proces.They select the build number to watch the process. Po zakończeniu Administratorzy mogą zobaczyć opinię dotyczącą procesu i wybrać artefakty , aby przejrzeć wyniki kompilacji.After it's finished, the admins can see the process feedback, and they select Artifacts to review the build results.

    Zrzut ekranu strony Kompilacja i link artefakty służący do przeglądania wyników kompilacji.

    Zostanie otwarte okienko Eksplorator artefaktów , a w folderze Drop zostaną wyświetlone wyniki kompilacji.The Artifacts explorer pane opens, and the drop folder displays the build results.

    • Dwa pliki zip to pakiety, które zawierają aplikacje.The two .zip files are the packages that contain the applications.
    • Te pliki zip są używane w potoku wydania do wdrożenia Azure App Service.These .zip files are used in the release pipeline for deployment to Azure App Service.

    Zrzut ekranu przedstawiający okienko "Eksplorator artefaktów".

  6. Wybierają wersje > + Nowy potok.They select Releases > + New pipeline.

    Nowy potok

  7. Wybierają szablon wdrożenia dla usługi Azure App Service.They select the deployment template for Azure App Service.

    Zrzut ekranu przedstawiający szablon wdrażania Azure App Service.

  8. Nazywają one potoku wydania ContosoSmartHotel360Refactor i w polu Nazwa etapu Określ SHWCF-EUS2 jako nazwę aplikacji sieci Web WCF.They name the release pipeline ContosoSmartHotel360Refactor and, in the Stage name box, specify SHWCF-EUS2 as the name of the WCF web app.

    Zrzut ekranu przedstawiający nazwę etapu aplikacji sieci Web WCF.

  9. W obszarze etapów wybierają opcję 1 zadanie, 1 zadanie podrzędne w celu skonfigurowania wdrożenia usługi WCF.Under the stages, they select 1 job, 1 task to configure deployment of the WCF service.

    Zrzut ekranu przedstawiający opcję "1 zadanie, 1 zadanie".

  10. Sprawdzają, czy subskrypcja została wybrana i autoryzowana, a następnie wybierają nazwę usługi App Service.They verify that the subscription is selected and authorized, and then they select the app service name.

    Zrzut ekranu przedstawiający Wybieranie nazwy usługi App Service.

  11. Na > artefakty potoku wybierają i dodają artefakt, a następnie wybierają kompilację przy użyciu potoku ContosoSmarthotel360Refactor .On the pipeline > Artifacts, they select + Add an artifact, then select to build with the ContosoSmarthotel360Refactor pipeline.

    Zrzut ekranu przedstawiający przycisk Kompiluj w okienku "Dodawanie artefaktu".

  12. Aby włączyć wyzwalacz ciągłego wdrażania, Administratorzy wybierają ikonę pioruna w artefaktie.To enable the continuous deployment trigger, the admins select the lightning bolt icon on the artifact.

    Zrzut ekranu przedstawiający ikonę pioruna na artefaktie.

  13. Ustawili wyzwalacz ciągłego wdrażania na włączony.They set the continuous deployment trigger to Enabled.

    Zrzut ekranu przedstawiający wyzwalacz ciągłego wdrażania ustawiony na wartość włączone.

  14. Administratorzy Wróć do zadania etapu 1, 1 zadania, a następnie wybierz pozycję Wdróż Azure App Service.The admins go back to the stage 1 job, 1 task and then select Deploy Azure App Service.

    Zrzut ekranu przedstawiający opcję "wdróż Azure App Service".

  15. W obszarze Wybierz plik lub folder rozwiń folder upuszczania , wybierz plik SmartHotel.Registration.Wcf.zip , który został utworzony podczas kompilacji, a następnie wybierz pozycję Zapisz.In Select a file or folder, they expand the drop folder, select the SmartHotel.Registration.Wcf.zip file that was created during the build, and then select Save.

    Zrzut ekranu przedstawiający okienko "Wybieranie pliku lub folderu" służącego do wybierania pliku WCF.

  16. Wybierają one etapy potoku > , a następnie wybierają pozycję + Dodaj , aby dodać środowisko dla programu SHWEB-EUS2 .They select Pipeline > Stages, and then select + Add to add an environment for SHWEB-EUS2. Wybierają inne wdrożenie usługi Azure App Service.They select another Azure App Service deployment.

    Zrzut ekranu przedstawiający link "1 zadanie, 1 zadanie" służący do dodawania środowiska.

  17. Powtarzają one proces publikowania pliku w SmartHotel.Registration.Web.zip odpowiedniej aplikacji sieci Web, a następnie wybierają pozycję Zapisz.They repeat the process to publish the SmartHotel.Registration.Web.zip file to the correct web app, and then select Save.

    Zrzut ekranu przedstawiający okienko "Wybieranie pliku lub folderu" służącego do wybierania pliku sieci WEB.

    Zostanie wyświetlony potok wersji, jak pokazano poniżej:The release pipeline is displayed, as shown here:

    Zrzut ekranu przedstawiający podsumowanie potoku wydania.

  18. Wróć do kompilacji, wybierz pozycję wyzwalacze, a następnie zaznacz pole wyboru Włącz ciągłą integrację .They go back to Build, select Triggers, and then select the Enable continuous integration check box. Ta akcja włącza potok w taki sposób, aby po zatwierdzeniu zmian w kodzie była wykonywana pełna kompilacja i wydanie.This action enables the pipeline so that when changes are committed to the code, the full build and release occur.

    Zrzut ekranu z wyróżnieniem pola wyboru Włącz integrację ciągłą.

  19. Wybierają pozycję zapisz & kolejkę , aby uruchomić pełny potok.They select Save & queue to run the full pipeline. Zostanie wyzwolona Nowa kompilacja, która z kolei spowoduje utworzenie pierwszej wersji aplikacji do Azure App Service.A new build is triggered, which in turn creates the first release of the application to the Azure App Service.

    Zrzut ekranu przedstawiający przycisk "Zapisz & kolejki".

  20. Administratorzy firmy Contoso mogą wykonywać kroki procesu potoku kompilowania i wydawania z poziomu usługi Azure DevOps.Contoso admins can follow the build and release pipeline process from Azure DevOps. Po zakończeniu kompilacji rozpocznie się wydanie.After the build finishes, the release starts.

    Zrzut ekranu przedstawiający postęp aplikacji kompilowania i wydawania.

  21. Po zakończeniu potoku obie Lokacje zostały wdrożone, a aplikacja jest uruchomiona i działa w trybie online.After the pipeline finishes, both sites have been deployed, and the application is up and running online.

    Zrzut ekranu przedstawiający, że aplikacja jest uruchomiona.

    Aplikacja została pomyślnie zmigrowana na platformę Azure.The application has been successfully migrated to Azure.

Czyszczenie zasobów po migracjiClean up after migration

Po migracji firma Contoso ukończy następujące kroki czyszczenia:After migration, Contoso completes these cleanup steps:

  • Usuwają lokalne maszyny wirtualne ze spisu programu vCenter.They remove the on-premises VMs from the vCenter inventory.
  • Usuwają one maszyny wirtualne z zadań tworzenia kopii zapasowych.They remove the VMs from the local backup jobs.
  • Aktualizują wewnętrzną dokumentację, aby pokazać nowe lokalizacje dla aplikacji SmartHotel360.They update their internal documentation to show the new locations for the SmartHotel360 application. Dokumentacja zawiera bazę danych jako działającą w Azure SQL Database i fronton jako uruchomiony w dwóch aplikacjach sieci Web.The documentation shows the database as running in Azure SQL Database and the front end as running in two web apps.
  • Przeglądają wszelkie zasoby, które współpracują z zlikwidowanymi maszynami wirtualnymi i aktualizują odpowiednie ustawienia lub dokumentację w celu odzwierciedlenia nowej konfiguracji.They review any resources that interact with the decommissioned VMs, and they update any relevant settings or documentation to reflect the new configuration.

Przegląd wdrożeniaReview the deployment

Po przeprowadzeniu migracji zasobów na platformę Azure firma Contoso musi w pełni operacjonalizować i zabezpieczyć swoją nową infrastrukturę.With the resources now migrated to Azure, Contoso needs to fully operationalize and help secure their new infrastructure.

ZabezpieczeniaSecurity

  • Firma Contoso pomaga zapewnić bezpieczeństwo nowej SmartHotel-Registration bazy danych.Contoso helps ensure that their new SmartHotel-Registration database is secure. Dowiedz się więcej.Learn more.
  • W szczególności firma Contoso aktualizuje aplikacje sieci Web tak, aby używały protokołu SSL z certyfikatami.In particular, Contoso updates the web apps to use SSL with certificates.

Tworzenie kopii zapasowychBackups

  • Zespół firmy Contoso przegląda wymagania dotyczące kopii zapasowej Azure SQL Database.The Contoso team reviews the backup requirements for the Azure SQL Database. Dowiedz się więcej.Learn more.
  • Informacje na temat zarządzania kopiami zapasowymi SQL Database i przywracania.They also learn about managing SQL Database backups and restores. Dowiedz się więcej o automatycznych kopiach zapasowych.Learn more about automatic backups.
  • Należy rozważyć zaimplementowanie grup trybu failover w celu zapewnienia regionalnego trybu failover dla bazy danych.They consider implementing failover groups to provide regional failover for the database. Dowiedz się więcej.Learn more.
  • W celu uzyskania odporności warto rozważyć wdrożenie aplikacji sieci Web w regionie głównym ( East US 2 ) i w regionie pomocniczym ( Central US ).For resilience, they consider deploying the web app in the main region (East US 2) and the secondary region (Central US). Zespół może skonfigurować Traffic Manager, aby zapewnić pracę w trybie failover w trakcie regionalnego okresu przestoju.The team could configure Traffic Manager to ensure failover during regional outages.

Licencjonowanie i optymalizacja kosztówLicensing and cost optimization

  • Po wdrożeniu wszystkich zasobów firma Contoso przypisuje Tagi platformy Azure zgodnie z ich planowaniem infrastruktury.After all resources are deployed, Contoso assigns Azure tags based on their infrastructure planning.
  • Wszystkie koszty licencjonowania są wliczone w koszt usług PaaS używanych przez firmę Contoso.All licensing is built into the cost of the PaaS services that Contoso is consuming. Ten koszt jest odejmowany od Umowa Enterprise.This cost is deducted from the Enterprise Agreement.
  • Firma Contoso będzie używać Azure Cost Management i rozliczeń , aby zapewnić, że pozostają w budżetach ustanowionych przez lidera działu IT.Contoso will use Azure Cost Management and Billing to ensure that they stay within the budgets established by their IT leadership.

WniosekConclusion

W tym artykule firma Contoso refaktoryzacj aplikację SmartHotel360 na platformie Azure przez Migrowanie maszyny wirtualnej frontonu aplikacji do dwóch Azure App Service aplikacji sieci Web.In this article, Contoso refactored the SmartHotel360 application in Azure by migrating the application front-end VM to two Azure App Service web apps. Baza danych aplikacji została zmigrowana do Azure SQL Database.The application database was migrated to Azure SQL Database.