Refatorar um aplicativo do Linux para várias regiões usando o Serviço de Aplicativo do Azure, o Gerenciador de Tráfego e o Banco de Dados do Azure para MySQLRefactor a Linux app to multiple regions using Azure App Service, Traffic Manager, and Azure Database for MySQL

Este artigo mostra como a empresa fictícia Contoso refatora um aplicativos de duas camadas Apache MySQL PHP (LAMP) baseado em Linux, migrando-o do local para o Azure usando o Serviço de Aplicativo do Azure com integração do GitHub e o Banco de Dados do Azure para MySQL.This article shows how the fictional company Contoso refactors a two-tier Linux-based Apache MySQL PHP (LAMP) app, migrating it from on-premises to Azure using Azure App Service with GitHub integration and Azure Database for MySQL.

O osTicket, o aplicativo de central de serviços usado neste exemplo, é fornecido como software livre.osTicket, the service desk app used in this example is provided as open source. Se você quiser usá-lo para suas próprias finalidades de teste, você pode baixá-lo do repositório osTicket no GitHub.If you'd like to use it for your own testing purposes, you can download it from the osTicket repo in GitHub.

Geradores de negóciosBusiness drivers

A equipe de liderança de TI trabalhou em conjunto com seus parceiros comerciais para entender o que eles desejam obter:The IT Leadership team has worked closely with business partners to understand what they want to achieve:

  • Resolva o crescimento dos negócios.Address business growth. A Contoso está crescendo e movendo-se para novos mercados.Contoso is growing and moving into new markets. Ela precisa de mais agentes de atendimento ao cliente.It needs additional customer service agents.
  • Escalonáve.Scale. A solução deve ser criada para que a Contoso possa adicionar mais agentes de atendimento ao cliente à medida que os negócios crescem.The solution should be built so that Contoso can add more customer service agents as the business scales.
  • Aumentar a resiliência.Improve resiliency. No passado, os problemas com o sistema afetaram apenas os usuários internos.In the past, issues with the system affected internal users only. Com o novo modelo de negócios, os usuários externos serão afetados, e a Contoso precisará ter o aplicativo em funcionamento sempre.With the new business model, external users will be affected, and Contoso need the app up and running at all times.

Metas de migraçãoMigration goals

A equipe de nuvem Contoso fixou metas para essa migração a fi de determinar o melhor método de migração:The Contoso cloud team has pinned down goals for this migration, in order to determine the best migration method:

  • O aplicativo deve ser dimensionado além da capacidade e do desempenho locais atuais.The application should scale beyond current on-premises capacity and performance. A Contoso está movendo o aplicativo para usar a colocação em escala sob demanda do Azure.Contoso is moving the application to take advantage of Azure's on-demand scaling.
  • A Contoso deseja mover a base de código do aplicativo para um pipeline de entrega contínua.Contoso wants to move the app code base to a continuous delivery pipeline. À medida que as alterações do aplicativo são enviadas para o GitHub, a Contoso deseja implantar essas alterações sem tarefas para a equipe de operações.As app changes are pushed to GitHub, Contoso wants to deploy those changes without tasks for operations staff.
  • O aplicativo deve ser resiliente com recursos para crescimento e failover.The application must be resilient with capabilities for growth and failover. A Contoso deseja implantar o aplicativo em duas regiões diferentes do Azure e configurá-lo para dimensionar automaticamente.Contoso wants to deploy the app in two different Azure regions, and set it up to scale automatically.
  • A Contoso deseja minimizar as tarefas de administração do banco de dados depois que o aplicativo é movido para a nuvem.Contoso wants to minimize database admin tasks after the app is moved to the cloud.

Design da soluçãoSolution design

Depois de fixar suas metas e requisitos, a Contoso cria e examina uma solução de implantação e identifica o processo de migração, incluindo os serviços do Azure que serão usados para a migração.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.

Arquitetura atualCurrent architecture

  • O aplicativo está em camadas em duas VMs (OSTICKETWEB e OSTICKETMYSQL).The app is tiered across two VMs (OSTICKETWEB and OSTICKETMYSQL).
  • As VMs estão localizadas em VMware ESXi host contosohost1.contoso.com (versão 6,5).The VMs are located on VMware ESXi host contosohost1.contoso.com (version 6.5).
  • O ambiente VMware é gerenciado pelo vCenter Server 6,5 (vCenter.contoso.com), em execução em uma VM.The VMware environment is managed by vCenter Server 6.5 (vcenter.contoso.com), running on a VM.
  • A Contoso tem um datacenter local (contoso-datacenter), com um controlador de domínio local (contosodc1).Contoso has an on-premises datacenter (contoso-datacenter), with an on-premises domain controller (contosodc1).

