Een Linux-toepassing refactoriseren met behulp van Azure App Service, Traffic Manager en Azure Database for MySQLRefactor a Linux application by using Azure App Service, Traffic Manager, and Azure Database for MySQL

In dit artikel wordt beschreven hoe het fictieve bedrijf contoso refactories een op twee lagen gebaseerde toepassing is, van on-premises naar Azure te migreren met behulp van Azure app service met github-integratie en Azure database for MySQL.This article shows how the fictional company Contoso refactors a two-tier LAMP-based application, migrating it from on-premises to Azure by using Azure App Service with GitHub integration and Azure Database for MySQL.

osTicket, de Service Desk-toepassing die we in dit voor beeld gebruiken, wordt als open source verschaft.osTicket, the service desk application that we use in this example, is provided as open source. Als u dit voor uw eigen test doeleinden wilt gebruiken, kunt u het downloaden van de osTicket opslag plaats in github.If you want to use it for your own testing purposes, you can download it from the osTicket repo in GitHub.

Commerciële drijfverenBusiness drivers

Het IT-leiderschaps team heeft nauw samengewerkt met zakelijke partners om inzicht te krijgen in wat ze willen doen:The IT leadership team has worked closely with business partners to understand what they want to achieve:

  • De groei van het bedrijf stimuleren.Address business growth. Contoso groeit en beweegt zich op nieuwe markten.Contoso is growing and moving into new markets. Er zijn extra agenten voor de klantenservice nodig.It needs additional customer service agents.
  • Tarieven.Scale. De oplossing moet worden gebouwd zodat Contoso meer agenten voor de klantenservice kan toevoegen naarmate het bedrijf groeit.The solution should be built so that Contoso can add more customer service agents as the business scales.
  • Tolerantie verhogen.Improve resiliency. In het verleden worden alleen problemen met het systeem getroffen interne gebruikers beschreven.In the past, issues with the system affected internal users only. Met het nieuwe bedrijfs model kunnen externe gebruikers worden beïnvloed en contoso heeft de toepassing altijd actief en uitgevoerd.With the new business model, external users will be affected, and Contoso needs the application up and running at all times.

MigratiedoelenMigration goals

Om de beste migratie methode te bepalen, heeft het contoso-Cloud team de doel stellingen van deze migratie vastgemaakt:To determine the best migration method, the Contoso cloud team has pinned down their goals for this migration:

  • De toepassing moet worden opgeschaald tot voorbij de huidige, on-premises capaciteit en prestaties.The application should scale beyond current on-premises capacity and performance. Contoso verplaatst de toepassing om te profiteren van schaling on-demand van Azure.Contoso is moving the application to take advantage of Azure's on-demand scaling.
  • Contoso wil de code basis van de toepassing verplaatsen naar een doorlopende bezorgings pijplijn.Contoso wants to move the application code base to a continuous delivery pipeline. Wanneer de toepassings wijzigingen worden gepusht naar GitHub, wil Contoso deze wijzigingen zonder taken voor operationele mede werkers implementeren.As application changes are pushed to GitHub, Contoso wants to deploy those changes without tasks for operations staff.
  • De toepassing moet robuust zijn, met mogelijkheden voor groei en failover.The application must be resilient, with capabilities for growth and failover. Contoso wil de toepassing implementeren in twee verschillende Azure-regio's en zo ingesteld dat deze automatisch wordt geschaald.Contoso wants to deploy the application in two different Azure regions and set it up to scale automatically.
  • Ze willen het aantal databasebeheertaken minimaliseren zodra de toepassing naar de cloud is verplaatst.Contoso wants to minimize database admin tasks after the application is moved to the cloud.

Ontwerp van de oplossingSolution design

Nadat Contoso de doelstellingen en vereisten heeft vastgesteld, ontwerpt en beoordeelt het bedrijf een oplossing voor de implementatie en identificeert zij het migratieproces, waaronder de Azure-services die voor de migratie worden gebruikt.After pinning down their goals and requirements, Contoso designs and reviews a deployment solution, and identifies the migration process, including the Azure services that will be used for the migration.

Huidige architectuurCurrent architecture

  • De toepassing is trapsgewijs verdeeld over twee virtuele machines (Vm's) ( OSTICKETWEB en OSTICKETMYSQL ).The application is tiered across two virtual machines (VMs) (OSTICKETWEB and OSTICKETMYSQL).
  • De VM's bevinden zich op de VMware ESXi-host contosohost1.contoso.com (versie 6.5).The VMs are located on VMware ESXi host contosohost1.contoso.com (version 6.5).
  • De VMware-omgeving wordt beheerd door vCenter Server 6.5 (vcenter.contoso.com), die wordt uitgevoerd op een virtuele machine.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), running on a VM.
  • Contoso heeft een on-premises datacenter (contoso-datacenter) met een on-premises domeincontroller (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).

Diagram van de huidige architectuur.

Voorgestelde architectuurProposed architecture

