Habilite reversões de sistema para seu aplicativo Managed Service for Apache Flink - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

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

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

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

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.

    • 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

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.