Arquitetura atual

Arquitetura propostaProposed architecture

Aqui está a arquitetura proposta:Here's the proposed architecture:

  • O aplicativo de camada da Web no OSTICKETWEB será migrado criando um Serviço de Aplicativo do Azure em duas regiões do Azure.The web tier app on OSTICKETWEB will be migrated by building an Azure App Service in two Azure regions. O Serviço de Aplicativo do Azure para Linux será implementado usando o contêiner do Docker PHP 7.0.Azure App Service for Linux will be implemented using the PHP 7.0 Docker container.
  • O código do aplicativo será movido para o GitHub e o aplicativo Web do Serviço de Aplicativo do Azure será configurado para entrega contínua com o GitHub.The app code will be moved to GitHub, and the Azure App Service web app will be configured for continuous delivery with GitHub.
  • Os Servidores de Aplicativo do Azure serão implantados na região primária (Leste dos EUA 2) e secundária (EUA Central).Azure App Servers will be deployed in both the primary (East US 2) and secondary (Central US) region.
  • O Gerenciador de Tráfego será configurado na frente dos dois aplicativos Web em ambas as regiões.Traffic Manager will be set up in front of the two web apps in both regions.
  • O Gerenciador de Tráfego será configurado no modo de prioridade para forçar o tráfego até o Leste dos EUA 2.Traffic Manager will be configured in priority mode to force the traffic through East US 2.
  • Se o Servidor de Aplicativo do Azure no Leste dos EUA 2 ficar offline, os usuários poderão acessar o aplicativo com failover no EUA Central.If the Azure App Server in East US 2 goes offline, users can access the failed over app in Central US.
  • O banco de dados do aplicativo será migrado para o serviço banco de dados do Azure para MySQL usando o serviço de migração de banco de dados do Azure (DMS).The app database will be migrated to the Azure Database for MySQL service using Azure Database Migration Service (DMS). O backup do banco de dados local será realizado localmente e ele será restaurado diretamente para o Banco de Dados do Azure para MySQL.The on-premises database will be backed up locally, and restored directly to Azure Database for MySQL.
  • O banco de dados residirá na região primária Leste dos EUA 2, na sub-rede do banco de dados (PROD-DB-EUS2) na rede de produção (VNET-PROD-EUS2):The database will reside in the primary East US 2 region, in the database subnet (PROD-DB-EUS2) in the production network (VNET-PROD-EUS2):
  • Como a carga de trabalho de produção está sendo migrada, os recursos do Azure para o aplicativo residirão no grupo de recursos de produção ContosoRG.Since they're migrating a production workload, Azure resources for the app will reside in the production resource group ContosoRG.
  • O recurso do Gerenciador de Tráfego será implantado no grupo de recursos de infraestrutura da Contoso ContosoInfraRG.The Traffic Manager resource will be deployed in Contoso's infrastructure resource group ContosoInfraRG.
  • As VMs locais no datacenter da Contoso serão descomissionadas após a migração.The on-premises VMs in the Contoso datacenter will be decommissioned after the migration is done.

Arquitetura de cenário

Processo de migraçãoMigration process

A Contoso concluirá o processo de migração da seguinte maneira:Contoso will complete the migration process as follows:

  1. Como primeira etapa, os administradores da Contoso configuram a infraestrutura do Azure, incluindo o serviço de Azure App de provisionamento, a configuração do Gerenciador de tráfego e o provisionamento de uma instância do banco de dados do Azure para MySQL.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. Depois de preparar a infraestrutura do Azure, elas migram o banco de dados usando o serviço de migração de banco de dados do Azure (DMS).After preparing the Azure infrastructure, they migrate the database using Azure Database Migration Service (DMS).
  3. Depois que o banco de dados estiver em execução no Azure, eles configurarão um repositório privado do GitHub para o Serviço de Aplicativo do Azure com entrega contínua e o carregarão com o aplicativo osTicket.After the database is running in Azure, they up a GitHub private repository for Azure App Service with continuous delivery, and load it with the osTicket app.
  4. No portal do Azure, ela carrega o aplicativo do GitHub para o contêiner do Docker que está executando o Serviço de Aplicativo do Azure.In the Azure portal, they load the app from GitHub to the Docker container running Azure App Service.
  5. Ela ajusta as configurações de DNS e configura a colocação em escala automática para o aplicativo.They tweak DNS settings, and configure autoscaling for the app.