Dit is de voorgestelde architectuur:Here's the proposed architecture:

  • De web tier-toepassing op OSTICKETWEB wordt gemigreerd door een Azure app service Web-app in twee Azure-regio's te bouwen.The web tier application on OSTICKETWEB will be migrated by building an Azure App Service web app in two Azure regions. Het contoso-team zal Azure App Service voor Linux implementeren met behulp van de PHP 7,0 docker-container.The Contoso team will implement Azure App Service for Linux by using the PHP 7.0 Docker container.
  • De toepassings code wordt verplaatst naar GitHub, en de Azure App Service web-app wordt geconfigureerd voor continue levering met GitHub.The application code will be moved to GitHub, and the Azure App Service web app will be configured for continuous delivery with GitHub.
  • Azure App Service wordt in zowel de primaire regio ( East US 2 ) als de secundaire regio ( Central US ) geïmplementeerd.Azure App Service will be deployed in both the primary region (East US 2) and secondary region (Central US).
  • Azure Traffic Manager wordt ingesteld voor de twee web-apps in beide regio's.Azure Traffic Manager will be set up in front of the two web apps in both regions.
  • Traffic Manager wordt geconfigureerd in de modus prioriteit om het verkeer af te dwingen East US 2 .Traffic Manager will be configured in priority mode to force the traffic through East US 2.
  • Als de Azure East US 2 -app-server offline gaat, hebben gebruikers toegang tot de toepassing waarvoor een failover is uitgevoerd in Central US .If the Azure app server in East US 2 goes offline, users can access the failed over application in Central US.
  • De data base van de toepassing wordt gemigreerd naar de Azure Database for MySQL-service met behulp van Azure Database Migration Service.The application database will be migrated to the Azure Database for MySQL service by using Azure Database Migration Service. Er wordt lokaal een back-up van de on-premises database gemaakt en deze wordt rechtstreeks in Azure Database for MySQL hersteld.The on-premises database will be backed up locally, and restored directly to Azure Database for MySQL.
  • De Data Base bevindt zich in de primaire regio ( East US 2 ) in het data base-subnet () PROD-DB-EUS2 van het productie netwerk ( VNET-PROD-EUS2 ).The database will reside in the primary region (East US 2) in the database subnet (PROD-DB-EUS2) of the production network (VNET-PROD-EUS2).
  • Omdat ze een productiewerk belasting migreren, bevinden de Azure-resources voor de toepassing zich in de productie resource groep ContosoRG .Since they're migrating a production workload, Azure resources for the application will reside in the production resource group ContosoRG.
  • De Traffic Manager resource wordt geïmplementeerd in de resource groep van de infra structuur van Contoso ContosoInfraRG .The Traffic Manager resource will be deployed in Contoso's infrastructure resource group ContosoInfraRG.
  • De on-premises VM's in het Contoso-datacenter worden buiten gebruik gesteld wanneer de migratie is voltooid.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Diagram van de scenario architectuur.

MigratieprocesMigration process

Contoso voltooit het migratie proces als volgt:Contoso completes the migration process as follows:

  1. Als eerste stap hebben contoso-beheerders de Azure-infra structuur ingesteld, inclusief het inrichten van Azure App Service, het instellen van Traffic Manager en het inrichten van een Azure Database for MySQL-exemplaar.As a first step, Contoso admins set up the Azure infrastructure, including provisioning Azure App Service, setting up Traffic Manager, and provisioning an Azure Database for MySQL instance.
  2. Nadat de Azure-infra structuur is voor bereid, wordt de data base met behulp van Azure Database Migration Service gemigreerd.After preparing the Azure infrastructure, they migrate the database by using Azure Database Migration Service.
  3. Nadat de data base in azure wordt uitgevoerd, uploadt deze een persoonlijke GitHub-opslag plaats voor Azure App Service met continue levering en laden ze met de osTicket-toepassing.After the database is running in Azure, they upload a GitHub private repository for Azure App Service with continuous delivery, and load it with the osTicket application.
  4. In de Azure Portal laden ze de toepassing van GitHub naar de docker-container door Azure App Service uit te voeren.In the Azure portal, they load the application from GitHub to the Docker container by running Azure App Service.
  5. Ze verfijnen DNS-instellingen en configureren automatisch schalen voor de toepassing.They tweak DNS settings and configure autoscaling for the application.

Diagram van het contoso-migratie proces.

Azure-servicesAzure services

