# Acelere a modernização de aplicações no edge

Na Azion, a [modernização de aplicações](https://www.azion.com/pt-br/solucoes/modernizacao-de-aplicacoes/) é um processo que atualiza aplicações legadas para se alinharem com as demandas dinâmicas dos ambientes de negócios modernos. É implementado usando uma abordagem serverless e arquitetura de microsserviços em uma infraestrutura de edge, projetando seu sistema para simplicidade operacional, implantação mais rápida e escalabilidade.

A Azion otimiza o desempenho processando dados mais próximos de sua fonte, reduzindo drasticamente a latência e melhorando a experiência do usuário. O modelo serverless reduz os custos ao eliminar a gestão de servidores e os fluxos de trabalho DevOps, facilitando a eficiência de negócios, competitividade e adoção de novas estratégias.

Sua aplicação pode ser completamente hospedada na Azion, mas há também a possibilidade de ter apenas partes do sistema rodando no edge. Esta possibilidade ajuda na migração de aplicações legadas para aplicações modernas no edge, pois você pode executar a transição parte por parte, adaptando tudo e testando para garantir que atenda às suas necessidades.

---

## Arquitetura

![Visão geral de uma requisição/resposta via Applications](/assets/docs/images/uploads/app-modernization.png?v=2)

### Fluxo de dados

1. O usuário acessa o Domain relacionado à aplicação que está sendo acessada. Essa requisição vai para o Traffic Router da Azion, que escolhe o melhor edge node para receber a requisição e direciona a requisição para este edge node.

2. A requisição passa pelo Firewall e é analisada. Se não for uma requisição maliciosa, ela chega à aplicação.

3. A requisição chega à aplicação e, com base em sua configuração do Rules Engine, acessa o conteúdo solicitado. Se configurados, os módulos de Image Processor, Cache, Application Accelerator e Functions serão executados.
Com Functions, você pode ter a lógica executada no edge, melhorando a usabilidade e manutenibilidade de aplicações descentralizadas. Essas funções são escritas em Javascript e executadas no Azion Runtime.

4. O conteúdo, se estático, será armazenado no Object Storage. Então, será solicitado e retornado como uma resposta.

5. Operações que exigem transações no banco de dados podem ser realizadas com o SQL Database.

6. Os logs da aplicação são enviados por meio do Data Stream e podem ser analisados pelo cliente.

7. Se for necessário acessar uma origem fora da Azion:
    - Ativando o Origin Shield, seu aplicação é protegida de uma lista de redes mantida pela Azion.
    - Ativando o módulo Load Balancer, o tráfego é equilibrado entre suas origens, centros de dados ou provedores de nuvem, mitigando congestionamento da rede e sobrecarga do servidor.

Após todo esse processo, o aplicação retorna uma resposta à requisição.

---

## Componentes

- **Applications**: permite que você configure uma aplicação para definir políticas de entrega e cache, criar regras para automatizar a atribuição de políticas de cache com base no tipo de conteúdo e determinar como o conteúdo é armazenado em cache.
- **Cache**: módulo global para armazenar conteúdo no edge.
- **Functions**: permite que você crie aplicações serverless orientadas a eventos, no edge, mais próximas dos usuários.
- **Rules Engine**: uma ferramenta para configurar os cenários em que uma política de cache específica é aplicada.
- **Tiered Cache**: módulo que cria uma camada de cache adicional entre o edge e seus servidores de origem, reduzindo a latência e os custos de infraestrutura.
- **Load Balancer**: módulo projetado para balancear o tráfego entre suas origens, data centers ou provedores de nuvem, mitigando a congestão da rede e a sobrecarga do servidor.
- **Object Storage**: um serviço de armazenamento escalável e seguro projetado para integrar armazenamento de objetos com a Azion Web Platform, usando o padrão S3 para operações de objetos.
- **Origins**: permite que você personalize o endereço de origem do conteúdo da sua aplicação, o cabeçalho Host da sua aplicação, o caminho e as credenciais de autenticação HMAC para serviços protegidos.
- **Workloads**: registre um domínio personalizado com a Azion para entregar sua aplicação.

---

## Implementação

1. Crie um aplicação:
    - No [Console](https://console.azion.com), crie um aplicação usando o botão **+ Create** na página inicial.
    - Use a [Azion API](https://api.azion.com/#9c1cc0df-16a2-488e-8cfe-3f1238f47aeb) para criar uma aplicação.
    - Use [Azion CLI](/pt-br/documentacao/devtools/cli/create/#edge-applications) para criar e implantar uma aplicação.
2. Crie um domínio e associe-o à aplicação: 
    - No Console, [crie um domínio](/pt-br/documentacao/produtos/guias/configurar-dominio/) usando o botão **+ Create** na homepage.
    - Use a [API Azion](https://api.azion.com/#a258eabc-b419-47e6-be68-45c2ce0150dd) para criar um domínio.
       - Se você criou uma aplicação através de um template, o domínio é criado para você.
> A aplicação é acessível através do domínio fornecido pela Azion, que se parece com: `ftd1cvntfl.map.azionedge.net` 
3. Teste e monitore: após configurar sua entrega de conteúdo, teste completamente a entrega de conteúdo para garantir que está funcionando como esperado e monitore os acessos recebidos.
4. Faça ajustes nas políticas de cache, regras ou outras configurações conforme necessário com base nas métricas de desempenho e feedback do usuário.

---

## Documentos relacionados

- [Azion Marketplace](/pt-br/documentacao/produtos/marketplace/)
- [Compatibilidade com as APIs Web no Azion Runtime](/pt-br/documentacao/produtos/devtools/azion-edge-runtime/compatibilidade-frameworks/)
- [Compatibilidade com o Node.js no Azion Runtime](/pt-br/documentacao/produtos/devtools/azion-edge-runtime/compatibilidade/node/)