Processo de migração

Serviços do AzureAzure services

ServiçoService DescriçãoDescription CustoCost
Serviço de Aplicativo do AzureAzure App Service O serviço executa e dimensiona aplicativos usando o serviço PaaS do Azure para sites.The service runs and scales applications using the Azure PaaS service for websites. O preço é baseado no tamanho das instâncias e nos recursos necessários.Pricing is based on the size of the instances, and the features required. Saiba mais.Learn more.
Gerenciador de TráfegoTraffic Manager Um balanceador carga que usa o DNS para direcionar os usuários ao Azure ou a sites e serviços externos.A load balancer that uses DNS to direct users to Azure, or external websites and services. O preço é calculado com base no número de consultas DNS recebidas e no número de pontos de extremidade monitorados.Pricing is based on the number of DNS queries received, and the number of monitored endpoints. Saiba mais.Learn more.
Serviço de Migração de Banco de Dados do AzureAzure Database Migration Service O Serviço de Migração de Banco de Dados do Azure permite a migração perfeita de várias fontes de banco de dados para as plataformas de dados do Azure com tempo de inatividade mínimo.The Azure Database Migration Service enables seamless migration from multiple database sources to Azure data platforms with minimal downtime. Saiba mais sobre regiões com suporte e preços do serviço de migração de banco de dados.Learn about supported regions and Database Migration Service pricing.
Banco de Dados do Azure para MySQLAzure Database for MySQL O banco de dados baseia-se no mecanismo do servidor MySQL de software livre.The database is based on the open-source MySQL Server engine. Ele fornece um banco de dados MySQL da Comunidade pronta para a empresa totalmente gerenciado para desenvolvimento e implantação de aplicativos.It provides a fully managed, enterprise-ready community MySQL database for app development and deployment. O preço é calculado com base nos requisitos de computação, de armazenamento e de backup.Pricing based on compute, storage, and backup requirements. Saiba mais.Learn more.

Pré-requisitosPrerequisites

Aqui está o que a Contoso precisa para executar esse cenário.Here's what Contoso needs to run this scenario.

RequisitosRequirements DetalhesDetails
Assinatura do AzureAzure subscription A Contoso criou assinaturas anteriormente nesta série de artigos.Contoso created subscriptions earlier in this article series. Se você não tiver uma assinatura do Azure, crie uma conta gratuita.If you don't have an Azure subscription, create a free account.

Se você criar uma conta gratuita, será o administrador da assinatura e poderá executar todas as ações.If you create a free account, you're the administrator of your subscription and can perform all actions.

Se você usar uma assinatura existente e não for o administrador, será necessário trabalhar com o administrador para receber permissões de Proprietário ou de Colaborador.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.
Infraestrutura do AzureAzure infrastructure A Contoso configura a infraestrutura do Azure conforme descrito em Infraestrutura do Azure para migração.Contoso set up their Azure infrastructure as described in Azure infrastructure for migration.

Etapas do cenárioScenario steps

É assim que a Contoso concluirá a migração:Here's how Contoso will complete the migration:

  • Etapa 1: provisionar Azure App serviço.Step 1: Provision Azure App Service. Os administradores da Contoso provisionarão aplicativos Web nas regiões primárias e secundárias.Contoso admins will provision web apps in the primary and secondary regions.
  • Etapa 2: configurar o Gerenciador de tráfego.Step 2: Set up Traffic Manager. Eles configuram o Gerenciador de Tráfego na frente dos aplicativos Web para balanceamento de carga e roteamento de tráfego.They set up Traffic Manager in front of the web apps, for routing and load balancing traffic.
  • Etapa 3: provisionar MySQL.Step 3: Provision MySQL. No Azure, eles provisionam uma instância do Banco de Dados do Azure para MySQL.In Azure, they provision an instance of Azure Database for MySQL.
  • Etapa 4: migre o banco de dados.Step 4: Migrate the database. Migram o banco de dados usando o serviço de migração de banco de dados do Azure (DMS).They migrate the database using Azure Database Migration Service (DMS).
  • Etapa 5: configurar o GitHub.Step 5: Set up GitHub. Irá configurar um repositório do GitHub local para o código/sites da Web do aplicativo.They set up a local GitHub repository for the app web sites/code.
  • Etapa 6: implantar os aplicativos Web.Step 6: Deploy the web apps. Irá implantar os aplicativos web do GitHub.They deploy the web apps from GitHub.