ServiceService BeschrijvingDescription KostenCost
Azure App ServiceAzure App Service Met de service worden toepassingen uitgevoerd en geschaald met behulp van Azure Platform as a Service (PaaS) voor websites.The service runs and scales applications by using Azure platform as a service (PaaS) for websites. Prijzen zijn gebaseerd op de grootte van de instanties en de vereiste onderdelen.Pricing is based on the size of the instances and the features required. Meer informatie.Learn more.
Azure Traffic ManagerAzure Traffic Manager Een load balancer die gebruikmaakt van Domain Name System (DNS) voor het door sturen van gebruikers naar Azure of naar externe websites en services.A load balancer that uses Domain Name System (DNS) to direct users to Azure or to external websites and services. Prijzen zijn gebaseerd op het aantal ontvangen DNS-query's en het aantal bewaakte eind punten.Pricing is based on the number of received DNS queries and the number of monitored endpoints. Meer informatie.Learn more.
Azure Database Migration ServiceAzure Database Migration Service Azure Database Migration Service maakt naadloze migratie van meerdere database bronnen naar Azure-gegevens platformen mogelijk, met minimale downtime.Azure Database Migration Service enables seamless migration from multiple database sources to Azure data platforms, with minimal downtime. Meer informatie over ondersteunde regio's en prijzen voor Azure Database Migration Service.Learn about supported regions and Database Migration Service pricing.
Azure Database for MySQLAzure Database for MySQL De data base is gebaseerd op de open-source MySQL-data base-engine.The database is based on the open-source MySQL database engine. Het biedt een volledig beheerde, voor de onderneming geschikte Community-Data Base voor het ontwikkelen en implementeren van toepassingen.It provides a fully managed, enterprise-ready community MySQL database for application development and deployment. Prijzen zijn gebaseerd op de berekenings-, opslag-en back-upvereisten.Pricing is based on compute, storage, and backup requirements. Meer informatie.Learn more.

VereistenPrerequisites

Om dit scenario uit te voeren, moet contoso voldoen aan de volgende vereisten:To run this scenario, Contoso must meet the following prerequisites:

VereistenRequirements DetailsDetails
Azure-abonnementAzure subscription Contoso heeft eerder in deze artikelreeks abonnementen gemaakt.Contoso created subscriptions earlier in this article series. Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan.If you don't have an Azure subscription, create a free account.

Als u een gratis account maakt, bent u de beheerder van uw abonnement en kunt u alle acties uitvoeren.If you create a free account, you're the administrator of your subscription and can perform all actions.

Als u een bestaand abonnement hebt en niet de beheerder bent, moet u de beheerder vragen om u machtigingen als Eigenaar of Inzender voor het abonnement te verlenen.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.
Azure-infrastructuurAzure infrastructure Contoso heeft de Azure-infrastructuur ingesteld zoals beschreven in Azure-infrastructuur voor migratie.Contoso set up their Azure infrastructure as described in Azure infrastructure for migration.

ScenariostappenScenario steps

Hier is het contoso-abonnement voor het volt ooien van de migratie:Here's the Contoso plan for completing the migration:

  • Stap 1: Azure app service inrichten.Step 1: Provision Azure App Service. Contoso-beheerders kunnen web-apps inrichten in de primaire en secundaire regio's.Contoso admins will provision web apps in the primary and secondary regions.
  • Stap 2: Traffic Manager instellen.Step 2: Set up Traffic Manager. Ze stellen Traffic Manager in vóór de web-apps, om het verkeer om te leiden en taken te verdelen.They set up Traffic Manager in front of the web apps, for routing and load balancing traffic.
  • Stap 3: Azure database for MySQL inrichten.Step 3: Provision Azure Database for MySQL. In Azure richten ze een exemplaar van Azure Database for MySQL in.In Azure, they provision an instance of Azure Database for MySQL.
  • Stap 4: de data base migreren.Step 4: Migrate the database. De data base wordt gemigreerd met behulp van Azure Database Migration Service.They migrate the database by using Azure Database Migration Service.
  • Stap 5: Stel github in.Step 5: Set up GitHub. Ze hebben een lokale GitHub-opslag plaats ingesteld voor de toepassings websites en-code.They set up a local GitHub repository for the application web sites and code.
  • Stap 6: de web-apps configureren.Step 6: Configure the web apps. Ze configureren de web-apps met de osTicket-websites.They configure the web apps with the osTicket websites.

Stap 1: Azure App Service inrichtenStep 1: Provision Azure App Service

Contoso-beheerders richten twee web-apps (één in elke regio) op met behulp van Azure App Service.Contoso admins provision two web apps (one in each region) by using Azure App Service.

  1. Ze maken een web-app-resource ( osticket-eus2 ) in de primaire regio ( East US 2 ) via Azure Marketplace.They create a web app resource (osticket-eus2) in the primary region (East US 2) via Azure Marketplace.

  2. De resource wordt in de productie resource groep geplaatst ContosoRG .They put the resource in the production resource group ContosoRG.

    Scherm afbeelding van het deel venster Web-app voor het maken van een web-app in Linux.

  3. Ze maken een App Service plan, app-svp-EUS2, in de primaire regio en gebruiken de standaard grootte.They create an App Service plan, APP-SVP-EUS2, in the primary region, and they use the standard size.

    Scherm opname van het deel venster "nieuw App Service plan" voor het maken van een App Service plan.

  4. Ze selecteren een Linux-besturingssysteem met PHP 7.0-runtime stack. Dit is een Docker-container.They select a Linux OS with PHP 7.0 runtime stack, which is a Docker container.

    Scherm opname van het deel venster Web-app, met Linux-besturings systeem, VS-Oost 2 locatie en PHP 7,0 geselecteerd.

  5. Ze maken een tweede web-app, een osTicket en een Azure app service plan voor Centraal VS.They create a second web app, osticket-cus, and an Azure App Service plan for Central US.

    Scherm opname van het deel venster Web-app, met Linux OS, centrale locatie van VS en PHP 7,0 geselecteerd.

