Migrar sua solução de comércio eletrônico para o Azure
Introdução
A mudança de uma solução de comércio eletrônico existente para a nuvem traz vários benefícios para a empresa: ela viabiliza a escalabilidade, oferece aos clientes acessibilidade 24 horas por dia, 7 dias por semana e facilita a integração com serviços de nuvem. Mas, primeiro, a migração de uma solução de comércio eletrônico para a nuvem tem algumas exigências que precisam ser levadas em conta pelo tomador de decisões. Este documento explica o escopo de uma migração para o Azure com o objetivo de esclarecer as opções disponíveis. A primeira fase começa com os profissionais de TI movendo os componentes para a nuvem. Uma vez que você estiver no Azure, descreveremos as etapas que a equipe de comércio eletrônico pode seguir para aumentar o ROI (retorno sobre o investimento) e aproveitar a nuvem.
Na encruzilhada
Embora as transações de comércio eletrônico representem apenas uma parte das vendas totais de varejo, o canal tem se expandido constantemente ao longo dos anos. Em 2024, as vendas do e-commerce representam um quinto das vendas totais do varejo, ante 8,6% em 2016 ( fonte). Com a evolução do comércio eletrônico e o advento da computação em nuvem, os varejistas estão em uma encruzilhada. É necessário fazer escolhas. Eles podem prever seu modelo de negócios com novos recursos viabilizados pela tecnologia em constante evolução e podem planejar sua modernização considerando sua capacidade atual.
Melhorando a jornada do cliente
O comércio eletrônico, que é voltado principalmente para a jornada dos clientes, possui muitos atributos diferentes. Esses atributos podem ser agrupados em quatro áreas principais: descoberta, avaliação, venda e pós-venda.
O comportamento do cliente é capturado em forma de dados. O funil de compra é uma coleção de pontos de conexão com aplicativos usados para exibir dados de produto, transações, inventário, envios, cumprimento de pedidos, perfil do cliente, carrinho de compras e recomendações de produtos, por exemplo.
Uma empresa de varejo típica se baseia em uma grande coleção de soluções de software que vão desde aplicativos voltados para o cliente até aplicativos de base. O desenho a seguir demonstra as funcionalidades presentes em uma empresa típica de varejo.
A nuvem é a oportunidade de mudar como uma organização obtém, usa e gerencia tecnologias. Outros benefícios incluem: redução dos custos de manutenção de datacenters, maior confiabilidade e desempenho e flexibilidade para adicionar outros serviços. Nesse caso, vamos examinar um caminho que uma empresa de varejo pode fazer para migrar sua infraestrutura existente para o Azure. Também aproveitamos o novo ambiente usando uma abordagem em fases de hospedar novamente, refatorar e recompilar. Embora muitas organizações possam seguir esse caminho na ordem para sua modernização, na maioria dos casos as organizações podem usar qualquer fase como seu ponto de partida. As organizações podem optar por não hospedar seus aplicativos atuais no Azure e passar diretamente a refatorar ou até mesmo recompilar. Essa decisão depende exclusivamente do aplicativo e da organização para atender às suas necessidades de modernização da melhor forma possível.
Hospedar novamente
Também conhecido como “lift-and-shift”, essa fase envolve migrar os servidores físicos e VMs para a nuvem no estado em que se encontram. Ao simplesmente deslocar seu atual ambiente de servidor diretamente para o IaaS, você se beneficia com a economia de custos, a segurança e uma maior confiabilidade. A economia ocorre pelo uso de técnicas como executar cargas de trabalho corretamente em VMs de tamanhos adequados. Hoje em dia, os recursos de VMs e computadores físicos locais normalmente ultrapassam as necessidades diárias dos varejistas. As VMs precisam conseguir lidar com picos de negócios sazonais que ocorrem apenas algumas vezes por ano. Portanto, você está pagando por recursos não utilizados durante a temporada fora de pico. Com o Azure, você escolhe o tamanho de VM certo com base nas demandas do ciclo de negócios atual.
Para hospedar novamente no Azure, há três fases:
- Análise: identifique e faça o inventário de recursos locais, como aplicativos, cargas de trabalho, rede e segurança. No final dessa fase, você obtém a documentação completa do sistema existente.
- Migração: mova cada subsistema local para o Azure. Durante essa fase, você usará o Azure como uma extensão do seu datacenter com aplicativos que continuarão a se comunicar.
- Otimização: conforme os sistemas vão se mudando para o Azure, verifique se tudo está devidamente dimensionado. Se o ambiente mostra que há um número excessivo de recursos para algumas VMs, altere o tipo VM para um que tenha uma combinação mais adequada de CPU, memória e armazenamento local.
Analisar
Siga estas etapas:
- Liste os servidores e aplicativos locais. Esse processo depende de um agente ou ferramenta de gerenciamento para reunir metadados sobre os servidores, os aplicativos que são executados nos servidores, o uso atual do servidor e como os servidores e seus aplicativos estão configurados. O resultado é um relatório de todos os servidores e aplicativos no ambiente.
- Identifique as dependências. Você pode usar as ferramentas para identificar quais servidores conversam entre si e aplicativos que se comunicam entre si. O resultado é um ou mais mapas de todos os aplicativos e cargas de trabalho. Esses mapas entram no planejamento de migração.
- Analise as configurações. A meta é saber os tipos de VM de que você precisa quando já está em execução no Azure. O resultado é um relatório sobre todos os aplicativos que podem ser movidos para o Azure. Eles também pode ser classificados como:
- Sem modificações
- Modificações básicas, como alterações de nomenclatura
- Pequenas modificações, como ligeiras alterações no código
- Cargas de trabalho incompatíveis que exigem um esforço extra para a mudança
- Crie seu orçamento. Agora você tem uma lista que enumera cada CPU, memória e afins, e os requisitos para cada aplicativo. Coloque essas cargas de trabalho em VMs com tamanhos adequados. As plataforma de nuvem cobram custos com base no uso. Existem ferramentas para mapear suas necessidades reais de tamanhos de VM. Se você estiver migrando VMs do Windows ou do SQL Server, também deverá analisar o Benefício Híbrido do Azure, que reduz as despesas no Azure.
A Microsoft oferece várias ferramentas para analisar e catalogar seus sistemas. Se você executar o VMware, poderá usar as Migrações para Azure para auxiliar na descoberta e na avaliação. A ferramenta identifica as máquinas que podem ser movidas para o Azure, recomenda o tipo de VM a ser executada e calcula o custo da carga de trabalho. Para ambientes Hyper-V, use o Planejador de Implantações do Azure Site Recovery. Para grandes migrações em que você precisa mover centenas de VMs ou mais, é possível trabalhar com um parceiro de migração do Azure. Esses parceiros têm o conhecimento e a experiência necessários para mover suas cargas de trabalho.
Migrações
Comece a planejar quais serviços devem ser movidos para a nuvem e em que ordem. Como esse estágio envolve mover cargas de trabalho, siga esta ordem:
- Crie a rede.
- Incorpore um sistema de identidade (Microsoft Entra ID).
- Provisione as partes de armazenamento no Azure.
Durante a migração, o ambiente do Azure é uma extensão de sua rede local. Você pode conectar as redes lógicas à Rede Virtual do Azure. Você pode optar por usar o Azure ExpressRoute para manter a comunicação de rede entre sua rede e o Azure em uma conexão privada que nunca alcança a Internet. Você também pode usar uma VPN site a site em que um Gateway de VPN do Azure se comunica com o dispositivo VPN local e todo o tráfego é enviado com segurança por meio de comunicação criptografada entre o Azure e sua rede. Publicamos uma arquitetura de referência que detalha como configurar uma rede híbrida aqui.
Depois que a rede é configurada, planeje a continuidade dos negócios. Uma recomendação é usar a replicação em tempo real para mover seus dados locais para a nuvem e garantir que a nuvem e os dados existentes sejam os mesmos. As lojas de comércio eletrônico nunca fecham; a duplicação permite alternar do local para o Azure com o mínimo de impacto nos clientes.
Começar a mover dados, aplicativos e servidores relacionados para o Azure. Muitas empresas usam o serviço Azure Site Recovery para migrar para o Azure. O serviço se destina à BCDR (continuidade dos negócios e recuperação de desastres). Isso é perfeito para uma migração do local para o Azure. Sua equipe de implementação pode ler os detalhes de como migrar VMs locais e servidores físicos para o Azure aqui.
Depois que um subsistema for movido para o Azure, faça testes para ver se tudo funciona conforme o esperado. Depois que todos os problemas forem resolvidos, mova as cargas de trabalho para o Azure.
Otimizar
Neste momento, você continuará a monitorar o ambiente e a mudar as opções de computação subjacentes para se adequarem às cargas de trabalho à medida que o ambiente é alterado. Quem monitorar a integridade do ambiente deverá verificar o grau de utilização de cada recurso. O objetivo deve ser de 75% a 90% de utilização na maioria das VMs. Em VMs com utilização excepcionalmente baixa, considere enchê-las com mais aplicativos ou migrar para VMs com custo mais baixo no Azure que mantenham o mesmo nível de desempenho.
O Azure fornece ferramentas também para otimizar o ambiente. O Assistente do Azure monitora os componentes do ambiente e fornece recomendações personalizadas com base nas melhores práticas. As recomendações ajudam a melhorar o desempenho, a segurança e a disponibilidade dos recursos utilizados em seus aplicativos. O portal do Azure também expõe informações sobre a integridade de seus aplicativos. Suas VMs devem aproveitar as extensões de máquina virtual do Azure para Linux e Windows. As extensões oferecem configuração pós-implantação, antivírus, monitoramento de aplicativo e muito mais. Você também pode tirar proveito de muitos outros serviços do Azure para diagnosticar redes, indicar o uso do serviço e enviar alertas, como o Observador de Rede, o Mapa do Serviço, o Application Insights e o Log Analytics.
Embora partes da organização estejam otimizando o sistema já no Azure, as equipes de desenvolvimento podem começar a passar para a fase de pós-migração, que é a refatoração.
Refatorar
Com a migração concluída, seu aplicativo de comércio eletrônico pode começar a usufruir de seu novo lar no Azure. A fase de refatoração não precisa aguardar até que todo o ambiente tenha sido movido. Se a equipe de CMS já migrou, mas a equipe de ERP não, não há problema. A equipe de CMS ainda pode iniciar sua refatoração. Esse estágio envolve o uso de serviços adicionais do Azure para otimizar o custo, a confiabilidade e o desempenho refatorando seus aplicativos. No lift-and-shift, você estava se beneficiando somente do hardware gerenciado e do sistema operacional do provedor. Neste modelo, você também aproveita os serviços de nuvem para diminuir os custos. Você pode continuar a utilizar seu aplicativo atual no estado em que se encontra, com algumas pequenas alterações de código ou de configuração, e conectar seu aplicativo a novos serviços de infraestrutura, como contêineres, bancos de dados e sistemas de gerenciamento de identidade.
O trabalho de refatoração faz poucas alterações de código e configuração. Você passará mais tempo na automação porque as tecnologias adotadas nessa fase dependem de script para criar e implantar os recursos; as instruções de implantação são um script.
Embora vários serviços do Azure possam ser usados, vamos nos concentrar nos serviços mais comuns usados na fase de refatoração: contêineres, serviços de aplicativo e serviços de banco de dados. Por que vamos examinar a refatoração? A refatoração fornece uma base de código sólida que reduz os custos em longo prazo mantendo a dívida de código dentro do razoável.
Os contêineres fornecem uma maneira de empacotar aplicativos. É possível empacotar vários contêineres em uma mesma VM por conta de como um contêiner visualiza o sistema operacional. Você pode mover um aplicativo para um contêiner com nenhuma ou poucas alterações de código; talvez seja necessário mudar um pouco a configuração. Esse esforço também leva a compilar scripts que empacotam aplicativos em um contêiner. As equipes de desenvolvimento passarão o tempo de refatoração programando e testando esses scripts. O Azure dá suporte à colocação em contêineres por meio do AKS (Serviço de Kubernetes do Azure) e do Registro de Contêiner do Azure relacionado, que você pode usar para gerenciar as imagens de contêiner.
Para serviços de aplicativos, você pode tirar proveito de vários serviços do Azure. Por exemplo, sua infraestrutura existente pode lidar com um pedido de cliente colocando as mensagens em uma fila, como o RabbitMQ. (Por exemplo, uma mensagem é a cobrança do cliente e a segunda é para enviar o pedido.) Ao fazer a nova hospedagem, você coloca o RabbitMQ em uma VM separada. Durante a refatoração, você pode adicionar uma fila ou tópico do Barramento de Serviço à solução. Neste momento, você pode reescrever seu código RabbitMQ e parar de usar as VMs que receberam a funcionalidade de enfileiramento. Se não for viável reescrever todo o código de uma só vez, você poderá usar padrões como a ponte de mensagens para reduzir a lacuna entre filas de mensagens. Isso permite que você migre seus pontos de extremidade um por um em vez de todos de uma vez. De qualquer forma, quando todos os pontos de extremidade tiverem sido movidos para o Barramento de Serviço do Azure, isso substituirá um conjunto de VMs por um serviço de fila de mensagens sempre ativo por um custo menor. Outros serviços de aplicativo podem ser encontrados no portal do Azure.
Para bancos de dados, você pode mover seu banco de dados de uma VM para um serviço. O Azure dá suporte a cargas de trabalho do SQL Server com o Banco de Dados SQL e a Instância Gerenciada do Banco de Dados SQL do Azure. O Serviço de Migração de Dados avalia seu banco de dados, informa sobre o trabalho que precisa ser feito antes da migração e move o banco de dados de sua VM para o serviço. O Azure dá suporte a MySQL, PostgreSQL e outros serviços de mecanismo de banco de dados.
Recompilar
Até aqui, tentamos minimizar as alterações nos sistemas de comércio eletrônico, por isso, deixamos que eles funcionassem sozinhos. Agora, vamos falar sobre como realmente tirar proveito da nuvem. Este estágio significa revisar o aplicativo existente, adotando agressivamente PaaS ou até mesmo arquitetura ou serviços de SaaS. O processo envolve grandes revisões para adicionar novos recursos ou refazer a arquitetura do aplicativo para a nuvem. APIs Gerenciadas é um novo conceito que tira proveito dos sistemas de nuvem. Podemos facilitar a atualização de nosso sistema criando APIs para comunicação entre os serviços. Um segundo benefício é a capacidade de obter insights sobre os dados que temos. Podemos fazer isso mudando para uma arquitetura de API de Microsserviço Plus e usando aprendizado de máquina e outras ferramentas para analisar dados.
Microsserviços + APIs
Os microsserviços se comunicam por APIs voltadas para o exterior. Cada serviço é independente e deve implementar um único recurso de negócios, por exemplo, recomendar itens para os clientes, manter os carrinhos de compras e assim por diante. A decomposição de um aplicativo em microsserviços requer planejamento e tempo. Embora não exista nenhuma regra fixa para definir um microsserviço, a ideia geral envolve a redução da unidade implantável a um conjunto de componentes que quase sempre podem mudar em conjunto. Os microsserviços permitem que você implante alterações conforme a necessidade, ao mesmo tempo que reduz a carga de teste do aplicativo em geral. Alguns serviços podem ser extremamente pequenos. Para eles, usar o Azure Functions para ficar sem servidor é ótimo para escalar horizontalmente para a quantidade de chamadores necessária e, ao mesmo tempo, deixar de consumir recursos quando ociosos. Outros serviços serão divididos por recursos de negócios: gerenciar produtos, registrar pedidos de clientes e assim por diante.
Os mecanismos sem servidor têm desvantagens: quando a carga é leve, eles podem demorar a responder, já que algum servidor na nuvem demora alguns segundos para configurar e executar seu código. Para partes do seu ambiente amplamente usada pelos clientes, convém assegurar que eles possam encontrar produtos, fazer pedidos, solicitar devoluções e assim por diante, tudo com rapidez e facilidade. Sempre que o desempenho fica mais lento, o risco de perder clientes no funil de compra aumenta. Se você tem a funcionalidades que devem responder rapidamente, recrie essa funcionalidade como unidades individualmente implantáveis no Serviço de Kubernetes do Azure. Em outros casos, como serviços que exigem uma combinação de muita memória, várias CPUs e muito armazenamento local, pode fazer sentido hospedar o microsserviço em sua própria VM.
Cada serviço usa uma API para interação. O acesso à API pode ser direto para o microsserviço, mas isso exige que a pessoa que está se comunicando com o serviço conheça a tipologia do aplicativo. Um serviço como o Gerenciamento de API oferece uma maneira central de publicar APIs. Todos os aplicativos simplesmente se conectam ao serviço de Gerenciamento de API. Os desenvolvedores podem ver quais APIs estão disponíveis. O serviço de Gerenciamento de API também fornece recursos para melhorar o desempenho de seu ambiente comercial. O serviço pode limitar o acesso à API em diferentes partes do aplicativo (para evitar afunilamentos), armazenar respostas em cache no caso de valores que mudam com pouca frequência, converter JSON em XML e muito mais. Uma lista completa de políticas pode ser encontrada aqui.
Fazer uso de seus dados e do Azure Marketplace
Como você tem todos os seus sistemas e dados no Azure, é possível incorporar outras soluções SaaS em seus negócios com facilidade. Determinadas coisas podem ser feitas imediatamente. Por exemplo, use o Power BI para unir várias fontes de dados, criar visualizações e relatórios e, principalmente, obter insights.
Em seguida, examine as ofertas do Azure Marketplace, o que pode ajudá-lo a realizar tarefas como otimizar inventário, gerenciar campanhas com base em atributos de clientes e apresentar os itens corretos para cada cliente com base nas preferências e no histórico. É provável que você gaste algum tempo configurando seus dados para que funcionem nas ofertas do Marketplace.
Componentes
Usadas durante a hova hospedagem:
- O Assistente do Azure é um consultor de nuvem personalizado que ajuda a seguir as práticas recomendadas para otimizar as implantações do Azure.
- O serviço Migrações para Azure avalia as cargas de trabalho locais para migração para o Azure.
- O Azure Site Recovery coordena e gerencia a recuperação de desastre para VMs do Azure, VMs locais e servidores físicos.
- A Rede Virtual do Azure permite vários tipos de recursos, como VMs (Máquinas Virtuais) do Azure, a fim de se comunicar de forma segura com a Internet, com as redes locais e com outras VMs.
- O Azure ExpressRoute permite que você estenda suas redes locais para a nuvem da Microsoft por meio de uma conexão privada facilitada por um provedor de conectividade.
Usadas durante a refatoração:
- O Serviço de Kubernetes do Azure gerencia seu ambiente hospedado do Kubernetes, tornando rápido e fácil implantar e gerenciar aplicativos em contêiner sem a necessidade de experiência prévia em orquestração de contêineres.
- O Banco de Dados SQL do Azure é um serviço gerenciado de banco de dados relacional de uso geral no Microsoft Azure. Ele dá suporte a estruturas como XML, JSON, espacial e dados relacionais. O Banco de Dados SQL oferece bancos de dados SQL únicos gerenciados, bancos de dados SQL gerenciados em um pool elástico e Instâncias Gerenciadas do SQL.
Usadas durante a recompilação:
- O Gerenciamento de API do Azure ajuda as organizações a publicar APIs para parceiros externos e desenvolvedores internos e a fim de viabilizar o potencial de seus dados e serviços.
- Azure Functions é uma solução para execução facilitada de pequenas partes de código, ou "funções", na nuvem.
- O Power BI é um pacote de ferramentas de análise de negócios que fornece insights a toda a organização.
Conclusão
A mudança de seu sistema de comércio eletrônico para o Azure envolve análise, planejamento e uma abordagem definida. Analisamos uma abordagem de três fases: nova hospedagem, refatoração e recompilação. Isso permite que uma organização passe de um estado de trabalho para outro com o mínimo de alterações em cada etapa. Os varejistas também podem optar por refatorar ou até mesmo recompilar componentes sem passar pela nova hospedagem. Muitas vezes, você tem um caminho claro rumo à modernização; aproveite essa chance. À medida que você ganha experiência em estar em execução no Azure, começa a ver mais oportunidades de adicionar novos recursos, reduzir custos e aprimorar o sistema geral.
Colaboradores
Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.
Principais autores:
- Scott Seely | Arquiteto de software
- Mariya Zorotovich | Chefe de Experiência do Cliente, HLS & Emerging Technology
Próximas etapas
Muitas equipes de desenvolvimento sentem vontade de fazer a nova hospedagem e a refatoração simultaneamente para lidar com a dívida técnica e aproveitar melhor a capacidade. Há benefícios em fazer a nova hospedagem antes de pular para as próximas etapas. Os problemas de implantação no novo ambiente, se for o caso, são mais fáceis de se diagnosticar e corrigir. Com isso, suas equipes de desenvolvimento e suporte ganham mais tempo para aprender a lidar com o Azure como o novo ambiente. Quando você começa a refatorar e a recompilar o sistema, já está compilando em um aplicativo estável e em funcionamento. Isso permite alterações mais específicas e direcionadas, além de atualizações mais frequentes.
Documentação do produto:
- Introdução ao Assistente do Azure
- Sobre as Migrações para Azure
- Sobre o Site Recovery
- O que é a Rede Virtual do Azure?
- O que é o Azure ExpressRoute?
- Serviço de Kubernetes do Azure
- O que é o Banco de Dados SQL do Azure?
- Gerenciamento de API do Azure
- Introdução ao Azure Functions
- O que é o Power BI?