Etapa 1: provisionar Azure App serviçoStep 1: Provision Azure App Service

Os administradores da Contoso provisionam dois aplicativos Web (um em cada região) usando o Serviço de Aplicativo do Azure.Contoso admins provision two web apps (one in each region) using Azure App Service.

  1. Eles criam um recurso de aplicativo Web na região principal leste dos EUA 2 (osTicket-eus2) do Azure Marketplace.They create a web App resource in the primary East US 2 region (osticket-eus2) from the Azure Marketplace.

  2. Ela coloca o recurso no grupo de recursos de produção ContosoRG.They put the resource in the production resource group ContosoRG.

    Aplicativo do Azure

  3. Ela cria um novo plano do Serviço de Aplicativo na região primária (APP-SVP-EUS2) usando o tamanho padrão.They create a new App Service plan in the primary region (APP-SVP-EUS2), using the standard size.

    Aplicativo do Azure

  4. Eles selecionam um sistema operacional Linux com a pilha de runtime do PHP 7.0, que é um contêiner do Docker.They select a Linux OS with PHP 7.0 runtime stack, which is a Docker container.

    Aplicativo do Azure

  5. Eles criam um segundo aplicativo Web (osticket-cus) e um plano do Serviço de Aplicativo do Azure para a região EUA Central.They create a second web app (osticket-cus), and Azure App Service plan for the Central US region.

    Aplicativo do Azure

Precisa de mais ajuda?Need more help?

Etapa 2: Configurar o Gerenciador de TráfegoStep 2: Set up Traffic Manager

Os administradores da Contoso configuram o Gerenciador de Tráfego para direcionar solicitações da Web de entrada para os aplicativos Web em execução na camada da Web do osTicket.Contoso admins set up Traffic Manager to direct inbound web requests to the web apps running on the osTicket web tier.

  1. Eles criam um recurso do Gerenciador de Tráfego (osticket.trafficmanager.net) do Azure Marketplace.They create a Traffic Manager resource (osticket.trafficmanager.net) from the Azure Marketplace. Ela usa o roteamento prioritário para que Leste dos EUA 2 esteja no site primário.They use priority routing so that East US 2 is the primary site. Ela coloca o recurso no grupo de recursos de infraestrutura (ContosoInfraRG).They place the resource in their infrastructure resource group (ContosoInfraRG). Observe que o Gerenciador de Tráfego é global, e não associado a uma localização específica.Note that Traffic Manager is global and not bound to a specific location.

    Gerenciador de Tráfego

  2. Agora, eles configuram o Gerenciador de Tráfego com pontos de extremidade.Now, they configure Traffic Manager with endpoints. Eles adicionam o aplicativo Web do Leste dos EUA 2 como o site primário (osticket-eus2) e o aplicativo EUA Central como secundário (osticket-cus).They add the East US 2 web app as the primary site (osticket-eus2), and the Central US app as secondary (osticket-cus).

    Gerenciador de Tráfego

  3. Após adicionar os pontos de extremidade, ela poderá monitorá-los.After adding the endpoints, they can monitor them.

    Gerenciador de Tráfego

Precisa de mais ajuda?Need more help?

Etapa 3: Provisionar o Banco de Dados do Azure para MySQLStep 3: Provision Azure Database for MySQL