Meer hulp nodig?Need more help?

Stap 2: Traffic Manager instellenStep 2: Set up Traffic Manager

Contoso-beheerders stellen Traffic Manager in voor het omleiden van inkomende webaanvragen naar de web-apps die worden uitgevoerd op de osTicket-weblaag.Contoso admins set up Traffic Manager to direct inbound web requests to the web apps that are running on the osTicket web tier.

  1. In azure Marketplace maken ze een Traffic Manager resource, osTicket.trafficmanager.net.In Azure Marketplace, they create a Traffic Manager resource, osticket.trafficmanager.net. Ze gebruiken prioriteits routering zodat VS Oost 2 de primaire site is.They use priority routing so that East US 2 is the primary site. Ze plaatsen de resource in hun bestaande infrastructuur resource groep ContosoInfraRG.They place the resource in their existing infrastructure resource group, ContosoInfraRG. Traffic Manager is globaal en niet gebonden aan een specifieke locatie.Note that Traffic Manager is global and not bound to a specific location.

    Scherm opname van het deel venster ' Traffic Manager profiel maken '.

  2. Ze configureren Traffic Manager met eind punten.They configure Traffic Manager with endpoints. Ze voegen de web-app in VS Oost 2 als de primaire site, osTicket-eus2 en de web-app in Centraal VS toe als secundaire site, osTicket-cus.They add the web app in East US 2 as the primary site, osticket-eus2, and the web app in Central US as the secondary site, osticket-cus.

    Scherm opname van het deel venster "eind punt toevoegen" in Traffic Manager.

  3. Nadat de eind punten zijn toegevoegd, kunnen de beheerders ze controleren.After they add the endpoints, the admins can monitor them.

    Scherm opname van het deel venster met eind punten voor het controleren van eind punten in Traffic Manager.

Meer hulp nodig?Need more help?

Stap 3: Azure Database for MySQL inrichtenStep 3: Provision Azure Database for MySQL

Contoso-beheerders richten een MySQL-data base-instantie op in de primaire regio, VS-Oost 2.Contoso admins provision a MySQL database instance in the primary region, East US 2.

  1. In de Azure-portal maken ze een Azure Database for MySQL-resource.In the Azure portal, they create an Azure Database for MySQL resource.

    Scherm opname van de Azure Database for MySQL koppeling in de Azure Portal.

  2. Ze voegen de naam contosoosticket toe voor de Azure-database.They add the name contosoosticket for the Azure database. Ze voegen de data base toe aan de resource groep ContosoRG en geven vervolgens de referenties op.They add the database to the production resource group ContosoRG and then specify credentials for it.

  3. De on-premises MySQL-database is versie 5.7, dus selecteren ze deze versie vanwege de compatibiliteit.The on-premises MySQL database is version 5.7, so they select this version for compatibility. Ze gebruiken de standaardgrootten, die overeenkomen met de vereisten voor hun database.They use the default sizes, which match their database requirements.

    Scherm opname van het deel venster "MySQL-server", waarbij versie 5,7 is geselecteerd.

  4. Voor back-redundantie opties selecteert u geo-redundant.For Backup Redundancy Options, they select Geo-Redundant. Met deze optie kunnen ze de data base in hun secundaire regio (VS-Centraal) herstellen als er een storing optreedt.This option allows them to restore the database in their secondary region (Central US) if an outage occurs. Ze kunnen deze optie alleen configureren wanneer ze de data base inrichten.They can configure this option only when they provision the database.

    Scherm opname van het deel venster Opties voor back-upredundantie, met de optie Geo-Redundant geselecteerd.

  5. Ze stellen de beveiliging van de verbinding in.They set up connection security. In de-data base selecteert u verbindings beveiliging en vervolgens stelt u firewall regels in om de data base toegang te geven tot Azure-Services.In the database, they select Connection security and then set up firewall rules to allow the database to access Azure services.

  6. Ze voegen het IP-adres van de lokale werkstationclient toe aan het eerste en het laatste IP-adres.They add the local workstation client IP address to the start and end IP addresses. Hierdoor hebben web-apps toegang tot de MySQL-database, samen met de databaseclient die de migratie uitvoert.This allows the web apps to access the MySQL database, along with the database client that's performing the migration.

    Scherm opname van het deel venster ' verbindings beveiliging ', waarin de toegang tot Azure-Services is ingeschakeld en het IP-adres van de client is geselecteerd.

Stap 4: de data base migrerenStep 4: Migrate the database

Er zijn verschillende manieren om de MySQL-data base te verplaatsen.There are several ways to move the MySQL database. Voor elke optie moeten contoso-beheerders een Azure Database for MySQL-exemplaar voor het doel maken.Each option requires Contoso admins to create an Azure Database for MySQL instance for the target. Nadat ze het exemplaar hebben gemaakt, kunnen ze de data base migreren met behulp van een van de twee volgende paden:After they create the instance, they can migrate the database by using either of two paths:

  • Stap 4a: Azure Database Migration ServiceStep 4a: Azure Database Migration Service
  • Stap 4b: MySQL Workbench back-ups maken en herstellenStep 4b: MySQL Workbench backup and restore

