# Minimizar o downtime de uma aplicação

O downtime vem de dois lugares: a virada que traz o tráfego para a Azion, e uma origem que para de responder depois. Você evita o primeiro concluindo a configuração antes da mudança de DNS. Você limita o segundo com uma origem de backup, uma cópia expirada do cache e a sua própria página de erro.

---

## Pré-requisitos

- Um workload, uma aplicação e um connector na Azion. Para configurá-los, consulte [Migrar uma aplicação para a Azion](/pt-br/documentacao/fundamentos/migrar-para-a-azion/).
- Acesso aos registros DNS do domínio no seu provedor de DNS.

---

## Entre no ar sem interrupção

Os usuários só percebem a mudança de DNS, então todo o resto vem antes:

1. **Vincule um certificado ao workload**

   No campo **Digital Certificate** do workload, selecione um certificado que cubra o domínio personalizado. Sem ele, o HTTPS falha assim que o domínio passa a resolver para a Azion.

2. **Insira o domínio personalizado no workload**

   Em **Subdomain** e **Domain**, insira o nome de host que os usuários digitam.

3. **Teste pelo arquivo hosts**

   Carregue a aplicação do seu próprio computador antes de qualquer usuário. Para os passos, consulte [Teste uma aplicação pelo arquivo hosts](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/testar-edge-application-atraves-do-arquivo-hosts/).

4. **Aponte o domínio por último**

   No seu provedor de DNS, aponte o registro CNAME para o domínio do workload. Para os passos, consulte [Aponte um domínio para um workload](/pt-br/documentacao/guias/plataforma/migracao/apontar-dominio-para-a-azion/).

Os usuários alcançam a aplicação na Azion à medida que os resolvers captam a mudança. Até lá, o provedor anterior continua respondendo a eles, então mantenha-o no ar durante a propagação.

---

## Continue respondendo quando uma origem falha

O [Load Balancer](/pt-br/documentacao/plataforma/connectors/#load-balancer), uma funcionalidade do connector, distribui as requisições entre vários endereços de origem. Ele pula um endereço que retorna um erro 4xx ou 5xx ou que excede os timeouts do connector. Para adicionar uma origem de backup:

1. **Abra o connector**

   Acesse [Azion Console](https://console.azion.com/) > **Connectors** > **seu connector**.

2. **Adicione o endereço de backup**

   Em **Addresses**, adicione o endereço da origem de backup.

3. **Defina o papel dele**

   Defina o **Server Role** dele como *Backup*, para que receba requisições apenas quando todos os endereços *Primary* falharem.

4. **Escolha o método de balanceamento**

   Em **Balancing Method**, selecione *Round-Robin* ou *Least Connections*. O **Server Role** se aplica a esses dois métodos.

5. **Selecione Save**

Quando a origem primária falha, as requisições vão para a origem de backup em vez de retornar um erro. Um connector comporta até 10 endereços com o Load Balancer ativo.

> **nota**
>
> Para tirar uma origem do ar para manutenção, desligue o interruptor **Active** do endereço dela. Pelo menos um endereço precisa continuar ativo.

---

## Responda do cache enquanto a origem se recupera

Uma configuração de cache com **Stale cache** ligado permite que a Azion sirva uma cópia expirada quando a origem falha, em vez de um erro. O Console o liga quando você cria uma configuração; a API e a CLI o deixam desligado. Para conferir:

1. **Abra as configurações de cache**

   Acesse [Azion Console](https://console.azion.com/) > **Applications** > **sua aplicação** > aba **Cache Settings**.

2. **Abra a configuração de cache que a aplicação usa, ou selecione + Cache para criar uma**

3. **Ligue o Stale cache**

4. **Selecione Save**

Enquanto a origem está fora do ar, as requisições por conteúdo que a Azion já armazenou em cache são respondidas com a última cópia.

---

## Mostre a sua própria página em vez de um erro

Quando a origem falha para um conteúdo que não está no cache, um conjunto de custom pages substitui a resposta 5xx por uma página que você hospeda. Sirva essa página de um connector que continua no ar quando a origem falha, como um bucket do [Object Storage](/pt-br/documentacao/plataforma/object-storage/). Para criar o conjunto:

1. **Abra Custom Pages**

   Acesse [Azion Console](https://console.azion.com/) > **Custom Pages**.

2. **Selecione + Custom Page**

3. **Adicione o código da página**

   Selecione **+ Custom Page Code** e, em **Page Code**, selecione *503*.

4. **Aponte para a sua página**

   Selecione o **Connector** que serve a página e, em **Page Path**, insira o caminho dela. Por exemplo: `/errors/503.html`.

5. **Defina por quanto tempo a Azion a guarda**

   Em **Response TTL**, insira os segundos que a página fica em cache.

6. **Selecione Save**

7. **Vincule o conjunto ao workload**

   Acesse **Workloads** > **seu workload**. Em **Deployment Settings**, selecione o conjunto de custom pages e, em seguida, selecione **Save**.

Um 503 da origem agora retorna a sua página. O código de status continua 503, a menos que você defina **Response Custom Status Code**.

---

## Próximos passos

- [Cache](/pt-br/documentacao/plataforma/applications.md#cache): Acompanhe o TTL, o stale cache e a segunda camada ao longo de uma requisição.
- [Load Balancer](/pt-br/documentacao/plataforma/connectors.md#load-balancer): Métodos de balanceamento, pesos e os limites de endereços de um connector.
- [Custom Pages](/pt-br/documentacao/plataforma/workloads.md#custom-pages): Cada código de página, o TTL da resposta e o código de status personalizado.
- [Modo de manutenção](/pt-br/documentacao/fundamentos/modo-de-manutencao.md): Mostre uma página de manutenção de propósito enquanto altera a aplicação.