Os administradores da Contoso provisionam uma instância do banco de dados MySQL na região Leste dos EUA 2 primária.Contoso admins provision a MySQL database instance in the primary East US 2 region.

  1. No portal do Azure, ela cria um recurso de Banco de Dados do Azure para MySQL.In the Azure portal, they create an Azure Database for MySQL resource.

    MySQL

  2. Ela adiciona o nome contosoosticket ao banco de dados do Azure.They add the name contosoosticket for the Azure database. Ela adiciona o banco de dados ao grupo de recursos de produção ContosoRG e especifica credenciais para ele.They add the database to the production resource group ContosoRG, and specify credentials for it.

  3. O banco de dados MySQL local é a versão 5.7 e, portanto, ela escolhe essa versão por questões de compatibilidade.The on-premises MySQL database is version 5.7, so they select this version for compatibility. Ela usa os tamanhos padrão que correspondem aos requisitos de banco de dados.They use the default sizes, which match their database requirements.

    MySQL

  4. Nas Opções de Redundância de Backup, eles escolhem usar Com Redundância Geográfica.For Backup Redundancy Options, they select to use Geo-Redundant. Essa opção permite restaurar o banco de dados na região secundária Centro dos EUA em caso de interrupção.This option allows them to restore the database in their secondary Central US region if an outage occurs. Ela só pode configurar essa opção quando provisiona o banco de dados.They can only configure this option when they provision the database.

    Redundância

  5. Eles configuram a segurança da conexão.They set up connection security. No banco de dados > Segurança da conexão, ela configurara regras de firewall para permitir que o banco de dados acesse os serviços do Azure.In the database > Connection Security, they set up Firewall rules to allow the database to access Azure services.

  6. Ela adiciona o endereço IP do cliente da estação de trabalho local para os endereços IP inicial e final.They add the local workstation client IP address to the start and end IP addresses. Isso permite que os aplicativos Web acessem o banco de dados MySQL, juntamente com o cliente do banco de dados que está realizando a migração.This allows the web apps to access the MySQL database, along with the database client that's performing the migration.

    MySQL

Etapa 4: Migrar o banco de dadosStep 4: Migrate the database

Há várias maneiras de mover o banco de dados MySQL.There are several ways to move the MySQL database. Cada opção exige que você crie uma instância do Azure DB para MySQL para o destino.Each option requires you to create an Azure DB for MySQL instance for the target. Depois de criado, você pode executar a migração usando dois caminhos:Once created, you can perform the migration using two paths:

  • 4a: serviço de migração de banco de dados do Azure4a: Azure Database Migration Service
  • 4B: backup e restauração do MySQL Workbench4b: MySQL Workbench backup and restore

Etapa 4a: migrar o banco de dados (serviço de migração de banco de dados do Azure)Step 4a: Migrate the database (Azure Database Migration Service)

Os administradores da Contoso migram o banco de dados usando os serviços de migração de banco de dados do Azure usando o tutorial de migraçãopasso a passo.Contoso admins migrate the database using Azure Database Migration Services using the step-by-step migration tutorial. Eles podem executar migrações online, offline e híbrida (visualização) usando o MySQL 5,6 ou 5,7.They can perform online, offline, and hybrid (preview) migrations using MySQL 5.6 or 5.7.

Note

O MySQL 8,0 tem suporte no banco de dados do Azure para MySQL, mas a ferramenta DMS ainda não dá suporte a essa versão.MySQL 8.0 is supported in Azure Database for MySQL, but the DMS tool does not yet support this version.

Como um resumo, você deve executar o seguinte:As a summary, you must perform the following:

  • Verifique se todos os pré-requisitos de migração foram atendidos:Ensure all migration prerequisites are met:
    • A origem do MySQL Server deve corresponder à versão com suporte do banco de dados do Azure para MySQL.MySQL server source must match the version that Azure Database for MySQL supports. O banco de dados do Azure para MySQL dá suporte ao MySQL Community Edition, mecanismo de InnoDB e migração na origem e no destino com as mesmas versões.Azure Database for MySQL supports - MySQL community edition, InnoDB engine and migration across source and target with same versions.
    • Habilite o log binário em meu. ini (Windows) ou My. cnf (Unix).Enable binary logging in my.ini (Windows) or my.cnf (Unix). A falha de fazer isso causará Error in binary logging. Variable binlog_row_image has value 'minimal'. Please change it to 'full'. For more information, see https://go.microsoft.com/fwlink/?linkid=873009 durante o assistente de migração.Failure to do this will cause Error in binary logging. Variable binlog_row_image has value 'minimal'. Please change it to 'full'. For more information, see https://go.microsoft.com/fwlink/?linkid=873009 during the migration wizard.
    • O usuário deve ter a ReplicationAdmin função.The user must have ReplicationAdmin role.
    • Migre os esquemas de banco de dados sem chaves e gatilhos estrangeiros.Migrate the database schemas without foreign keys and triggers.
  • Crie uma rede virtual que se conecta via ExpressRoute ou VPN à sua rede local.Create a virtual network that connects via ExpressRoute or VPN to your on-premises network.
  • Crie um serviço de migração de banco de dados do Azure com uma Premium SKU que esteja conectada à VNet.Create an Azure Database Migration Service with a Premium SKU that is connected to the VNet.
  • Verifique se o serviço de migração de banco de dados do Azure pode acessar o banco de dados MySQL por meio da rede virtual.Ensure that the Azure Database Migration Service can access the MySQL database via the virtual network. Isso envolveria a garantia de que todas as portas de entrada sejam permitidas do Azure para o MySQL no nível da rede virtual, da VPN de rede e da máquina que hospeda o MySQL.This would entail 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.
  • Execute a ferramenta de serviço de migração de banco de dados do Azure:Run the Azure Database Migration Service Tool:
    • Crie um projeto de migração baseado na SKU Premium.Create a migration project based on the Premium SKU.

      MySQL

      MySQL

    • Adicione uma origem (banco de dados local).Add a source (on-premises database).

      MySQL

    • Selecione um destino.Select a target.

      MySQL

    • Selecione os bancos de dados a serem migrados.Select the database(s) to migrate.

      MySQL

    • Definir configurações avançadas.Configure advanced settings.

      MySQL

    • Inicie a replicação e resolva os erros.Start the replication and resolve any errors.

      MySQL

    • Execute a transferência final.Perform the final cutover.

      MySQL

      MySQL

      MySQL

    • Reaplicar quaisquer chaves e gatilhos estrangeiros.Reinstate any foreign keys and triggers.

    • Modifique os aplicativos para usar o novo banco de dados.Modify applications to use the new database.

      MySQL