Stap 4a: de data base migreren via Azure Database Migration ServiceStep 4a: Migrate the database via Azure Database Migration Service

Contoso-beheerders migreren de data base via Azure Database Migration Service door de Stapsgewijze zelf studie voor migratiete volgen.Contoso admins migrate the database via Azure Database Migration Service by following the step-by-step migration tutorial. Ze kunnen online-, offline-en hybride migraties (preview) uitvoeren met behulp van MySQL 5,6 of 5,7.They can perform online, offline, and hybrid (preview) migrations by using MySQL 5.6 or 5.7.

Notitie

MySQL 8,0 wordt ondersteund in Azure Database for MySQL, maar het Database Migration Service-hulp programma biedt nog geen ondersteuning voor deze versie.MySQL 8.0 is supported in Azure Database for MySQL, but the Database Migration Service tool does not yet support this version.

In het kort vindt contoso het volgende:In brief, Contoso does the following:

  • Ze zorgen ervoor dat aan alle vereisten voor migratie wordt voldaan:They ensure that all migration prerequisites are met:

    • De MySQL-database server bron moet overeenkomen met de versie die Azure Database for MySQL ondersteunt.The MySQL database server source must match the version that Azure Database for MySQL supports. Azure Database for MySQL ondersteunt MySQL Community Edition, de InnoDB-opslag engine en migratie over de bron en het doel met dezelfde versie.Azure Database for MySQL supports MySQL Community Edition, the InnoDB storage engine, and migration across source and target with the same versions.

    • Ze scha kelen binaire logboek registratie in my.ini (Windows) of my.cnf (UNIX).They enable binary logging in my.ini (Windows) or my.cnf (Unix). Als u dit niet doet, treedt de volgende fout op in de migratie wizard:Failure to do this will cause the following error in the Migration Wizard:

      ' Fout in binaire logboek registratie."Error in binary logging. De variabele binlog_row_image heeft de waarde mini maal.Variable binlog_row_image has value 'minimal'. Wijzig de waarde in full.Please change it to 'full'. Zie voor meer informatie https://go.microsoft.com/fwlink/?linkid=873009 .For more information, see https://go.microsoft.com/fwlink/?linkid=873009."

    • De gebruiker moet de ReplicationAdmin rol hebben.The user must have the ReplicationAdmin role.

    • Migreer de database schema's zonder refererende sleutels en triggers.Migrate the database schemas without foreign keys and triggers.

  • Ze maken een virtueel particulier netwerk (VPN) dat via ExpressRoute of VPN verbinding maakt met het on-premises netwerk.They create a virtual private network (VPN) that connects via ExpressRoute or VPN to the on-premises network.

  • Ze maken een Azure Database Migration Service-exemplaar met een Premium-SKU die is verbonden met het virtuele netwerk.They create an Azure Database Migration Service instance with a Premium SKU that's connected to the virtual network.

  • Ze zorgen ervoor dat Azure Database Migration Service toegang kan krijgen tot de MySQL-data base via het virtuele netwerk.They ensure that Azure Database Migration Service can access the MySQL database via the virtual network. Dit houdt in dat alle binnenkomende poorten van Azure naar MySQL worden toegestaan op het niveau van het virtuele netwerk, de VPN van het netwerk en de computer die als host fungeert voor MySQL.This entails ensuring that all incoming ports are allowed from Azure to MySQL at the virtual network level, the network VPN, and the machine that hosts MySQL.

  • Ze voeren het Database Migration Service-hulp programma uit en doen het volgende:They run the Database Migration Service tool and then do the following:

    a.a. Maak een migratie project op basis van de Premium-SKU.Create a migration project that's based on the Premium SKU.

    Scherm opname van het MySQL-overzichts venster met het bericht dat de migratie service is gemaakt.

    Scherm opname van het MySQL-venster "nieuw migratie project".

    b.b. Voeg een bron toe (on-premises data base).Add a source (on-premises database).

    Scherm afbeelding van het deel venster ' bron Details toevoegen ' van de wizard Migratie.

    c.c. Selecteer een doel.Select a target.

    Scherm afbeelding van het deel venster doel Details van de wizard Migratie.

    d.d. Selecteer de data bases die u wilt migreren.Select the databases to migrate.

    Scherm afbeelding van de wizard Migratie naar doel databases toewijzen.

    e.e. Geavanceerde instellingen configureren.Configure advanced settings.

    Scherm opname van het deel venster migratie-instellingen van de wizard Migratie.

    f.f. Start de replicatie en los eventuele fouten op.Start the replication and resolve any errors.

    Scherm opname van het detail venster van de server.

    g.g. Voer de laatste cutover uit.Perform the final cutover.

    Scherm opname van het detail venster osTicket.

    Scherm opname van het deel venster "volledige cutover".

    Scherm afbeelding van de status tabel voor migratie activiteiten.

    h.h. Alle refererende sleutels en triggers opnieuw invoeren.Reinstate any foreign keys and triggers.

    i.i. Wijzig toepassingen om de nieuwe Data Base te gebruiken.Modify applications to use the new database.

    Scherm afbeelding van de tabel migratie activiteiten.

