

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Habilite reversões de sistema para seu aplicativo Managed Service for Apache Flink
<a name="how-system-rollbacks"></a>

Com a capacidade de reversão do sistema, você pode obter maior disponibilidade do seu aplicativo Apache Flink em execução no Amazon Managed Service for Apache Flink. A opção por essa configuração permite que o serviço reverta automaticamente o aplicativo para a versão em execução anterior quando uma ação, como `UpdateApplication` ou `autoscaling`, causa falha no código ou na configuração.

**nota**  
Para usar o recurso de reversão do sistema, você precisa aderir à atualização do aplicativo. Os aplicativos existentes não usarão automaticamente a reversão do sistema por padrão.

## Como funciona
<a name="how-rollback-works"></a>

Quando você inicia a operação de um aplicativo, como uma atualização ou escalamento, o Amazon Managed Service for Apache Flink primeiro tenta executá-la. Se ele detectar problemas que impeçam a operação de ser bem-sucedida, como falhas de código ou permissões insuficientes, o serviço iniciará automaticamente uma operação `RollbackApplication`.

A reversão tenta restaurar o aplicativo para a versão anterior que estava sendo executada com êxito, junto com o estado do aplicativo associado. Se a reversão for feita com êxito, o aplicativo continuará processando dados com o mínimo de tempo de inatividade, usando a versão anterior. Se a reversão automática também falhar, o Amazon Managed Service for Apache Flink fará a transição do aplicativo para o status `READY`, para que você possa corrigir o erro e repetir a operação. 

Você deve aderir ao uso de reversões automáticas do sistema. Você pode habilitar isso usando o console ou a API para todas as operações em seu aplicativo a partir de agora. 

O exemplo de solicitação a seguir para a ação `UpdateApplication` habilita reversões de sistema para um aplicativo:

```
{
   "ApplicationName": "MyApplication",
   "CurrentApplicationVersionId": 1,
   "ApplicationConfigurationUpdate": { 
      "ApplicationSystemRollbackConfigurationUpdate": { 
         "RollbackEnabledUpdate": "true"
       }
    }
}
```

## Analise cenários comuns para reversão automática do sistema
<a name="common-scenarios"></a>

Os cenários a seguir ilustram onde as reversões automáticas do sistema são benéficas: 
+ **Atualizações do aplicativo:** se você atualizar seu aplicativo com um novo código que contém falhas ao inicializar a tarefa do Flink por meio do método principal, a reversão automática permite que a versão anterior funcional seja restaurada. Outros cenários de atualização em que as reversões do sistema são úteis incluem: 
  + Se seu aplicativo for atualizado para ser executado com um paralelismo maior que [maxParallelism](https://docs.aws.amazon.com/managed-flink/latest/java/how-scaling.html#how-scaling-auto).
  + Se seu aplicativo for atualizado para ser executado com sub-redes incorretas para um aplicativo na VPC, isso resultará em uma falha durante o startup da tarefa do Flink. 
+ **Atualizações da versão do Flink:** quando você atualiza para uma nova versão do Apache Flink e o aplicativo atualizado encontra um problema de compatibilidade de snapshots, a reversão do sistema permite que você reverta automaticamente para a versão anterior do Flink. 
+ **AutoScaling:** quando o aplicativo se expande, mas apresenta problemas de restauração a partir de um ponto de salvamento, devido à incompatibilidade do operador entre o instantâneo e o gráfico de tarefas do Flink.

## Use a operação APIs para reversões do sistema
<a name="operation-apis"></a>

Para fornecer melhor visibilidade, o Amazon Managed Service para Apache Flink tem duas operações APIs relacionadas a aplicativos que podem ajudá-lo a rastrear falhas e reversões de sistema relacionadas.

`ListApplicationOperations`

Essa API lista todas as operações realizadas no aplicativo, incluindo `UpdateApplication`, `Maintenance`, `RollbackApplication` e outras em ordem cronológica inversa. O exemplo a seguir solicita que a ação `ListApplicationOperations` liste as primeiras 10 operações do aplicativo:

```
{
   "ApplicationName": "MyApplication",
   "Limit": 10
}
```

O seguinte exemplo de solicitação de `ListApplicationOperations` ajuda a filtrar a lista para atualizações anteriores no aplicativo:

```
{
   "ApplicationName": "MyApplication",
   "operation": "UpdateApplication"
}
```

`DescribeApplicationOperation`

Essa API fornece informações detalhadas sobre uma operação específica listada por `ListApplicationOperations`, incluindo o motivo da falha, se aplicável. O exemplo de solicitação a seguir para a ação `DescribeApplicationOperation` lista detalhes de uma operação específica do aplicativo:

```
{
   "ApplicationName": "MyApplication",
   "OperationId": "xyzoperation"
}
```

Para obter informações sobre a solução de problemas, consulte [Práticas recomendadas de reversão do sistema](troubleshooting-system-rollback.md).