Etapa 4B: migrar o banco de dados (MySQL Workbench)Step 4b: Migrate the database (MySQL Workbench)

  1. Eles verificam os pré-requisitos e downloads do MySQL Workbench.They check the prerequisites and downloads MySQL Workbench.

  2. Ela instala o Workbench do MySQL para Windows de acordo com as instruções de instalação.They install MySQL Workbench for Windows in accordance with the installation instructions. O computador no qual ela instala deverá ser acessível para a VM OSTICKETMYSQL e para o Azure por meio da Internet.The machine on which they install must be accessible to the OSTICKETMYSQL VM, and Azure via the internet.

  3. No Workbench do MySQL, ela cria uma conexão MySQL para OSTICKETMYSQL.In MySQL Workbench, they create a MySQL connection to OSTICKETMYSQL.

    Workbench do MySQL

  4. Ela exporta o banco de dados como osticket para um arquivo autossuficiente local.They export the database as osticket, to a local self-contained file.

    Workbench do MySQL

  5. Depois que o backup do banco de dados foi feito localmente, ela cria uma conexão com a instância do Banco de Dados do Azure para MySQL.After the database has been backed up locally, they create a connection to the Azure Database for MySQL instance.

    Workbench do MySQL

  6. Agora eles podem importar (restaurar) o banco de dados na instância do Banco de Dados do Azure para MySQL usando o arquivo autossuficiente.Now, they can import (restore) the database in the Azure Database for MySQL instance, from the self-contained file. Um novo esquema (osticket) é criado para a instância.A new schema (osticket) is created for the instance.

    Workbench do MySQL

  7. Após a restauração dos dados, ele poderá ser consultado usando o Workbench e será exibido no portal do Azure.After data is restored, it can be queried using Workbench, and appears in the Azure portal.

    Workbench do MySQL

    Workbench do MySQL

  8. Por fim, eles precisam atualizar as informações de banco de dados nos aplicativos Web.Finally, they need to update the database information on the web apps. Na instância do MySQL, ela abre Cadeias de conexão.On the MySQL instance, they open Connection Strings.

    Workbench do MySQL

  9. Na lista de cadeias de caracteres, eles localizam as configurações do aplicativo Web e clicam para copiá-las.In the strings list, they locate the web app settings, and select to copy them.

    Workbench do MySQL

  10. Ela abre uma janela do Bloco de Notas e cola a cadeia de caracteres em um novo arquivo e o atualiza para corresponder ao banco de dados do osticket, à instância do MySQL e às configurações das credenciais.They open a Notepad window and paste the string into a new file, and update it to match the osticket database, MySQL instance, and credentials settings.

    Workbench do MySQL

  11. Eles podem verificar o nome do servidor e o logon em Visão Geral na instância do MySQL no portal do Azure.They can verify the server name and login from Overview in the MySQL instance in the Azure portal.

    Workbench do MySQL

Etapa 5: Configurar o GitHubStep 5: Set up GitHub