Stap 4b: de data base migreren (MySQL Workbench)Step 4b: Migrate the database (MySQL Workbench)

  1. De contoso-beheerders controleren de vereisten en downloadt MySQL Workbench.The Contoso admins check the prerequisites and downloads MySQL Workbench.

  2. Ze installeren MySQL Workbench voor Windows volgens de installatie-instructies.They install MySQL Workbench for Windows in accordance with the installation instructions. De computer waarop zij MySQL Workbench installeren, moet toegankelijk zijn voor de OSTICKETMYSQL-VM en Azure via internet.The machine that they install MySQL Workbench on must be accessible to the OSTICKETMYSQL VM and to Azure via the internet.

  3. In MySQL Workbench brengen ze een MySQL-verbinding met OSTICKETMYSQL tot stand.In MySQL Workbench, they create a MySQL connection to OSTICKETMYSQL.

    Scherm afbeelding van het deel venster Details van MySQL Workbench-verbinding.

  4. De data base wordt geëxporteerd osticket naar een lokaal zelfstandig bestand.They export the database as osticket to a local self-contained file.

    Scherm afbeelding van het deel venster gegevens export van MySQL Workbench.

  5. Nadat ze lokaal een back-up van de data base hebben gemaakt, maken de beheerders een verbinding met het Azure Database for MySQL-exemplaar.After they've backed up the database locally, the admins create a connection to the Azure Database for MySQL instance.

    Het deel venster ' nieuwe verbinding instellen ' in MySQL Workbench.

  6. Nu kunnen ze de data base importeren (herstellen) in het Azure Database for MySQL-exemplaar van het bestand dat zich zelf bevindt.Now, they can import (restore) the database in the Azure Database for MySQL instance from the self-contained file. Er wordt een nieuw schema osticket gemaakt voor het exemplaar.A new schema, osticket, is created for the instance.

    Scherm afbeelding van het deel venster gegevens import van MySQL Workbench.

  7. Nadat de gegevens zijn hersteld, kunnen beheerders er query's op uitvoeren met behulp van MySQL Workbench.After they've restored the data, the admins can query it by using MySQL Workbench. De gegevens worden weer gegeven in de Azure Portal.The data is displayed in the Azure portal.

    Scherm opname van de Azure Portal, waarbij de herstelde gegevens worden weer gegeven.

    Scherm afbeelding van de Blade mijn SQL-data bases met een pijl die verwijst naar de osTicket-data base.

  8. De beheerders updaten de gegevens van de Data Base op de web-apps.The admins update the database information on the web apps. In het MySQL-exemplaar worden Verbindingsreeksen geopend.On the MySQL instance, they open Connection Strings.

    Scherm afbeelding van de koppeling verbindings reeksen in het MySQL-exemplaar.

  9. In de lijst verbindingsteken reeksen worden de instellingen van de web-app geselecteerd en vervolgens gekopieerd door klikken te selecteren om te kopiëren.In the connection strings list, they select the web app settings and then copy them by selecting Click to copy.

    Scherm afbeelding van de web-app-instellingen in het MySQL-exemplaar.

  10. Ze openen een nieuw bestand in Klad blok, plakken de teken reeks erin en werken de teken reeks bij zodat deze overeenkomt met de instellingen van de osTicket-data base, het MySQL-exemplaar en de referenties.They open a new file in Notepad, paste the string into it, and update the string to match the osTicket database, MySQL instance, and credentials settings.

    Scherm afbeelding van de connection string geplakt in een Klad blok-bestand.

  11. Ze kunnen de server naam en de aanmelding controleren in het deel venster overzicht in het MySQL-exemplaar in het Azure Portal.They can verify the server name and login on the Overview pane in the MySQL instance in the Azure portal.

    Scherm opname van het deel venster Resource groep waarin de aanmeldings naam van de server en de server beheerder worden weer gegeven.

Stap 5: GitHub instellenStep 5: Set up GitHub