Os administradores da Contoso criam um novo repositório GitHub privado e configuram uma conexão com o banco de dados osTicket no banco de dados do Azure para MySQL.Contoso admins create a new private GitHub repo and set up a connection to the osTicket database in Azure Database for MySQL. Em seguida, eles carregam o aplicativo Web no Serviço de Aplicativo do Azure.Then, they load the web app into Azure App Service.

  1. Ela navega até o repositório GitHub público do software OsTicket e cria o fork dele na conta do GitHub da Contoso.They browse to the OsTicket software public GitHub repo, and fork it to the Contoso GitHub account.

    GitHub

  2. Após criar o fork, ela navega até a pasta incluir e localiza o arquivo ost-config.php.After forking, they navigate to the include folder, and find the ost-config.php file.

    GitHub

  3. O arquivo é aberto no navegador e ela o edita.The file opens in the browser and they edit it.

    GitHub

  4. No editor, eles atualizam os detalhes do banco de dados, especificamente para DBHOST e DBUSER.In the editor, they update the database details, specifically for DBHOST and DBUSER.

    GitHub

  5. Depois, ela confirma as alterações.Then they commit the changes.

    GitHub

  6. Para cada aplicativo Web (osticket-eus2 e osticket-cus), eles modificam as Configurações de aplicativo no portal do Azure.For each web app (osticket-eus2 and osticket-cus), they modify the Application settings in the Azure portal.

    GitHub

  7. Ela insere a cadeia de conexão com o nome osticket e copia a cadeia de caracteres do bloco de notas para a área de valor.They enter the connection string with the name osticket, and copy the string from notepad into the value area. Ela seleciona MySQL na lista suspensa ao lado da cadeia de caracteres e salva as configurações.They select MySQL in the dropdown list next to the string, and save the settings.

    GitHub

Etapa 6: configurar os aplicativos WebStep 6: Configure the web apps

Como a etapa final do processo de migração, os administradores da Contoso configuram os aplicativos Web com os sites do osTicket.As the final step in the migration process, Contoso admins configure the web apps with the osTicket web sites.

  1. No aplicativo Web primário (osTicket-eus2), eles abrem a opção de implantação e definem a origem como GitHub.In the primary web app (osticket-eus2), they open Deployment option and set the source to GitHub.

    Configurar aplicativo

  2. Ela seleciona as opções de implantação.They select the deployment options.

    Configurar aplicativo

  3. Após definir as opções, a configuração é exibida como pendente no portal do Azure.After setting the options, the configuration shows as pending in the Azure portal.

    Configurar aplicativo

  4. Após a configuração ser atualizada e o aplicativo Web osTicket ser carregado do GitHub para o contêiner do Docker que está executando o Serviço de Aplicativo do Azure, o site será exibido como Ativo.After the configuration is updated and the osTicket web app is loaded from GitHub to the Docket container running the Azure App Service, the site shows as Active.

    Configurar aplicativo

  5. Eles, então, repetem as etapas acima para o aplicativo Web secundário (osticket-cus).They repeat the above steps for the secondary web app (osticket-cus).

  6. Após a configuração do site, ele estará acessível por meio do perfil do Gerenciador de Tráfego.After the site is configured, it's accessible via the Traffic Manager profile. O nome DNS é o novo local do aplicativo osTicket.The DNS name is the new location of the osTicket app. Saiba mais.Learn more.

    Configurar aplicativo

  7. A Contoso deseja um nome DNS que seja fácil de lembrar.Contoso wants a DNS name that's easy to remember. Eles criam um registro de alias (CNAME) osticket.contoso.com que aponta para o nome do Gerenciador de tráfego, no DNS em seus controladores de domínio.They create an alias record (CNAME) osticket.contoso.com that points to the Traffic Manager name, in the DNS on their domain controllers.

    Configurar aplicativo

  8. Eles configuram os aplicativos Web osTicket-eus2 e osTicket-cus para permitir os nomes de host personalizados.They configure both the osticket-eus2 and osticket-cus web apps to allow the custom host names.

    Configurar aplicativo

Configurar o dimensionamento automáticoSet up autoscaling

Por fim, ela configura a colocação em escala automática do aplicativo.Finally, they set up automatic scaling for the app. Isso garante que, à medida que os agentes usam o aplicativo, suas instâncias aumentam e diminuem de acordo com as necessidades de negócios.This ensures that as agents use the app, the app instances increase and decrease according to business needs.

  1. No Serviço de Aplicativo APP-SRV-EUS2, eles abrem a Unidade de Escala.In App Service APP-SRV-EUS2, they open Scale Unit.

  2. Ela configurará uma nova configuração de dimensionamento automático com uma única regra que aumentará a contagem de instâncias em um quando o percentual da CPU para a instância atual estiver acima de 70% durante 10 minutos.They configure a new autoscale setting with a single rule that increases the instance count by one when the CPU percentage for the current instance is above 70% for 10 minutes.

    Autoscale

  3. Ela configura a mesma configuração em APP-SRV-CUS para garantir que o mesmo comportamento seja aplicado se o aplicativo realizar failover na região secundária.They configure the same setting on APP-SRV-CUS to ensure that the same behavior applies if the app fails over to the secondary region. A única diferença é que eles definem a instância padrão como 1, pois isso é apenas para failovers.The only difference is that they set the default instance to 1 since this is for failovers only.

    Autoscale

Limpar após a migraçãoClean up after migration

Com a migração completa, o aplicativo osTicket é refatorado para ser executado em um aplicativo Web do Serviço de Aplicativo do Azure com entrega contínua usando um repositório GitHub privado.With migration complete, the osTicket app is refactored to running in an Azure App Service web app with continuous delivery using a private GitHub repo. O aplicativo está em execução em duas regiões para ter maior resiliência.The app's running in two regions for increased resilience. O banco de dados do osTicket está em execução no banco de dados do Azure para MySQL após migração para a plataforma PaaS.The osTicket database is running in Azure database for MySQL after migration to the PaaS platform.

Para a limpeza, a contoso precisa fazer o seguinte:For cleanup, Contoso needs to do the following:

  • Remover as VMs VMware do inventário do vCenter.Remove the VMware VMs from the vCenter inventory.
  • Remover as VMs locais de trabalhos de backup locais.Remove the on-premises VMs from local backup jobs.
  • Atualizar a documentação interna para mostrar novos locais e endereços IP.Update internal documentation show new locations and IP addresses.
  • Examinar todos os recursos que interagem com as VMs locais e atualizar as configurações ou documentação relevantes para refletir a nova configuração.Review any resources that interact with the on-premises VMs, and update any relevant settings or documentation to reflect the new configuration.
  • Reconfigure o monitoramento para apontar para a URL osticket-trafficmanager.net, para acompanhar se o aplicativo está em funcionamento.Reconfigure monitoring to point at the osticket-trafficmanager.net URL, to track that the app is up and running.

Revisar a implantaçãoReview the deployment

Com o aplicativo em execução, a Contoso precisa operacionalizar e proteger totalmente sua infraestrutura de novo.With the app now running, Contoso need to fully operationalize and secure their new infrastructure.

SegurançaSecurity

A equipe de segurança da Contoso examinou o aplicativo para determinar quaisquer problemas de segurança.The Contoso security team reviewed the app to determine any security issues. Ela identificou que a comunicação entre o aplicativo osTicket e que a instância de banco de dados do MySQL não está configurada para SSL.They identified that the communication between the osTicket app and the MySQL database instance isn't configured for SSL. Ela precisa fazer isso para fazer com que o tráfego de banco de dados não possa ser atacado.They will need to do this to ensure that database traffic can't be hacked. Saiba mais.Learn more.

BackupsBackups

  • Os aplicativos Web osTicket não contêm dados de estado e, portanto, não exigem backup.The osTicket web apps don't contain state data and thus don't require backup.
  • Eles não precisam configurar o backup do banco de dados.They don't need to configure backup for the database. O Banco de Dados do Azure para MySQL cria backups do servidor e o armazena automaticamente.Azure Database for MySQL automatically creates server backups and stores. Ela escolheu usar a redundância geográfica para o banco de dados e, portanto, ele é resiliente e está pronto para a produção.They selected to use geo-redundancy for the database, so it's resilient and production-ready. Os backups podem ser usados para restaurar o servidor pontualmente.Backups can be used to restore your server to a point-in-time. Saiba mais.Learn more.

Licenciamento e otimização de custoLicensing and cost optimization

  • Não há nenhum problema de licenciamento para a implantação PaaS.There are no licensing issues for the PaaS deployment.
  • A Contoso usará o Gerenciamento de custos do Azure para garantir que eles permaneçam dentro dos Orçamentos estabelecidos por sua liderança em ti.Contoso will use Azure Cost Management to ensure they stay within budgets established by their IT leadership.