Contoso-beheerders maken een nieuwe persoonlijke GitHub-opslag plaats en stellen een verbinding tot stand met de osTicket-data base in Azure Database for MySQL.Contoso admins create a new private GitHub repo and set up a connection to the osTicket database in Azure Database for MySQL. Vervolgens laden ze de web-app in Azure App Service.Then, they load the web app into Azure App Service.

  1. Ze bladeren naar de open bare GitHub-opslag plaats van de osTicket-software en Fork deze naar het contoso GitHub-account.They browse to the osTicket software public GitHub repo and fork it to the Contoso GitHub account.

    Scherm opname van de GitHub opslag plaats-pagina, waarbij u de Fork-knop markeert.

  2. Nadat ze de opslag plaats hebben gesplitst, gaan ze naar de map include en vervolgens zoekt en selecteert u het bestand OST-config. php .After they fork the repo, they go to the include folder and then look for and select the ost-config.php file.

    Scherm opname van het PHP-bestand in GitHub.

  3. Het bestand wordt geopend in de browser en bewerkt het.The file opens in the browser, and they edit it.

    Scherm afbeelding van het pictogram voor het bewerken van het bestand (potlood) in GitHub.

  4. In de editor worden de database Details door de beheerders bijgewerkt, met name voor DBHOST en DBUSER .In the editor, the admins update the database details, specifically for DBHOST and DBUSER.

    Scherm opname van het deel venster bestand bewerken in GitHub.

  5. De wijzigingen worden doorgevoerd.They commit the changes.

    Scherm opname waarin de knop wijzigingen door voeren in het deel venster bewerken wordt gemarkeerd.

  6. Voor elke web-app (osTicket-eus2 en osTicket-cus) worden in de Azure Portal Toepassings instellingen geselecteerd in het linkerdeel venster en vervolgens de instellingen wijzigen.For each web app (osticket-eus2 and osticket-cus), in the Azure portal, they select Application settings on the left pane and then modify the settings.

    Scherm opname met de koppeling ' toepassings instellingen ' in de Azure Portal.

  7. Ze voeren de connection string met de naam osticket en kopiëren de teken reeks van Klad blok naar het gedeelte waarde.They enter the connection string with the name osticket, and copy the string from Notepad into the value area. In de vervolgkeuzelijst naast de reeks selecteren ze MySQL en slaan ze de instellingen op.They select MySQL in the dropdown list next to the string, and save the settings.

    Scherm opname van het deel venster verbindings reeksen, waarbij de osTicket-connection string worden gemarkeerd.

Stap 6: de web-apps configurerenStep 6: Configure the web apps

Als laatste stap in het migratie proces configureren contoso-beheerders de web-apps met de osTicket websites.As the final step in the migration process, Contoso admins configure the web apps with the osTicket websites.

  1. In de primaire web-app, osTicket-eus2, worden de implementatie optie geopend en wordt de bron vervolgens ingesteld op github.In the primary web app, osticket-eus2, they open Deployment option and then set the source to GitHub.

    Scherm opname van het deel venster implementatie optie, waarbij GitHub geselecteerd als bron.

  2. Ze selecteren de implementatieopties.They select the deployment options.

    Scherm afbeelding van de optie Details in het deel venster implementatie optie.

  3. Nadat de opties zijn ingesteld, wordt de configuratie weer gegeven als in behandeling in de Azure Portal.After they set the options, the configuration shows as Pending in the Azure portal.

    Scherm opname van het deel venster implementatie opties, waarin de site status in behandeling wordt weer gegeven.

  4. Nadat de configuratie is bijgewerkt en de osTicket-web-app is geladen van GitHub naar de docker-container die de Azure App Service uitvoert, wordt de site als actief weer gegeven.After the configuration is updated and the osTicket web app is loaded from GitHub to the Docker container that runs the Azure App Service, the site shows as Active.

    Scherm opname van het deel venster implementatie opties.

  5. Ze herhalen de voor gaande stappen voor de secundaire web-app, osTicket-cus.They repeat the preceding steps for the secondary web app, osticket-cus.

  6. Nadat de site is geconfigureerd, is deze toegankelijk via het Traffic Manager-profiel.After the site is configured, it's accessible via the Traffic Manager profile. De DNS-naam is de nieuwe locatie van de osTicket-toepassing.The DNS name is the new location of the osTicket application. Meer informatie.Learn more.

    Scherm opname van het deel venster Traffic Manager profiel waarin de DNS-naam wordt weer gegeven.

  7. Contoso wil een DNS-naam gebruiken die gemakkelijk te onthouden is.Contoso wants to use a DNS name that's easy to remember. In het deel venster nieuwe bron record maken ze een alias, CNAME en een Fully qualified domain name, osTicket.contoso.com, die verwijst naar de Traffic Manager naam in de DNS op hun domein controllers.On the New Resource Record pane, they create an alias, CNAME, and a full qualified domain name, osticket.contoso.com, which points to the Traffic Manager name in the DNS on their domain controllers.

    Scherm opname van het deel venster ' nieuwe resource record ', waarin de alias naam en een verwijzing naar Traffic Manager worden weer gegeven.

  8. Ze configureren zowel de osTicket-eus2 als de osTicket-webapps om de aangepaste hostnamen toe te staan.They configure both the osticket-eus2 and osticket-cus web apps to allow the custom host names.

    Scherm opname van het deel venster "ad-hostname", waarbij de knop valideren wordt geselecteerd.

Automatisch schalen instellenSet up autoscaling

Ten slotte stellen de contoso-beheerders automatisch schalen in voor de toepassing.Finally, the Contoso admins set up automatic scaling for the application. Automatisch schalen zorgt ervoor dat, als agents de toepassing gebruiken, de toepassings exemplaren toenemen en afnemen op basis van de bedrijfs behoeften.Automatic scaling ensures that, as agents use the application, the application instances increase and decrease according to business needs.

  1. In App Service app-svp-EUS2 worden er schaal eenheden geopend.In App Service APP-SVP-EUS2, they open Scale Unit.

  2. Ze configureren een nieuwe instelling voor automatisch schalen met één regel waarmee het aantal exemplaren wordt verhoogd met één, wanneer het CPU-gebruik voor het huidige exemplaar 10 minuten hoger is dan 70 procent.They configure a new autoscale setting with a single rule that increases the instance count by one when the CPU usage for the current instance is above 70 percent for 10 minutes.

    Scherm afbeelding van de pagina instellingen voor automatisch schalen voor de eerste regio.

  3. Ze configureren dezelfde instelling op app-svp-cus om ervoor te zorgen dat hetzelfde gedrag van toepassing is als de toepassing een failover naar de secundaire regio kan uitvoeren.They configure the same setting on APP-SVP-CUS to ensure that the same behavior applies if the application fails over to the secondary region. Het enige verschil is dat de standaard instantie wordt ingesteld op 1, omdat dit alleen voor failovers is.The only difference is that they set the default instance to 1, because this is for failovers only.

    Scherm afbeelding van de pagina instellingen voor automatisch schalen voor de tweede regio.

Opschonen na migratieClean up after migration

Wanneer de migratie is voltooid, wordt de osTicket-toepassing opnieuw gefactord zodat deze wordt uitgevoerd in een Azure App Service web-app met continue levering via een persoonlijke GitHub opslag plaats.With the migration complete, the osTicket application is refactored to run in an Azure App Service web app with continuous delivery by using a private GitHub repo. De toepassing wordt uitgevoerd in twee regio's voor meer flexibiliteit.The application runs in two regions for increased resilience. De osTicket-data base wordt in Azure Database for MySQL uitgevoerd na de migratie naar het PaaS-platform.The osTicket database runs in Azure Database for MySQL after migration to the PaaS platform.

Als u na de migratie wilt opschonen, doet contoso het volgende:To clean up after the migration, Contoso does the following:

  • De virtuele VMware-machines uit de vCenter-inventaris worden verwijderd.They remove the VMware VMs from the vCenter inventory.
  • De on-premises Vm's worden verwijderd uit de lokale back-uptaken.They remove the on-premises VMs from local backup jobs.
  • Ze werken interne documentatie bij om nieuwe locaties en IP-adressen weer te geven.They update internal documentation to show new locations and IP addresses.
  • Ze controleren alle resources die communiceren met de on-premises Vm's en voeren alle relevante instellingen of documentatie bij om de nieuwe configuratie weer te geven.They review any resources that interact with the on-premises VMs, and update any relevant settings or documentation to reflect the new configuration.
  • Ze configureren de bewaking zo dat ze naar de osticket-trafficmanager.net URL wijzen, om bij te houden dat de toepassing actief is.They reconfigure monitoring to point to the osticket-trafficmanager.net URL, to track that the application is up and running.

De implementatie controlerenReview the deployment

Met de toepassing die nu wordt uitgevoerd, moet contoso hun nieuwe infra structuur volledig operationeel maken en beveiligen.With the application now running, Contoso needs to fully operationalize and secure their new infrastructure.

BeveiligingSecurity

Het beveiligings team van Contoso bekijkt de toepassing om te bepalen of er beveiligings problemen zijn.The Contoso security team reviews the application to determine any security issues. Ze identificeren dat de communicatie tussen de osTicket-toepassing en het MySQL-data base-exemplaar niet is geconfigureerd voor SSL.They identify that the communication between the osTicket application and the MySQL database instance isn't configured for SSL. Ze doen dit allemaal om ervoor te zorgen dat het database verkeer niet kan worden gekraakt.They do all this to ensure that the database traffic can't be hacked. Meer informatie.Learn more.

Back-upsBackups

  • De osTicket-web-apps bevatten geen status gegevens en vereisen dus geen back-up.The osTicket web apps don't contain state data and thus don't require backup.
  • Het contoso-team hoeft geen back-up voor de data base te configureren.The Contoso team doesn't need to configure backup for the database. Door Azure Database for MySQL worden automatisch serverback-ups en archieven gemaakt.Azure Database for MySQL automatically creates server backups and stores. Het team heeft ervoor gekozen om geo-redundantie te gebruiken voor de-data base, zodat deze flexibel is en gereed is voor productie.The team elected to use geo-redundancy for the database, so it's resilient and production-ready. U kunt back-ups gebruiken om de server naar een bepaald tijdstip te herstellen.Backups can be used to restore their server to a point-in-time. Meer informatie.Learn more.

Licenties en kostenoptimalisatieLicensing and cost optimization

  • Er bestaan geen licentieproblemen voor de PaaS-implementatie.There are no licensing issues for the PaaS deployment.
  • Contoso maakt gebruik van Azure Cost Management en facturering om ervoor te zorgen dat ze binnen de door hun IT-leiderschap vastgestelde budgetten blijven.Contoso will use Azure Cost Management and Billing to ensure that they stay within the budgets established by their IT leadership.